AEZAKMI API + SELENIUM Integration

AEZAKMI_EN
5 min readMay 6, 2020

--

API for partners and users

To integrate into software and automate work with browser fingerprints AEZAKMI, our service provides API calls that return responses in JSON format

All API calls are configured to accept a POST request with data in JSON format.

To verify your license — in the “authorization” header of each POST request to the Aezakmi API, your authentication key is required

authorization: "ApiKey" 
Пример: authorization: eyJsb2dpbgiI6Im04bmc4dbCIsInBhc3N3b3JkIjoiOC96UTJEd3RSaf2VpOHJaOHdEOWZRdQXY2W45mxwR09TLzJ5TGN3dEx1a0FvVT0ifQ==

The API Key can be obtained by opening the drop-down window using the extension button.

You must right-click on the extension work area and select “View code”

Then — in the window that appears — you need to go to the “Console” tab, and enter there:

localStorage.getItem("token")

The resulting value is the Api Key

API methods

Create a fingerprint profile.

POST https://account.aezakmi.run:2087/api/create_fast_profile

authorization: APIKEY

Content-Type: application / json

POST DATA (JSON)

Required parameters

  • profileName: The desired profile name. (string)
  • login: Your login in Aezakmi. (string)
  • timestamp: current time the profile was created in milliseconds since January 1, 1970. Standard time designation in all programming languages ​​and operating systems. (int)

On Linux, you can get it with the date ‘+% s’ command. In JavaScript, new Date (). You can always contact our support — we will show you how to get this value.

  • canvasNoise: Allows you to specify whether the canvas rendering should be noisy to get a unique value in the print. Allowed values: true — make noise. false — do not make noise. (boolean)
  • webglNoise: Allows you to specify whether the webgl rendering should be noisy to get a unique value in the fingerprint. Allowed values: true — make noise. false — do not make noise (boolean)
  • audioNoise: Allows you to specify whether to noise the audio buffer to get a unique value in the fingerprint. Allowed values: true — make noise. false — do not make noise (boolean)
  • doNotTrack: Allows you to specify a value for the DoNotTrack option on the sites you visit. false — disabled. true — enabled. (boolean)
  • ObserverWebRTC: Allows you to specify whether you want to monitor the change in the output ip to automatically change the WebRTC ip to prevent data mismatch. false — disabled. true — enabled (boolean)
  • enable911: Allows you to specify the local proxy data from the 911 provider. false — disabled. true — enabled (boolean)

Optional parameters

Fingerprint selection

  • browser: Allows you to specify the desired browser in the fingerprint. Chrome or Firefox. You can always see the full list of available browsers in your personal account when creating a profile. (string)
  • os: Allows you to specify the desired operating system in the fingerprint. Windows, Mac OS or Firefox. You can always see the full list of available operating systems in your personal account when creating a profile. (string)
  • videocard: Allows you to select the desired video card model. (string)
  • width: the desired width of the screen resolution. (int)
  • height: the desired height of the screen expansion. (int)

Important — the screen height and width values ​​must not exceed your actual screen resolution. It is also very important to choose common resolutions, for example “width”: 1920 and “height”: 1080 — for FullHD monitors. You can see the real combinations of screen resolutions in your personal account when creating a profile.

In order to accurately select a fingerprint for all filters, taking into account the video card, you can see all the available combinations of fingerprints in this JSON file https://gist.github.com/chelovekula/a7350226e8c1f03ef3454575fbed85a9

Proxy

These values ​​need to be filled in only if you want to use a proxy in the fingerprint. Otherwise, they can be left blank.

  • proxyProtocol: Your proxy protocol http \ https \ socks4 \ socks5 (string)
  • proxyIp: ip address or domain of your proxy. (string)
  • proxyPort: The port of your proxy. (int)

Not all proxies have a username and password. In this case, these values ​​can be left blank.

  • proxyLogin: your proxy login. (string)
  • proxyPassword: Your proxy password. (string)
  • cookies: Allows you to load cookies in json format into your profile. You can leave it blank. (object in array [0])

Example:

{

“audioNoise”: true,

“browser”: “Chrome”,

“canvasNoise”: true,

“cookies”: [{“value”:”5%3AbPQ63RuVH2URRw%3A2%3A1578178208%3A-1%3A-1",”domain”:”.facebook.com”,”hostOnly”:false,”sameSite”:”no_restriction”,”storeId”:”0",”session”:true,”expirationDate”:1639341544,”secure”:true,”httpOnly”:true,”path”:”/”,”name”:”xs”},{“value”:”y”,”domain”:”.facebook.com”,”hostOnly”:false,”sameSite”:”no_restriction”,”storeId”:”0",”session”:true,”expirationDate”:1639341544,”secure”:true,”httpOnly”:true,”path”:”/”,”name”:”pl”}],

“doNotTrack”: false,

“enable911”: false,

“height”: 900,

“login”: “Alex”,

“os”: “Windows”,

“profileName”: “newAPI”,

“proxyIp”: “8.8.8.8”,

“proxyLogin”: “chel123”,

“proxyPassword”: “0f2op”,

“proxyPort”: 107,

“proxyProtocol”: “http”,

“timestamp”: 1592833464865,

“webglNoise”: true,

“width”: 1600,

“videocard”: “ANGLE (Intel(R) HD Graphics 4000 Direct3D11 vs_5_0 ps_5_0)”,

“ObserverWebRTC”: true

}

Deleting a fingerprint profile

POST https://account.aezakmi.run:2087/api/delete_current_user_profile

authorization: APIKEY

Content-Type: application/json

POST DATA (JSON)

profileName: Profile name to delete

login: Your login in Aezakmi

Example:

{
"profileName": "APITEST6667",
"login": "admin"
}

Interacting with Selenium

Getting a print.

First, you need to send a request to our api with the name of the desired profile and your login — + autorization header — in order to get the fingerprint object.

Example:

curl — request POST \

— url https://account.aezakmi.run:2087/api/get_current_user_profile \

— header ‘authorization: eyJsb2dpbiI6IktvbiJBZnNZamRmZWeitqMDZjY3lWRDhISXdTejVaMU1i==’ \

— header ‘content-type: application/json’ \

— data ‘{

“profileName”: “APITEST”,

“login”: “Konin”

}’

Exaple on JS: https://ghostbin.co/paste/9p8xb

As a result, you will receive an array — the zero element of which will be the fingerprint object you need.

Then you will need to start interacting with the browser extension.

To interact, you need to send commands to the extension console at

chrome-extension://mgcamgpggangcolfjanejmldolohpcig/

(your extension ID may differ — check it on the add-ons management page in the browser Settings-Additional tools-Extensions)

Profile start

Next, you will need to call the start_profile_api function and specify the profile object you received as an argument.

For example start_profile_api (fingerprintObject);

The profile is applied for about 20 seconds — after which you can continue working.

Checking the status.

After each new application of the profile, we recommend checking the status of its launch by calling the function

check_status_api ();

It returns True or False.

Stop profile

Just call the stop_profile_api () function in the extension console; no arguments.

After working with the print, it is imperative to stop the profile.

The mechanism is as follows

1 — Get the fingerprint object

2 — Start the profile by passing the received fingerprint as an argument to the function

3 — Checking the status

4 — working

5 — Stop the profile

6 — Get the next print

7 — Start profile again

….

9999 — Stop profile

_________________________________________________________________

If you have any questions about the use of these functions, you can always contact us in support:

Telegram: @aezakmisupport

Email: support@aezakmi.run

Сайт: www.aezakmi.run

--

--