Web automation API

Automate any website.Even behind a login.

Sign-ins, forms, downloads, data. Your coding agent sets it up once. Kaabist runs it for you and keeps it working when the site changes.

Setup for agentsclaude mcp add --transport http kaab https://mcp.kaab.ist/mcp
supplier-invoicesdone · next run Mon 09:00

you asked

Every Monday, sign in to our supplier portal and bring me the new invoices.

kaabist runs it

  1. open portal.example.com
  2. sign in as [email protected]
  3. 2FA code asked · link emailed to you
  4. you typed the code · run continues
  5. open Invoices · 3 new

you get

[
  { "invoice": "INV-1042", "total": "€1,240.00" },
  { "invoice": "INV-1043", "total": "€318.50" },
  { "invoice": "INV-1044", "total": "€2,075.00" }
]

How it works

Three steps.Then it runs itself.

  1. 01

    Tell your agent

    “Get the new invoices from our supplier portal every Monday.” Plain words, in Claude Code, Codex or Cursor.

  2. 02

    It builds the program

    Your agent works through the site in a real Kaabist browser and saves the steps.

  3. 03

    Kaabist runs it

    On a schedule or when you call it. Results land in your app as JSON.

Why it doesn’t break

Sites change.Your automation doesn’t.

web · eulive
watching 4 jobsring 1
  1. 01

    Waits for your 2FA code

    The site asks for a code? You get a link, type it, and the run picks up where it paused.

  2. 02

    Fixes itself

    A button moved? Kaabist finds it again and asks you to approve the fix.

  3. 03

    Never submits twice

    A crash halfway through a payment never pays twice. You decide what happens.

  4. 04

    Built by your coding agent

    Claude Code, Codex or Cursor builds the program. One line to connect.

  5. 05

    Finds the hidden API

    Spots the JSON behind the page and skips the browser next time. Faster, cheaper.

  6. 06

    Stays signed in

    Logs in once, runs on a schedule, and tells you only when something changed.

Built by your coding agent

One line to connect.Your agent does the rest.

~/projects/billing — claude
$ claude mcp add --transport http kaab https://mcp.kaab.ist/mcp
Added HTTP MCP server kaab
$ claude "renew my subscription on portal.example.test every month"
› browser_open https://portal.example.test/login
› browser_fill #email, #password
› await_input otp you type the code from a link
› browser_click Renew marked side_effect: true
› test_program dry_run stops before the first side effect
✓ program prg_4Rb · v1 saved · schedule: monthly
Opening a Kaabist browser

The portal redirects to /login; the form has email and password fields.

Sign in is a button with an accessible name, so I target it by role.

After sign in the site asks for a one-time code sent by e-mail.

I cannot read that inbox, so the step becomes await_input otp.

You get an emailed link to type the code; the job waits until you do.

I add a checkpoint after login, so a retry does not log in again.

Renew changes the subscription: side_effect true, never retried blindly.

A dry run stops before Renew; every locator resolved uniquely.

Done. The program logs in, waits for your one-time code on a hosted page, and renews exactly once.

renew-subscription@v1succeeded

Or call it yourself

Any URL in.Clean JSON out.

import { Kaab } from "@kaabist/sdk";

const kaab = new Kaab(); // KAAB_API_KEY
const job = await kaab.jobs.create({
  url: "https://shop.example.test/p/1",
  extract: { title: "h1", price: { selector: ".price", type: "money" } },
  wait: 30,
});
console.log(job.data);

Also included

Everything elseyou would build yourself.

  • Signed webhooks

    Every result reaches your server, retried until it lands.

  • Watch a run live and step in when you want.

  • TypeScript, Python, Go, REST, CLI and MCP.

How it compares

Not anotherscraping API.

CapabilityKaabistRemote browser platformsScraping APIs
Waits for your 2FA code, then resumesYesPartlyNo
Never submits twice, even after a crashYesNoNo
Fixes itself, with your approvalYesPartlyNo
Built by your coding agentYesPartlyPartly

Categories summarised from vendors' public documentation. Last verified 2026-10-10. Product by product: /vs.

Plans

Start free.Grow by credits.

  • Free

    500

  • Developer

    10,000

  • Team

    60,000

  • Scale

    300,000

From config/plans.yaml.

Questions

Askedbefore you ask.

It runs your website tasks (signing in, filling in forms, downloading files, pulling out data) and keeps them working when the site changes.

No. Tell your coding agent what you need; it builds the program. You can also call the API or SDKs directly.

The run pauses and Kaabist emails a link to you, or to a teammate or customer you choose. Type the code and it continues.

No. If something crashes mid-submit, Kaabist stops and asks you instead of clicking again.

Bring your hardest site.Free to start.

Opening soon

Kaabist is getting ready for launch. The panel, the docs and the status page open on launch day.