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.
$10 / 100,000 calls
Start with $1 free: 10,000 calls, granted once per account. Then prepaid, with one credit for each admitted routing, 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 tool listings are free. Checkout availability appears in your account.
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
Find a tool
POST /v1/tool-router
Authorization: Bearer YOUR_TOKEN
Idempotency-Key: unique-request-001
Content-Type: application/json
{"intent":"list recent orders","domain":"example.com"}Jev evaluates the meaning of your intent against verified workflows and their result fields. Callable matches appear in tools. If none fits, observed API traffic can produce an untested candidate; needs_observation means browse the workflow first. unavailable means Jev could not evaluate the evidence. Routing never executes the workflow or substitutes keyword matching.
Observe, compile, execute
| Endpoint | Result |
|---|---|
POST /v1/index | Send 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/prepare | Send 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}/execute | Supply 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 | List traces, tools, inputs, and verification status. |
All three POST operations require an Idempotency-Key. 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.