Instant профиль

Введение

Vision предоставляет возможность запуска "одноразового" профиля. Данный профиль будет запущен сразу после выполнения запроса на запуск, а по закрытии данный профиль будет удален и недоступен для последующего использования. При этом данные из профиля (Cookies) будут находиться в ответе на запрос закрытия профиля.

Данный функционал полезен автоматизаторам, работа которых не подразумевает использование профиля после его первого запуска и последующей остановки.

Важно! Все параметры, описанные ниже, являются опциональными.

Для старта профиля не требуется никаких параметров, указывайте их только в случае, если необходимо запустить профиль с определёнными значениями.

Базовый URL для запуска Instant профиля

GET
http://127.0.0.1:3030/start/instant

Используйте метод GET для запуска профиля без параметров. В этом случае профиль будет запущен со случайным отпечатком, ОС отпечатка будет совпадать с вашей.

POST
http://127.0.0.1:3030/start/instant

Используйте метод POST для запуска профиля с параметрами, указанными в теле запроса.

Базовый URL для остановки Instant профиля

GET
http://127.0.0.1:3030/stop/instant/{PROFILE_ID}

Запрос

Заголовки запроса

Headers
Название
Тип / Значение
Описание
X-Token/X-Team-Token
String
Токен авторизации или командный токен авторизации

Тело запроса

Body
Название
Тип / Значение
Описание
name
String
Название профиля
os
String
Название операционной системы создаваемого профиля. Доступные значения: macos, windows, linux
version
Number
Версия ядра браузера
smart
String
Режим работы Smart Fingerprint. Доступные значения: standard, enhanced
fingerprint
Object
Объект с отпечатком профиля
proxy
String
Прокси в формате: protocol://username:password@host:port
extensions
Array
Массив с абсолютными путями до распакованных расширений, например: D:\extensions\ID\0.7.0_0
cookies
Array
Объект с Cookies
behavior
Object
Дополнительные параметры запуска, такие как: кастомные флаги, headless режим и пр.

Объект Fingerprint

Объект navigator

navigator
Название
Тип / Значение
Описание
user_agent
String
User-Agent профиля
language
String
Локальный язык системы, например en-GB
languages
Array
Массив с языками профиля
timezone
String
Таймзона профиля, например: America/New_York или Europe/Samara
hardware_concurrency
Number
Количество ядер процессора
device_memory
Number
Количество оперативной памяти. Значение выше 8 будет восприниматься сайтами как 8GB

Список доступных тайм-зон можно получить выполнив соответствующий запрос к Local API. Подробнее об этом написано здесь.

Список доступных языков также можно получить аналогичным запросом.

Объект screen

screen
Название
Тип / Значение
Описание
resolution
String
Разрешение экрана браузерного профиля, например: 1920x1080. Минимальное значение: 800x600
pixel_ratio
Float
Отношение разрешения дисплея текущего устройства в физических пикселях к разрешению в логических (CSS) пикселях. Стандартные значения: для Windows - 1.0, для macOS с Retina - 2.0

Параметр webgl_renderer

webgl_renderer
Название
Тип / Значение
Описание
webgl_renderer
String
Модель видеокарты, например: Apple M3 или Intel(R) HD Graphics 530

Список доступных видеокарт можно получить выполнив соответствующий запрос к Local API. Подробнее об этом написано здесь.

Объект media_devices

media_devices
Название
Тип / Значение
Описание
audio_input
Number
Количество устройств аудио-ввода
audio_output
Number
Количество устройств аудио-вывода
video_input
Number
Количество устройств видео-ввода

Объект geolocation

geolocation
Название
Тип / Значение
Описание
latitude
Number/Float
Широта, указывается в виде числа с плавающей точкой, например: 40.7128
longitude
Number/Float
Долгота, указывается в виде числа с плавающей точкой, например: -74.006
accuracy
Number
Точность определения геопозиции

Объект noise

В случае, если не требуется накладывать шум ни на один из вышеуказанных параметров - объект noise можно не указывать.

Если шум требуется указать только на одном или двух из трёх параметров, то оставшиеся параметры указывать в объекте noise не обязательно.

noise
Название
Тип / Значение
Описание
canvas
Boolean
Шум на Canvas: true или false
webgl
Boolean
Шум на WebGL: true или false
client_rects
Boolean
Шум на Client Rects: true или false
audio
Boolean
Шум на Audio: true или false

Параметр canvas

Если требуется отключить Canvas - значение off, если требуется режим Реальный (Real) - не указывайте параметр canvas в объекте fingerprint.

canvas
Название
Тип / Значение
Описание
canvas
String
Доступные значения: off

Параметр webgl

Если требуется отключить WebGL - значение off, если требуется режим Реальный (Real) - не указывайте параметр webgl в объекте fingerprint.

webgl
Название
Тип / Значение
Описание
webgl
String
Доступные значения: off

Параметр webrtc

Если требуется отключить WebRTC - значение off, если требуется указать значение Manual (Вручную) - указывается IP адрес в формате строки, например 1.1.1.1, если требуется режим Авто (Auto) - не указывайте параметр webrtc в объекте fingerprint.

webrtc
Название
Тип / Значение
Описание
webrtc
String
Доступные значения: off или IP адрес

Параметр ports_protection

ports_protection
Название
Тип / Значение
Описание
ports_protection
Array
Массив с портами, которые будут закрыты, например: [3389, 5900, 5901]

Объект behavior

behavior
Название
Тип / Значение
Описание
urls
Array
Стартовые URL. При запуске профиля будут открыты страницы, указанные в данном массиве
args
Array
Флаги запуска
headless
Boolean
В случае truе профиль будет запущен в режиме Headless
remote_debugging_port
Number
Если необходимо, можно указать конкретный порт для последующего подключения к профилю
timeout
Number
Тайм-аут перед запуском профиля для проверки прокси

Запуск Instant профиля

Примеры запроса на запуск Instant профиля без параметров

1const url =
2  "http://127.0.0.1:3030/start/instant"; 
3
4const options = {
5  method: "GET",
6  headers: {
7    "X-Token": "Your Token", 
8  }, 
9};
10
11fetch(url, options)
12  .then((response) => {
13    response.json().then((data) => {
14      console.log(data);
15    });
16  })
17  .catch((error) => {
18    console.error(error);
19  });

Ответ

Данные ответа

Response
Название
Тип / Значение
Описание
success
Boolean
В случае успешного запуска - true, в случае ошибки - false
profile_id
String
ID запущенного профиля
port
Number
Порт для подключения к профилю с помощью библиотек автоматизации

Пример ответа

1{
2  success: true,
3  profile_id: "039e50ce-6748-43c3-81ca-9d16aece007e",
4  port: 61453
5}

Примеры запроса на запуск Instant профиля со всеми параметрами

1const url =
2  "http://127.0.0.1:3030/start/instant"; 
3
4const body = {
5  "name": "Profile 1",
6  "os": "macos",
7  "version": 142,
8  "smart": "standard",
9  "fingerprint": {
10    "navigator": {
11      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
12      "language": "en-GB",
13      "languages": [
14        "en-GB",
15        "en",
16        "en-US",
17        "en"
18      ],
19      "timezone": "America/New_York",
20      "hardware_concurrency": 8,
21      "device_memory": 8
22    },
23    "screen": {
24      "resolution": "1920x1080",
25      "pixel_ratio": 2
26    },
27    "webgl_renderer": "Apple M3",
28    "media_devices": {
29      "audio_input": 1,
30      "audio_output": 1,
31      "video_input": 1
32    },
33    "geolocation": {
34      "latitude": 40.7128,
35      "longitude": -74.006,
36      "accuracy": 100
37    },
38    "noise": {
39      "canvas": true,
40      "webgl": true,
41      "client_rects": true,
42      "audio": true
43    },
44    "canvas": "off",
45    "webgl": "off",
46    "webrtc": "1.1.1.1",
47    "ports_protection": [
48      3389,
49      5900,
50      5901
51    ]
52  },
53  "proxy": "socks5://user:pass@1.1.1.1:5555",
54  "extensions": [
55    "C:\\extension1",
56    "C:\\extension2"
57  ],
58  "cookies": [
59    {
60      "domain": ".google.com",
61      "name": "1P_JAR",
62      "value": "2021-11-10-11",
63      "path": "/",
64      "expires": 1639134293,
65      "secure": true,
66      "http_only": false,
67      "same_site": "none"
68    }
69  ],
70  "behavior": {
71    "urls": [
72      "https://google.com/"
73    ],
74    "args": [
75      "--flag"
76    ],
77    "headless": false,
78    "remote_debugging_port": 61374,
79    "timeout": 3
80  }
81}
82
83const options = {
84  method: "POST",
85  headers: {
86    "X-Token": "Your Token", 
87    "Content-Type": "application/json"
88  }, 
89  body: JSON.stringify(body)
90};
91
92fetch(url, options)
93  .then((response) => {
94    response.json().then((data) => {
95      console.log(data);
96    });
97  })
98  .catch((error) => {
99    console.error(error);
100  });

Ответ

Данные ответа

Response
Название
Тип / Значение
Описание
success
Boolean
В случае успешного запуска - true, в случае ошибки - false
profile_id
String
ID запущенного профиля
port
Number
Порт для подключения к профилю с помощью библиотек автоматизации

Пример ответа

1{
2  success: true,
3  profile_id: "b437dea0-e465-4a18-b2b4-db2521df9eae",
4  port: 60756
5}

Остановка Instant профиля

Пример остановки Instant профиля

Обратите внимание, вместо PROFILE_ID нужно вставить ID запущенного Instant профиля!

1const url =
2  "http://127.0.0.1:3030/stop/instant/PROFILE_ID"; 
3
4const options = {
5  method: "GET",
6  headers: {
7    "X-Token": "Your Token", 
8  }, 
9};
10
11fetch(url, options)
12  .then((response) => {
13    response.json().then((data) => {
14      console.log(data);
15    });
16  })
17  .catch((error) => {
18    console.error(error);
19  });

Ответ

Данные ответа

Response
Название
Тип / Значение
Описание
success
Boolean
В случае успешной остановки - true, в случае ошибки - false
profile_id
String
ID остановленного профиля
folder_id
String
Не используется
cookies
Array
Cookies остановленного профиля в формате JSON

Пример ответа

1{
2  success: true,
3  profile_id: "75b4f9e6-fa6a-45a9-b272-f35d06a749d1",
4  folder_id: "00000000-0000-0000-0000-000000000000",
5  cookies: [{
6      "domain": ".google.com",
7      "name": "1P_JAR",
8      "value": "2021-11-10-11",
9      "path": "/",
10      "expires": 1639134293,
11      "secure": true,
12      "http_only": false,
13      "same_site": "none"
14    }]
15}