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

Параметр 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    },
43    "canvas": "off",
44    "webgl": "off",
45    "webrtc": "1.1.1.1",
46    "ports_protection": [
47      3389,
48      5900,
49      5901
50    ]
51  },
52  "proxy": "socks5://user:pass@1.1.1.1:5555",
53  "extensions": [
54    "C:\\extension1",
55    "C:\\extension2"
56  ],
57  "cookies": [
58    {
59      "domain": ".google.com",
60      "name": "1P_JAR",
61      "value": "2021-11-10-11",
62      "path": "/",
63      "expires": 1639134293,
64      "secure": true,
65      "http_only": false,
66      "same_site": "none"
67    }
68  ],
69  "behavior": {
70    "urls": [
71      "https://google.com/"
72    ],
73    "args": [
74      "--flag"
75    ],
76    "headless": false,
77    "remote_debugging_port": 61374,
78    "timeout": 3
79  }
80}
81
82const options = {
83  method: "POST",
84  headers: {
85    "X-Token": "Your Token", 
86    "Content-Type": "application/json"
87  }, 
88  body: JSON.stringify(body)
89};
90
91fetch(url, options)
92  .then((response) => {
93    response.json().then((data) => {
94      console.log(data);
95    });
96  })
97  .catch((error) => {
98    console.error(error);
99  });

Ответ

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

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}