Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/humanbrowser-cloud:humanbrowser-cloud-session-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Human Browser Session API
version: 1.1.0
description: 'Human Browser: a cloud browser agent for AI agents. Send a natural-language goal; a real Chromium on a residential IP runs it and returns the answer plus a live viewer URL. This spec covers the public account endpoints on humanbrowser.cloud and the A2A JSON-RPC endpoint on agent.humanbrowser.cloud (per-operation servers). Agent-oriented guide: https://humanbrowser.cloud/llms-full.txt. Agent card: https://agent.humanbrowser.cloud/.well-known/agent-card.json.'
contact:
name: Virix Labs
url: https://humanbrowser.cloud
email: general@virixlabs.com
license:
name: Apache-2.0
url: https://github.com/VirixLabs/humanbrowser
servers:
- url: https://humanbrowser.cloud
description: Account API
- url: https://agent.humanbrowser.cloud
description: A2A + MCP + sessions (Bearer token)
security:
- bearerAuth: []
tags:
- name: Session
description: Run a browser session against a goal
paths:
/a2a:
post:
tags:
- Session
operationId: a2aJsonRpc
servers:
- url: https://agent.humanbrowser.cloud
summary: 'A2A JSON-RPC 2.0: message/send, message/stream, tasks/get, tasks/cancel…'
description: 'A2A v0.3 wire format. message/send returns a Task within seconds (state "working", metadata.viewerUrl); poll tasks/get {id} every 3-5 s until completed | failed | canceled | input-required; the answer is metadata.outcome.result. Credentials: a data part {"kind":"data","metadata":{"sensitive":true},"data":{"password":"..."}} referenced as in the goal. JSON-RPC errors come back with HTTP 200 except auth (401) and balance (402). Full guide: https://humanbrowser.cloud/llms-full.txt'
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- jsonrpc
- id
- method
- params
properties:
jsonrpc:
type: string
const: '2.0'
id:
oneOf:
- type: string
- type: integer
method:
type: string
examples:
- message/send
- message/stream
- tasks/get
- tasks/cancel
- actions/list_countries
params:
type: object
description: 'message/send: {message:{role:"user",messageId,parts:[{kind:"text",text}|{kind:"data",data,metadata?}|{kind:"file",file:{name,mimeType,uri|bytes}}],referenceTaskIds?,taskId?,contextId?,metadata?},metadata?}. tasks/get and tasks/cancel: {id}.'
examples:
send:
value:
jsonrpc: '2.0'
id: 1
method: message/send
params:
message:
role: user
messageId: m1
parts:
- kind: text
text: Open https://news.ycombinator.com and return the top 3 story titles as JSON.
poll:
value:
jsonrpc: '2.0'
id: 2
method: tasks/get
params:
id: t_27b88f806e7c28e6
login:
value:
jsonrpc: '2.0'
id: 3
method: message/send
params:
message:
role: user
messageId: m3
parts:
- kind: text
text: Log into https://app.example.com as <email> with <password> and list my last 5 invoices.
- kind: data
metadata:
sensitive: true
data:
email: me@example.com
password: S3cret!
answer_input_required:
value:
jsonrpc: '2.0'
id: 4
method: message/send
params:
message:
role: user
messageId: m4
referenceTaskIds:
- t_27b88f806e7c28e6
metadata:
in_reply_to: req_bb12e169e2a88d66
parts:
- kind: text
text: '493817'
responses:
'200':
description: JSON-RPC result (a Task) or JSON-RPC error. message/stream answers with text/event-stream.
content:
application/json:
example:
jsonrpc: '2.0'
id: 1
result:
id: t_27b88f806e7c28e6
contextId: ctx_e6595bd310be
kind: task
status:
state: working
artifacts: []
metadata:
sessionId: s_a276fa71b1
viewerUrl: https://humanbrowser.cloud/a/s_a276fa71b1?k=...
profile: ycombinator
profile_inferred: true
'401':
$ref: '#/components/responses/Unauthorized'
'402':
$ref: '#/components/responses/PaymentRequired'
components:
responses:
PaymentRequired:
description: Insufficient prepaid balance — top up to continue
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
description: Uniform typed error model returned by every 4xx/5xx response.
required:
- error
properties:
error:
type: string
description: Stable machine-readable error code, e.g. invalid-email, not-signed-in, rate-limited, insufficient-balance, server-error.
message:
type: string
description: Human-readable explanation.
hint:
type: string
description: Optional remediation hint for agents.
retry_after_seconds:
type: integer
description: Present on 429; how long to wait before retrying.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API token hb_live_<owner>_<32 hex> from https://humanbrowser.cloud/account. Send as Authorization: Bearer <token>; never in a URL.'
sessionCookie:
type: apiKey
in: cookie
name: hb_session
description: Login session cookie for account endpoints.
oauth2:
type: oauth2
description: OAuth 2.1 for the MCP endpoint (https://agent.humanbrowser.cloud/mcp). The issued access token is the account's hb_live token, so it also works as bearerAuth.
flows:
authorizationCode:
authorizationUrl: https://agent.humanbrowser.cloud/authorize
tokenUrl: https://agent.humanbrowser.cloud/token
refreshUrl: https://agent.humanbrowser.cloud/token
scopes:
mcp:run: Start and drive browser tasks
mcp:read: Read task status
externalDocs:
description: LLM-friendly reference
url: https://humanbrowser.cloud/llms-full.txt
x-provenance:
method: harvested
publisher: Virix Labs
source: https://humanbrowser.cloud/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)