Для чого кожен маршрут, що він приймає, що відповідає і якою відмовою може відповісти. Позначка поруч з операцією каже, чи відповідає на неї збірка, яку можна завантажити сьогодні.
GET /v1/status
Є у випущеній збірціЧи працює Liminal і чи хтось у нього увійшов
Найдешевший виклик і той, яким варто опитувати, поки чекаєте на застосунок. Відповідає й без акаунта: хибний signedIn — це стан, а не помилка.
Параметри
Немає.
Відповідь
{
"status": "running",
"version": "<version>",
"signedIn": true
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
GET /v1/profiles
Є у випущеній збірціПрофілі каталогу, з фільтрами та посторінково
Читає той самий каталог, який показує застосунок. Фільтри поєднуються, і кожен із них точний, крім name: він збігається з будь-яким профілем, у назві якого є введене, без урахування регістру.
Параметри
- pagequery · integer · необов’язковий · від 1 до 1000000 · типово 1
- Яку сторінку читати, рахуючи з першої.
- pageSizequery · integer · необов’язковий · від 1 до 100 · типово 100
- Скільки профілів на сторінці. Стеля дорівнює типовому значенню.
- workspaceIdquery · string · необов’язковий
- Лише профілі цього робочого простору.
- folderIdquery · string · необов’язковий
- Лише профілі цієї папки.
- statusquery · string · необов’язковий
- Лише профілі в цьому стані; running — стан відкритого профілю.
- namequery · string · необов’язковий
- Лише профілі, у назві яких це є, без урахування регістру.
Відповідь
{
"page": 1,
"pageSize": 100,
"total": 1,
"items": [
"<profile>"
]
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 400 invalid_pagination — page або pageSize поза допустимими межами.
GET /v1/profiles/{id}
Є у випущеній збірціОдин профіль, з його проксі та відбитком
Той самий об’єкт, що його повертає список, але для одного ідентифікатора. Адресу проксі показано, пароль — ніколи.
Параметри
- idpath · string · обов’язковий
- Ідентифікатор профілю — такий, яким його повертають операції каталогу.
Відповідь
{
"id": "<profile-id>",
"name": "Shop EU",
"workspaceId": "<workspace-id>",
"folderId": "<folder-id>",
"status": "running",
"health": "ok",
"proxy": {
"id": "<proxy-id>",
"name": "Residential DE",
"type": "socks5",
"host": "proxy.example.net",
"port": 1080,
"working": true,
"lastCheckedExternalIp": "203.0.113.10",
"lastCheckedCountryCode": "DE"
},
"fingerprint": {
"platform": "MacIntel",
"language": "de-DE",
"timezone": "Europe/Berlin"
},
"lastOpenedAt": "2026-09-30T08:15:00.000Z"
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 404 profile_not_found — Профілю з таким ідентифікатором у каталозі немає.
POST /v1/profiles/{id}/start
Є у випущеній збірціВідкрити профіль і отримати адресу, до якої під’єднується драйвер
Запускає профіль так само, як це робить застосунок, — його відбиток, його проксі, його cookies — і відповідає CDP-адресою, щойно браузер піднявся. Виклик чекає, а не повертає завдання, яке треба опитувати.
Параметри
- idpath · string · обов’язковий
- Ідентифікатор профілю — такий, яким його повертають операції каталогу.
- debugPortbody · integer · необов’язковий · від 1024 до 65534 · типово 0
- Порт, на якому піднімається кінцева точка CDP. 0 — застосунок сам вибере вільний; будь-яке інше значення має бути портом, який ваш користувач може зайняти.
- timeoutSecondsbody · integer · необов’язковий · від 1 до 180 · типово 60
- Скільки виклик чекає, доки профіль підніметься, перш ніж здатися.
- maskAutomationbody · boolean · необов’язковий · типово true
- Приймається лише true. Маскування автоматизації вимкнути не можна: профіль під скриптом — той самий профіль, який бачить сайт, коли ви відкриваєте його вручну.
Відповідь
{
"id": "<profile-id>",
"status": "running",
"cdpDiscoveryUrl": "http://127.0.0.1:48361/devtools/<token>/json/version",
"cdpBrowserUrl": "ws://127.0.0.1:9222/devtools/browser/<token>",
"seleniumDebuggerUrl": "127.0.0.1:9222",
"chromedriverPath": "/Applications/Liminal.app/.../chromedriver",
"debugPort": 9222,
"debugAddress": "127.0.0.1:9222",
"externalIp": "203.0.113.10",
"countryCode": "DE"
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 503 runtime_unavailable — Застосунок зараз не може ні запустити, ні зупинити профіль.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 404 profile_not_found — Профілю з таким ідентифікатором у каталозі немає.
- 409 profile_already_running — Профіль уже відкрито, його запуск ще триває або видана раніше адреса драйвера досі дійсна.
- 400 invalid_start_options — Тіло запиту не є JSON-об’єктом.
- 400 invalid_port — debugPort не дорівнює 0 і не є портом із допустимого діапазону.
- 400 invalid_start_timeout — timeoutSeconds поза допустимими межами.
- 400 masking_unavailable — maskAutomation надіслано як false, а такого режиму застосунок не має.
- 409 port_in_use — Запитаний порт налагодження зайнятий.
- 409 listen_failed — Порт налагодження не вдалося зайняти з іншої причини.
- 409 start_failed — Профіль не піднявся. Коли застосунок може це сказати, безпечне поле
detail називає етап. - 409 proxy_unavailable — Профіль вимагає свого проксі, а проксі не відповів.
- 502 start_failed — Підготовка профілю зазнала невдачі ще до того, як браузер попросили запуститися.
- 503 cdp_unavailable — Профіль запустився, але його кінцева точка CDP не піднялася.
- 504 start_timeout — Профіль не піднявся за timeoutSeconds.
POST /v1/profiles/{id}/attach-automation
Є у випущеній збірціОтримати адресу драйвера для вже відкритого профілю
Для профілю, який ви відкрили вручну й тепер хочете вести скриптом. Нічого не перезапускає: сесія, її вкладки та cookies залишаються як є.
Параметри
- idpath · string · обов’язковий
- Ідентифікатор профілю — такий, яким його повертають операції каталогу.
- debugPortbody · integer · необов’язковий · від 1024 до 65534 · типово 0
- Порт, на якому піднімається кінцева точка CDP. 0 — застосунок сам вибере вільний; будь-яке інше значення має бути портом, який ваш користувач може зайняти.
- timeoutSecondsbody · integer · необов’язковий · від 1 до 180 · типово 60
- Скільки виклик чекає, доки профіль підніметься, перш ніж здатися.
- maskAutomationbody · boolean · необов’язковий · типово true
- Приймається лише true. Маскування автоматизації вимкнути не можна: профіль під скриптом — той самий профіль, який бачить сайт, коли ви відкриваєте його вручну.
Відповідь
{
"id": "<profile-id>",
"status": "running",
"cdpDiscoveryUrl": "http://127.0.0.1:48361/devtools/<token>/json/version",
"cdpBrowserUrl": "ws://127.0.0.1:9222/devtools/browser/<token>",
"seleniumDebuggerUrl": "127.0.0.1:9222",
"chromedriverPath": "/Applications/Liminal.app/.../chromedriver",
"debugPort": 9222,
"debugAddress": "127.0.0.1:9222",
"externalIp": "203.0.113.10",
"countryCode": "DE"
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 503 runtime_unavailable — Застосунок зараз не може ні запустити, ні зупинити профіль.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 404 profile_not_found — Профілю з таким ідентифікатором у каталозі немає.
- 409 profile_already_running — Профіль уже відкрито, його запуск ще триває або видана раніше адреса драйвера досі дійсна.
- 400 invalid_start_options — Тіло запиту не є JSON-об’єктом.
- 400 invalid_port — debugPort не дорівнює 0 і не є портом із допустимого діапазону.
- 400 invalid_start_timeout — timeoutSeconds поза допустимими межами.
- 400 masking_unavailable — maskAutomation надіслано як false, а такого режиму застосунок не має.
- 409 port_in_use — Запитаний порт налагодження зайнятий.
- 409 listen_failed — Порт налагодження не вдалося зайняти з іншої причини.
- 409 start_failed — Профіль не піднявся. Коли застосунок може це сказати, безпечне поле
detail називає етап. - 409 proxy_unavailable — Профіль вимагає свого проксі, а проксі не відповів.
- 502 start_failed — Підготовка профілю зазнала невдачі ще до того, як браузер попросили запуститися.
- 503 cdp_unavailable — Профіль запустився, але його кінцева точка CDP не піднялася.
- 504 start_timeout — Профіль не піднявся за timeoutSeconds.
- 409 profile_not_running — Профіль не відкрито, тож під’єднуватися немає до чого.
POST /v1/profiles/{id}/stop
Є у випущеній збірціЗакрити профіль так, як його закрило б вікно
Дає сесії дописати свій стан. Це той виклик, який варто робити між прогонами скрипта на одному профілі.
Параметри
- idpath · string · обов’язковий
- Ідентифікатор профілю — такий, яким його повертають операції каталогу.
Відповідь
{
"id": "<profile-id>",
"status": "closed"
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 503 runtime_unavailable — Застосунок зараз не може ні запустити, ні зупинити профіль.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 404 profile_not_found — Профілю з таким ідентифікатором у каталозі немає.
- 409 profile_not_running — Профіль не відкрито, тож закривати нічого.
- 409 stop_failed — Застосунок не зміг закрити профіль.
POST /v1/profiles/{id}/force-stop
Є у випущеній збірціЗакрити профіль, який не закривається
Та сама відповідь, але без очікування, доки сесія вгамується. Потрібен, коли зупинка не повернулася, а не як звичний спосіб.
Параметри
- idpath · string · обов’язковий
- Ідентифікатор профілю — такий, яким його повертають операції каталогу.
Відповідь
{
"id": "<profile-id>",
"status": "closed"
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 503 runtime_unavailable — Застосунок зараз не може ні запустити, ні зупинити профіль.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.
- 404 profile_not_found — Профілю з таким ідентифікатором у каталозі немає.
- 409 profile_not_running — Профіль не відкрито, тож закривати нічого.
- 409 stop_failed — Застосунок не зміг закрити профіль.
GET /v1/running-profiles
Є у випущеній збірціЩо відкрито просто зараз і чим можна керувати
Кожен відкритий профіль — відкрило його вікно чи виклик, про це каже startedBy — з адресою драйвера, коли вона є. Звідси скрипт під’єднується знову після свого перезапуску.
Параметри
Немає.
Відповідь
{
"items": [
{
"id": "<profile-id>",
"workspaceId": "<workspace-id>",
"status": "running",
"automationAvailable": true,
"startedBy": "api",
"cdpBrowserUrl": "ws://127.0.0.1:9222/devtools/browser/<token>",
"seleniumDebuggerUrl": "127.0.0.1:9222",
"chromedriverPath": "/Applications/Liminal.app/.../chromedriver",
"debugPort": 9222,
"debugAddress": "127.0.0.1:9222"
}
]
}
Відмови
- 401 invalid_key — Ключ не передано, він пошкоджений або відтоді його згенеровано заново.
- 403 not_signed_in — У застосунок ніхто не увійшов, а операціям каталогу потрібен акаунт.
- 403 team_closed — Активну команду закрито: продовжте її тариф або виберіть іншу команду.
- 503 catalog_loading — Каталог профілів ще завантажується. Запитайте знову.
- 503 catalog_unavailable — Застосунок не зміг відкрити каталог профілів.