API

The axiom.ai API has three layers. They can be used together or individually:

  1. Chrome API — a long-lived WebSocket to a cloud browser, drivable from Puppeteer, Playwright, or any CDP-speaking client.
  2. Step API — our library of step functions wraps the Chrome API with high-level browser actions in Node.
  3. Orchestrate API — trigger any pre-built automation, code or no-code, and manage its runs over REST.

All three layers are reachable from your own code or from an MCP client. Start with the quickstart, then generate an API key.

                                                YOUR CODE
                                                    │
                                                [API key]
                                                    │
                            ╔═══════════════════════════════════════════════╗
                            ║                 axiom.ai API                  ║
                            ╚═══════════════════════════════════════════════╝
                                                    │
            ┌───────────────────────────────────────┼───────────────────────────────────────┐
            │                                       │                                       │
            ▼                                       ▼                                       ▼

   ╔══════════════════════╗               ╔══════════════════════╗               ╔══════════════════════╗
   ║      Chrome API      ║               ║       Step API       ║               ║   Orchestrate API    ║
   ╚══════════════════════╝               ╚══════════════════════╝               ╚══════════════════════╝

   Long-lived WebSocket.                  Node library calling                   REST. Fire pre-built
   Connect Puppeteer,                     /api/v5/step. High-level               automations and
   Playwright, or any                     browser step functions.                manage their runs.
   CDP-speaking client.

   wss://cdp-lb.axiom.ai/                 npm install @axiom_ai/api              POST /trigger
     ?token=API_KEY                         │                                    POST /run-data
                                          new AxiomApi(key)                      POST /run-reports
                                            │                                    POST /list-automations
                                          browserOpen()                          POST /stop
                                            │
                                          goto(url)
                                          click(selector)
                                          enterText(sel, text)
                                          scrape()
                                          wait(ms)
                                            │
                                          browserClose()

Chrome API

A long-lived Chrome DevTools Protocol WebSocket pointed at a fresh cloud browser. Connect Puppeteer, Playwright, or any CDP-speaking library and drive it exactly as you would locally — except it runs on our infrastructure, with no Chromium to install or maintain. Best when you want full control of every browser action from your own stack, in any language.

const browser = await puppeteer.connect({
  browserWSEndpoint: "wss://cdp-lb.axiom.ai/?token=YOUR_API_KEY"
});

Read the full Chrome API guide →

Step API

The @axiom_ai/api Node package gives you high-level browser actions over our /api/v5/step REST endpoint — call named step functions instead of speaking CDP yourself. Open a session with browserOpen(), drive it with actions like goto, click, enterText, scrape, wait, …, close with browserClose(). The Step API is a separate surface from the Chrome API above — pick whichever fits your stack. Best when you want code-driven flows in Node but don't want to write Puppeteer or wire up CDP yourself.

Click

Click a button, link, or any other element in a cloud browser session by passing a CSS selector to axiom.click().

Click and drag

Press the mouse at one coordinate, drag to another, and release using axiom.clickAndDrag(). Useful for sliders, range pickers, drag-and-drop UIs, and slider captchas.

Click engagement button

Click a like, follow, subscribe, or similar toggle only when it isn't already in the target state, using axiom.clickEngagementButton().

Click multiple

Click every element matching a CSS selector, up to a maximum, using axiom.clickMultiple().

Close a session

Close the cloud browser session to free its resources and stop consuming runtime quota.

Date picker

Navigate a calendar widget month by month and pick a target day using axiom.datePicker().

Enter text

Enter text into an input, textarea, or other focusable element in a cloud browser session using axiom.enterText().

Get clipboard contents

Read the contents of the cloud browser's clipboard, useful for pages that put their copy output on the clipboard rather than in the DOM.

Go to URL

Send the cloud browser session to a URL using axiom.goto() and wait for the page to load.

Hover

Move the mouse over an element to trigger hover-only UI (dropdown menus, tooltips, lazy-loaded content) using axiom.hover().

Integrate AI

Run an LLM call inline within a step-function session for prompt completion, classification, or extraction using axiom.integrateAI().

Press keys

Send keyboard key presses (Enter, Tab, arrow keys, modifier combinations) to the currently focused element using axiom.pressKeys().

Restart browser

Restart the cloud browser within the current session to recover from a wedged state without losing the session itself, using axiom.restartBrowser().

Scrape

Smart-scrape a list of records from one or more pages, with optional pagination and a maximum-results cap, using axiom.scrape().

Scrape metadata

Extract page-level metadata (title, analytics IDs, schema.org structured data, or any meta-tag content) using axiom.scrapeMetadata().

Select list

Pick an option in a native HTML <select> element by visible text using axiom.selectList().

Solve captcha

Send the current page's captcha to a third-party solver and submit the result using axiom.solveCaptcha().

Start a session

Install axiom-api, instantiate the AxiomApi class with your API key, then open a cloud browser session.

Step function vs No-Code step

Find the axiom-api method equivalent of every No-Code Tool step, useful when porting a visual automation to code.

Switch browser tab

Switch the cloud browser session's focus to another tab using axiom.switchBrowserTab().

Wait

Pause the session for a fixed duration on the pod, keeping the session alive while you wait for content to render or for a server-side process to finish.

Orchestrate API

Trigger any pre-built automation — code or no-code — and manage its runs over REST. Pass inputs at trigger time, poll status, fetch run history, stop in-flight runs. Best when the automation is already authored in the No-Code Tool or Code Dashboard and you want to wire it into Zapier, Make, a backend service, a cron job, or an MCP client.

Use from an MCP client

All three layers above are reachable from MCP-aware clients (Claude Desktop, Claude Code, Cursor, and others). Use the built-in server in the axiom.ai desktop app, or build your own in Python or TypeScript to expose the Chrome API, the Step API, or the Orchestrate API's /trigger as tools.

Usage and limits

Check how much cloud runtime your account has left, see how runs are queued when you hit your concurrency limit, and stay inside the per-minute rate limits.

Reference

Endpoint summaries, request and response payloads, and error codes for the full API surface.

Need help? Contact support or ask a question in our Reddit community.