Open a browser. Keep the session.
Spin up a persistent stealth browser, render JavaScript, drive it with a JSON action script, and carry cookies and storage across every call. The rendering and session primitive — not a server farm you have to run.
Need an agent that decides its own steps? See browser automation. Just need one page fetched? Use the scraping API.
The headless browser primitive, without the server fleet.
Sessions that keep state
Open a session once and every render and script call after it reuses the same cookies, localStorage, and authenticated context. Log in on the first call, keep working across the rest — no re-authenticating per request, no juggling cookie jars yourself.
Managed stealth engine
Every session runs on our managed stealth browser engine — fingerprint-randomized, headless flags stripped, hardened against the JavaScript checks that flag ordinary headless Chrome. The same protections that power our scraping stack apply to your live sessions.
Render JavaScript, get clean HTML
Point a session at a URL and it executes the page's JavaScript, waits for network idle or DOM stability, and returns rendered HTML or text. The response is canonical across tiers — same fields whether the page was simple or fought back.
No browser farm to run
No idle Chromium pool, no autoscaling to tune, no out-of-memory crashes at 3 a.m. Open a session, do the work, close it. Opening is free; you are billed per render and per script call like the rest of the API.
The session lifecycle, end to end.
Open, render, script, close — four calls, one bearer token, state preserved throughout.
# Open a persistent stealth browser session. Free — you pay on render/script.
curl -X POST https://api.ollagraph.com/v1/session \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"stealth": true}'
# => { "session_id": "sess_8f3a...", "engine": "...", "expires_at": "..." } # Render a URL inside that session — JavaScript executes, cookies & storage persist.
curl -X POST https://api.ollagraph.com/v1/session/sess_8f3a.../render \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/dashboard",
"wait_until": "networkidle",
"format": "html"
}'
# Returns rendered HTML/text plus tier_used and final_url. State carries to the next call. # Run a JSON action script in the same session — click, type, wait, screenshot.
curl -X POST https://api.ollagraph.com/v1/session/sess_8f3a.../script \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"actions": [
{"type": "click", "selector": "#load-report"},
{"type": "wait", "ms": 1500},
{"type": "screenshot", "full_page": true}
]
}' # Check a session's state, then close it to free the browser context.
curl https://api.ollagraph.com/v1/session/sess_8f3a... \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY"
# => { "engine": "...", "age": 42, "idle_seconds": 9, "last_url": "https://..." }
curl -X DELETE https://api.ollagraph.com/v1/session/sess_8f3a... \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY" Part of the full 124-endpoint surface. For one-shot fetches see scraping, for whole-site sweeps see crawling, and for agent-driven flows see automation.
Headless browser questions
1 How is the session surface different from the scraping API?
How is the session surface different from the scraping API?
2 How is the session surface different from browser automation?
How is the session surface different from browser automation?
3 What endpoints make up the session lifecycle?
What endpoints make up the session lifecycle?
4 How is a session billed?
How is a session billed?
5 How do sessions stay isolated?
How do sessions stay isolated?
6 What can I do in a script call?
What can I do in a script call?
7 What about pages behind a login?
What about pages behind a login?
8 Do I still need a session for a single JavaScript-heavy page?
Do I still need a session for a single JavaScript-heavy page?
Open your first session in five minutes.
1,000 free credits, one bearer token, opening a session is free, failed calls auto-refund.