API
The axiom.ai API has three layers. They can be used together or individually:
- Chrome API — a long-lived WebSocket to a cloud browser, drivable from Puppeteer, Playwright, or any CDP-speaking client.
- Step API — our library of step functions wraps the Chrome API with high-level browser actions in Node.
- 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.
Chrome API
Open a WebSocket to a cloud browser and drive it from Puppeteer, Playwright, or any CDP client.
Step API
Our library of step functions removes the CDP boilerplate — high-level browser actions in Node via the axiom-api package.
Orchestrate API
Trigger any pre-built automation — code or no-code — and manage its runs over REST. For Zapier, Make, a backend service, or an MCP client.
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.
Check run status
Poll the axiom.ai API for the current status of an automation by name and retrieve any data it wrote out.
List automations
Fetch the names of every saved No-Code Tool automation on your account, useful for building UIs or validating an automation name before triggering it.
List run reports
Fetch a list of recent automation runs on your account, each with its status, description, and timestamps.
Pass input data
Send dynamic input into a No-Code Tool automation when triggering it via the API, using the table-shaped data payload.
Stop a run
Cancel a triggered automation that's still running in the cloud, freeing the concurrency slot for other runs.
Trigger an automation
Start a saved No-Code Tool automation in the cloud by name, with optional input data passed in the request body.
Webhooks from a step
Use webhook steps inside an automation to push data to external services or trigger an automation from inbound webhooks.
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.
Build your own server (Python)
Build a minimal Model Context Protocol server in Python that exposes axiom.ai automation triggers as tools for any MCP client.
Build your own server (TypeScript)
Build a minimal Model Context Protocol server in Node and TypeScript that exposes axiom.ai automation triggers as tools for any MCP client.
Desktop app MCP server
The axiom.ai desktop app ships with a built-in MCP server. Toggle it on, paste your API key, and Claude Desktop, Claude Code, Cursor, or any MCP client can trigger axiom.ai automations and step functions in conversation.
Register with Claude clients
Configure Claude Desktop, Claude Code, Cursor, and Cowork to load your custom axiom.ai MCP server.
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.
Check remaining runtime
Query the axiom.ai API for your account's cloud runtime allowance, used minutes, and remaining minutes for the current billing period.
Queue and concurrency
Understand how axiom.ai handles concurrent cloud runs, when triggers get queued, and how the queue clears.
Rate limits
The axiom.ai API allows 100 calls per minute per API key. Calls past that limit return a 429 error and the requested automation does not run.
Reference
Endpoint summaries, request and response payloads, and error codes for the full API surface.
API responses
Every JSON response shape returned by the axiom.ai API, including success, queued, and error variants.
Data payload format
Schema reference for the 3-D data array passed in axiom.ai automation triggers.
Endpoints
Every axiom.ai API endpoint at a glance, with method, path, required parameters, and links to full reference pages.
Error codes
Every axiom.ai API error response, what it means, and how to resolve it.
Need help? Contact support or ask a question in our Reddit community.