A3 uses LLMs to learn each site and writes Playwright scripts once — then the runner replays them with no model in the loop. 99% cheaper* and 10× faster than LLM-controlled agentic browsers.
*based on 1000 automations with different input criteria
# Replay scrape-rates — no LLM in the loop curl -X POST https://api.automation.cloud/v1/jobs \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "project": "scrape-rates", "site": "booking.com", "input": { "destination": "London", "checkIn": "2026-09-14", "checkOut": "2026-09-17", "guests": 2 } }'
const token = process.env.A3_TOKEN!; const res = await fetch( 'https://api.automation.cloud/v1/jobs', { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ project: 'scrape-rates', site: 'booking.com', input: { destination: 'London', checkIn: '2026-09-14', checkOut: '2026-09-17', guests: 2, }, }), }, ); const job = await res.json(); // deterministic playback · 0 tokens
import requests requests.post( "https://api.automation.cloud/v1/jobs", headers={"Authorization": f"Bearer {token}"}, json={ "project": "scrape-rates", "site": "booking.com", "input": { "destination": "London", "checkIn": "2026-09-14", "checkOut": "2026-09-17", "guests": 2, }, }, )
scrape_rates
Expose the learned workflow as a typed tool your agent can call.
"name": "scrape_rates", "inputSchema": { … Rate search }
POST /booking-com/ucp/mcp
Serve the same stages behind a UCP-compliant commerce contract.
tools/call → scrape_rates
# deterministic playback · 0 tokens
Begin with the quickstart in Docs and use the Product tour while implementing workflows and stages.