OpenHelm API · POST /v1/runs

Drive OpenHelm from your own product.

A REST API for agentic browser work. Send a prompt and an optional JSON schema, OpenHelm runs an AI agent in an isolated cloud sandbox and hands back structured JSON with screenshot evidence, a confidence signal, and usage. One call to run.

Run
Schema
Evidence
Result
POST /v1/runs — "Get the pricing tiers from stripe.com"

now

Accepted the run · 202· task_id
Agent browsing in a cloud sandbox
Extracting into your JSON schema…
Structured JSON + screenshots ready
Where shall we steer?
API · live

What you can build

Agentic browsing, as a structured API.

Run tasks in one call

POST /v1/runs with a natural-language prompt. No pre-created job, no four-call dance, just the work.

Pin a JSON output schema

Pass output_schema and get strictly-shaped JSON back, ready to drop into your database or UI.

Evidence-backed results

Every run returns screenshot evidence, a confidence signal, and usage, so you can verify and bill what came back.

Reusable jobs & projects

Store named task templates and organise runs into projects, or stay fully inline. Your call.

Async with polling or webhooks

Returns 202 instantly. Poll the run or supply a webhook; the bounded-wait pattern keeps long runs clean.

Isolated, secure execution

Each run executes in its own E2B cloud sandbox. Nothing runs on your infrastructure.

How it works

From key to structured JSON in four steps.

  1. 1

    Mint an API key

    Create a Bearer key (oh_live_…) under Settings → API & Webhooks in your OpenHelm account.

  2. 2

    POST /v1/runs

    Send a prompt, plus optional inputs, output_schema, model and project_id. project_id defaults to your org’s auto-created API Runs project.

  3. 3

    Get a task_id back

    The API responds 202 with a task_id and poll_url. The agent starts in an isolated cloud browser sandbox.

  4. 4

    Collect the result

    Poll GET /v1/runs/{id} (or use a webhook) for the structured JSON, screenshots, confidence and usage.

Request & response

One call to run. Structured JSON when it’s done.

POST /v1/runs
curl https://api.openhelm.ai/v1/runs \
  -H "Authorization: Bearer oh_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Get the pricing tiers from stripe.com",
    "output_schema": {
      "type": "object",
      "properties": {
        "tiers": { "type": "array", "items": { "type": "string" } }
      }
    }
  }'
Response + poll
HTTP/1.1 202 Accepted
{
  "task_id": "run_2x9f4c...",
  "poll_url": "https://api.openhelm.ai/v1/runs/run_2x9f4c..."
}

# then poll until done:
curl https://api.openhelm.ai/v1/runs/run_2x9f4c... \
  -H "Authorization: Bearer oh_live_..."

The endpoints, request bodies and the full result envelope are documented in the live API reference, generated straight from the deployed OpenAPI spec, so it always shows the current base URL and schema.

Prefer to drive it from your AI assistant rather than your backend? The OpenHelm MCP servers wrap this same API for ChatGPT, Claude and Cursor.

See the general-purpose MCP

Common questions about the OpenHelm API

Build it into your product.

Mint a key and ship your first run today, or book a call and we’ll help you scope the integration.