Observe once.
Call the workflow.

Turn your authenticated web workflows into private API tools. Discover by intent, run a saved tool, or use a remote browser to observe a new one.

intent → Jev tool search → observed requests → verified result
Create your account

$10 / 100,000 calls

Start with $1 free: 10,000 calls, granted once per account. Then prepaid, with one credit for each admitted search, indexing, compilation or execution request. Retrying the same operation key does not debit again. Accepted failed or uncertain operations consume their credit. Account management and catalog inspection are free. Search, indexing and execution are separate requests: one of each uses three credits. Manual compilation adds another credit. Check your balance at GET /v1/usage. Buy another pack in your account; Stripe payment confirmation adds the credits.

Connect

Use an owner token from registration or login to manage your account. Register a public OAuth client at POST /oauth/clients, then use authorization code with S256 PKCE. Clients request only the scopes they need. Access tokens expire after one hour; OAuth refresh tokens rotate and expire after 30 days.

API: https://api.unbrowse.ai
OpenAPI: https://api.unbrowse.ai/openapi.json
OAuth metadata: https://api.unbrowse.ai/.well-known/oauth-authorization-server

Observe, compile, execute

EndpointResult
POST /v1/indexSend url, intent, and optional browser: "remote". The remote browser captures observed requests in your private trace. Jev then selects a relevant API target and compiles a candidate when the evidence supports one.
POST /v1/tools/prepareSend the returned trace_id, target request ID, intent, and optional observed dependency IDs. Returns a candidate or an explanation of missing evidence.
POST /v1/tools/{id}/executeSupply intent and input slot values. A real execution validates a candidate before it becomes callable. Mutating workflows also require allow_mutation: true.
GET /v1/tools/catalogInspect traces, tools, inputs, and verification status. No search ranking; free.

Try the public demo

Index synthetic demo orders using your remote browser. A new account needs this observation before it has tools to search.

curl https://api.unbrowse.ai/v1/index \
  -H "Authorization: Bearer $UNBROWSE_TOKEN" \
  -H "Idempotency-Key: index-demo-orders-001" \
  -H "Content-Type: application/json" \
  -d '{
    "url":"https://api.unbrowse.ai/demo/orders",
    "intent":"Read the demo order count shown after this page loads. Stay on this page.",
    "browser":"remote"
  }'

Inspect result.routing. If it contains a candidate, use its id and supply all declared inputs. The demo captures the string query parameter limit; use the following body only if your returned schema maps it to p0. Replace your_tool_id_here with the returned ID.

curl https://api.unbrowse.ai/v1/tools/your_tool_id_here/execute \
  -H "Authorization: Bearer $UNBROWSE_TOKEN" \
  -H "Idempotency-Key: execute-demo-orders-001" \
  -H "Content-Type: application/json" \
  -d '{"intent":"Read the public demo order count","inputs":{"p0":"7"}}'

After successful validation, search for How many demo orders are there? with domain api.unbrowse.ai and a new operation key. Stop the browser with POST /v1/browser/stop when finished; its profile remains saved.

Every metered request requires an Idempotency-Key containing 8–128 letters, digits, dots, underscores, colons or hyphens. Use a new key for each new operation and preserve it across network timeouts. An uncertain outcome must be inspected before you start a new operation. Browser sessions maintain authenticated cookies during replay; this release does not promise browserless execution.

Keep credentials private

PUT /v1/accounts/example-password accepts {"value":"…"}. Use {{secret:example-password}} in a browser intent. List names with GET /v1/accounts; update with PUT; delete with DELETE on the name. Values are encrypted for your tenant and never returned. Clear existing sessions separately with DELETE /v1/browser.

Never put credential values in tool intents. Save them through the credential endpoint or the account form.

Limits and errors

401: sign in again. 402: buy credits. 403: missing scope or mutation confirmation. 409: operation key reused with different inputs. 429: retry later. 503: provider configuration required. Workflow execution is serialized per account. Some sites require owner sign-in or human verification.