From 632b959a06b2475c4248d2b04f756fb51bcfa8bf Mon Sep 17 00:00:00 2001 From: protokey Date: Tue, 13 Oct 2026 21:33:58 +0400 Subject: [PATCH] =?UTF-8?q?feat:=20Robotex=20landing=20=E2=80=94=20access?= =?UTF-8?q?=20by=20API=20key,=20Turnstile=20passes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - badge and limits: requests need an X-API-Key, the demo instance test key is in the Redmine wiki; the example request sends the header - drop the "early MVP" and "Turnstile is unstable" caveats Co-Authored-By: Claude Opus 5.5 --- content/projects/robotex/index.en.md | 10 +++++----- content/projects/robotex/index.md | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/projects/robotex/index.en.md b/content/projects/robotex/index.en.md index 5fb77fe..0871268 100644 --- a/content/projects/robotex/index.en.md +++ b/content/projects/robotex/index.en.md @@ -3,7 +3,7 @@ title: "Robotex" tagline: "A browser for your bots, over an API" description: "Robotex gets past anti-bot protection, runs a scenario on the page and hands your bot the cookies. From there the bot works with plain HTTP requests." domain: "https://robotex.sokolab.xyz/" -badge: "Free · open access" +badge: "Free · demo key in the wiki" post: "/blog/robotex-browser-automation-api" postLabel: "How Robotex works" build: @@ -36,7 +36,7 @@ features: - title: "Scenarios" text: "More than opening a page. Fill a form, click, move the mouse, wait for an element, grab a piece of HTML or text." - title: "Anti-bot pages" - text: "Detects a Cloudflare check before and during a scenario and gets through it. If it escalates to an image captcha, sends it to a recognition service." + text: "Detects a Cloudflare check before and during a scenario and gets through it, Turnstile included. If it escalates to an image captcha, sends it to a recognition service." - title: "Captcha" text: "The `captcha` step solves hCaptcha and other captchas via 2captcha before the form is submitted." - title: "Profiles" @@ -49,7 +49,7 @@ features: how: title: "How it works" steps: - - "The bot sends a URL, an action scenario and its proxy to `POST /v2/tasks`. The task is queued, and the response carries a link to the result and a `session_id` cookie." + - "The bot sends its API key, a URL, an action scenario and its proxy to `POST /v2/tasks`. The task is queued, and the response carries a link to the result and a `session_id` cookie." - "A free worker opens the page in Chrome, passes the checks and runs the scenario. The bot polls the link until the task is `done`." - "The bot gets the cookies and User-Agent and keeps browsing on its own, **with the same UA and through the same proxy**." - "When it needs a browser again, it sends `session_id`. If it asked to keep the window (`browser_idle_timeout`), the task runs there, even without a `url`. If not, Chrome starts with the same profile." @@ -58,6 +58,7 @@ how: - caption: "Task" body: | POST https://app.robotex.sokolab.xyz/v2/tasks + X-API-Key: { "url": "https://example.com/login", @@ -110,12 +111,11 @@ engine: limits: title: "Where it stands, honestly" items: - - "**It's an early MVP.** Access is open, no sign-up or keys, but the API may change." + - "**Access by API key.** A test key for the demo instance is in the [project wiki](https://redmine.sokolab.xyz/projects/robotex/wiki), send it in the `X-API-Key` header." - "An open window takes up a browser slot. Don't keep it longer than you need." - "For now all workers run on a single server." - "**It's free.** You only pay for your own proxies and, if needed, 2captcha." - "Proxy quality matters a lot: no fingerprint will help on a dirty IP." - - "Turnstile doesn't pass on every site yet, I'm working on stability." community: title: "Community" diff --git a/content/projects/robotex/index.md b/content/projects/robotex/index.md index ad44308..68ae4aa 100644 --- a/content/projects/robotex/index.md +++ b/content/projects/robotex/index.md @@ -3,7 +3,7 @@ title: "Robotex" tagline: "Браузер для ваших ботов по API" description: "Robotex проходит анти-бот защиту, выполняет сценарий на странице и отдает боту куки. Дальше бот работает обычными HTTP запросами." domain: "https://robotex.sokolab.xyz/" -badge: "Бесплатно · открытый доступ" +badge: "Бесплатно · демо-ключ в вики" post: "/blog/robotex-browser-automation-api" postLabel: "Как устроен Robotex" build: @@ -36,7 +36,7 @@ features: - title: "Сценарии" text: "Не просто открыть страницу. Заполнить форму, кликнуть, навести мышь, дождаться элемента, забрать кусок HTML или текст." - title: "Анти-бот страницы" - text: "Сам находит проверку Cloudflare до и во время сценария и проходит ее. Если она переросла в капчу с картинками, отправляет в сервис распознавания." + text: "Сам находит проверку Cloudflare до и во время сценария и проходит ее, Turnstile в том числе. Если она переросла в капчу с картинками, отправляет в сервис распознавания." - title: "Капча" text: "Шаг `captcha` в сценарии решает hCaptcha и другие капчи через 2captcha до отправки формы." - title: "Профили" @@ -49,7 +49,7 @@ features: how: title: "Как это работает" steps: - - "Бот отправляет в `POST /v2/tasks` адрес, сценарий действий и свой прокси. Задача встает в очередь, в ответ приходит ссылка на результат и кука `session_id`." + - "Бот с API-ключом отправляет в `POST /v2/tasks` адрес, сценарий действий и свой прокси. Задача встает в очередь, в ответ приходит ссылка на результат и кука `session_id`." - "Свободный воркер открывает страницу в Chrome, проходит проверки и выполняет сценарий. Бот опрашивает ссылку, пока задача не станет `done`." - "Бот получает куки и User-Agent и дальше ходит по сайту сам, **с тем же UA и через тот же прокси**." - "Понадобится браузер снова, передаст `session_id`. Если просил подержать окно (`browser_idle_timeout`), задача выполнится в нем, можно даже без `url`. Если нет, Chrome откроется с тем же профилем." @@ -58,6 +58,7 @@ how: - caption: "Задача" body: | POST https://app.robotex.sokolab.xyz/v2/tasks + X-API-Key: <ключ> { "url": "https://example.com/login", @@ -110,12 +111,11 @@ engine: limits: title: "Честно о текущем состоянии" items: - - "**Это ранний MVP.** Доступ открыт без регистрации и ключей, но API может меняться." + - "**Доступ по API-ключу.** Тестовый ключ для демонстрационного инстанса лежит в [вики проекта](https://redmine.sokolab.xyz/projects/robotex/wiki), передавайте его в заголовке `X-API-Key`." - "Открытое окно занимает слот браузера. Держите его не дольше, чем нужно." - "Пока все воркеры работают на одном сервере." - "**Бесплатно.** Платить нужно только за свои прокси и, если нужна, капчу в 2captcha." - "Прокси решает многое: на грязном IP не поможет никакой отпечаток." - - "Turnstile проходит не на каждом сайте, над стабильностью работаю." community: title: "Сообщество"