Автоматизация веб-форм через API с ИИ-заполнением
Отправьте цель и URL. ИИ-агент заполнит и отправит форму в настоящем браузере, войдёт с 2FA, приложит файлы и спросит вас перед отправкой. Оплата за шаг.
У части работы в вебе нет API: портал поставщика, форма запроса цены, отклик на вакансию, страница аккаунта за логином. Браузерный агент автоматизирует такие веб-формы одним вызовом API. Вы описываете задачу обычными словами и даёте стартовый URL. ИИ-агент выполняет её в настоящем браузере Chromium: заполняет поля, входит с секретами, которых сам никогда не видит, прикладывает ваши файлы, ждёт вашего подтверждения перед отправкой и возвращает результат текстом и в JSON.
Передайте это своему ИИ-агенту
Скопируйте этот промпт в Claude Code, Cursor, Codex или любой кодинг-агент. Он подскажет агенту, где документация и как использовать ваш API-ключ.
Automate a web form or multi-step web task for me with the Lovely Router browser agent: a real browser that fills forms, signs in (including 2FA), attaches files and asks before it submits.
- Docs (read first): https://lovelyrouter.com/docs/browser-agent.md and https://lovelyrouter.com/docs/browser-agent/logins.md and https://lovelyrouter.com/docs/browser-agent/human-in-the-loop.md
- Start: POST https://lovelyrouter.com/v1/browser/runs with `{"goal": "...", "start_url": "...", "approve": "submit", "output_schema": {...}}`. Put every value the form needs in the goal. Poll the `poll` path; when it waits (`needs`), show me the fields and only reply `{"approve": true}` at .../reply after I say so.
- Never put passwords or codes in the goal: store them with PUT https://lovelyrouter.com/v1/browser/vault/<name> (`value`, `kind`, `origins`) and pass the names in `secrets`.
- Billed per step. Use it only on accounts I own or may use.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the site, what to fill in or do, and what proves it worked>Как это работает
Опишите задачу
Сформулируйте цель так, как поставили бы задачу внимательному ассистенту: все значения, которые нужны форме, и что считается успехом («сообщи номер подтверждения»). Если URL формы известен, начинайте прямо с неё.
Агент заполняет форму
На каждом шаге агент читает страницу и делает одно действие: кликает, вводит текст, выбирает вариант, загружает файл или подставляет сохранённый секрет. Прежде чем нажать кнопку отправки формы, он сверяет каждое поле с вашей целью и исправляет несовпадающие значения.
Вы подтверждаете, он отправляет
По умолчанию агент останавливается перед покупками, бронированиями, сообщениями, удалениями и подачей заявок и показывает вам значения формы. Вы отвечаете подтверждением, и запуск завершается с
answer, а если вы задали схему — ещё и сdataпо ней.
Заполнить и отправить форму одним запросом
curl https://lovelyrouter.com/v1/browser/runs \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"goal": "Request a quote for 500 blue 750 ml water bottles with our logo, delivered to 12 Main St, Springfield, IL 62701 by December 1, 2026. Contact: Ada Lovelace, ada@example.com. Submit the form and tell me the quote reference.",
"start_url": "https://supplier.example.com/quote",
"approve": "submit",
"output_schema": {"quote_reference": "string", "confirmation_message": "string"},
"webhook": "https://api.example.com/hooks/browser"
}'Запрос сразу возвращает 202, а агент работает в фоне. С "approve": "submit" он останавливается перед кнопкой отправки, и ваш вебхук получает подписанное событие run.waiting: его needs содержит prompt для человека, значения формы в fields, надпись кнопки в action и скриншот. Подтвердите:
curl https://lovelyrouter.com/v1/browser/runs/brun_5b7d9f1a3c5e7a9b1d3f5a7c/reply \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"approve": true}'Агент нажимает кнопку и завершает работу; приходит run.finished с answer и JSON в data. Если вместо этого ответить {"approve": false, "reason": "Wrong address"}, агент не отправит форму: он прочитает причину и попробует другой путь или сообщит, почему не получилось.
Вход и коды двухфакторной аутентификации
Сохраните каждую учётную запись один раз через PUT /v1/browser/vault/{name}: её value, kind (password, username, text или totp) и origins, где её разрешено вводить. Передайте имена в secrets запуска. Модель видит только имена вроде portal_password; значение вводится лишь на разрешённом вами сайте, поэтому поддельная страница входа его не получит.
Сохраните TOTP-сид как секрет типа totp, и агент будет вводить актуальный 6-значный код.
Агент останавливается с вопросом, а вы отвечаете {"secret": "481923"}. Он вводит код, не видя его.
Добавьте save_profile к запуску со входом, а последующие запуски начинайте с profile, чтобы пропустить вход.
Передавайте ephemeral_secrets для данных, которые должны жить только один запуск; после его окончания они удаляются.
Всё, что нужно для работы с формами
Хранилище только для записи, TOTP-коды, сохранённые сессии.
Вопросы, подтверждения, передача управления на CAPTCHA и перехват управления.
Загрузите один раз, а агент сам выберет нужный файл для каждого поля.
Подписанные события, когда запуск ждёт вас или завершается.
Трансляция каждого шага и экрана браузера.
Номера подтверждений и итоговые суммы в JSON.
Рецепты
Загрузите резюме и сопроводительное письмо через PUT /v1/browser/files/{name}, передайте оба в files и укажите в цели, что куда прикладывать. Агент сопоставляет каждое поле загрузки с назначением документа, а не только с типом файла.
Задайте webhook, пересылайте подтверждения run.waiting в чат команды и отправляйте их ответ на путь reply запуска.
Начните с сохранённого profile, передайте также secrets, чтобы агент мог войти заново, если сессия истекла, и запросите сумму последнего счёта через output_schema.
Для форм, которые можно доверить отправлять самостоятельно, например учёт рабочих часов во внутреннем инструменте, задайте "human": false и "approve": "none". Тогда запуск ничего не резервирует под время ожидания.
Чтобы наблюдать за запуском, добавьте "stream": true, "screen": true и получайте каждый шаг и экран браузера по мере выполнения. Когда на странице появляется CAPTCHA, агент даёт вам ссылку Live View; вы решаете её, отвечаете {"done": true}, и он продолжает. Используйте агента только в аккаунтах, которыми вы владеете или которые вам разрешено использовать; подробности — в Политике допустимого использования.
Сколько это стоит
Вы платите за шаг: $0.006 в быстром режиме и $0.012 в точном режиме для выбора дат, карт и нестандартных виджетов. Модели включены в цену, платы за запуск нет. Вход занимает от 4 до 8 шагов, длинная многостраничная форма — от 15 до 25. В каждый шаг входит одна минута; более долгое ожидание человека стоит $0.005 в минуту, а сами паузы как шаги не тарифицируются. Запуск резервирует max_steps, умноженное на цену шага, плюс одно ожидание длительностью до human_timeout_minutes, а затем списывает фактически использованное. Запуск, который завершился ошибкой или был остановлен вами, оплачивает только выполненные шаги. См. цены и страницу браузерного агента с результатами бенчмарка.
Частые вопросы
Может ли ИИ заполнять формы за логином с двухфакторной аутентификацией?+
Да. Сохраните пароль и TOTP-сид как секреты в хранилище, и агент войдёт и введёт актуальный 6-значный код. Если код приходит по SMS или email, агент остановится, а вы ответите кодом.
Видит ли модель мои пароли?+
Нет. Агент работает с именами секретов, а каждое значение расшифровывается только в момент ввода в подходящее поле на разрешённом вами сайте. Любое значение секрета длиной от шести символов вычищается из текста страниц, ответов, данных и журнала шагов.
Что происходит, когда сайт показывает CAPTCHA?+
Агент не умеет решать CAPTCHA. Он передаёт браузер человеку через ссылку Live View, действующую один час, и продолжает, как только тот ответит, что закончил.
Можно заставить его ждать моего подтверждения перед отправкой?+
Да. Значение по умолчанию, approve "risky", ставит паузу перед покупками, заказами, бронированиями, сообщениями, удалениями и подачей заявок. Задайте approve "submit", чтобы пауза была перед каждой отправкой, или "none", чтобы агент отправлял сам.
Может ли Claude Code или другой агент заполнять формы с его помощью?+
Да. MCP-сервер предоставляет API браузерного агента как browser_run, browser_status, browser_reply и browser_takeover. Агенты передают имена секретов из хранилища, а не их значения.
Если нужно читать данные, а не отправлять их, см. извлечение данных из веба; полный API описан в документации браузерного агента.
Один предоплаченный ключ для моделей, данных и агентов
Без подписки. Пополняйте баланс, используйте сколько нужно и смотрите каждое списание в логах.