Mitosis Labs

API reference

REST API reference

Every operation in the public API at /api/v1, generated from the OpenAPI spec.

The public API is small on purpose: nine read-oriented operations under /api/v1, none of which need a credential. Errors are RFC 9457 application/problem+json, responses carry rate-limit headers, and writes accept an Idempotency-Key.

The reference below is generated from /openapi.json, the same document the site serves, so the two cannot disagree. Point a code generator or a function- calling agent at the spec directly rather than at this page.

ServerUse
https://mitosislabs.aiProduction
https://dev.mitosislabs.aiSandbox / test environment (disposable data, no billing side effects). GET /api/v1 on this host returns "environment": "sandbox".

GET/api/v1

API index: entry point with links to every resource

ResponseMeaning
200Index of the API
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/status

Platform status

ParameterInTypeRequired
service
Narrow the services array to the named service
querystringno
ResponseMeaning
200Current platform status
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/pricing

Current plans, credit allowances, and how usage is charged

ParameterInTypeRequired
plan
Narrow the payload to one plan by slug (404 problem+json on unknown slug)
querystringno
ResponseMeaning
200Pricing for all plans and add-ons
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/skills

List published agent skills (paginated)

ParameterInTypeRequired
limit
Page size (default 20, max 100)
queryintegerno
cursor
Opaque pagination cursor from a previous response’s `nextCursor`. Preferred over offset.
querystringno
offset
Items to skip (legacy alternative to cursor)
queryintegerno
ResponseMeaning
200Paginated skill list
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/commerce/catalog

Items a shopping agent can put in an ACP or UCP checkout session

Every plan on monthly and annual billing plus the Backups add-on, with the item ids both checkout protocols accept. Amounts are integer minor units (cents), USD. Discovery: /.well-known/acp.json and /.well-known/ucp.

ResponseMeaning
200Catalog
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

POST/checkout_sessions

ACP: create a checkout session

Agentic Commerce Protocol (OpenAI + Stripe) checkout, snapshot 2026-04-17; the 2025-09-29 `items[].id` body is accepted too. Prices real catalog items and returns totals, links and a continue_url. Completion escalates to the account owner (see /checkout_sessions/{id}/complete). Guide: /developers/guides/agentic-commerce

ParameterInTypeRequired
API-Versionheaderstringno
Idempotency-Keyheaderstringno
Request-Idheaderstringno
ResponseMeaning
201Checkout session
400ACP error
422Idempotency conflict
429Rate limited

GET/checkout_sessions/{id}

ACP: read a checkout session

ParameterInTypeRequired
id
Checkout session id (cs_…)
pathstringyes
ResponseMeaning
200Checkout session
404Unknown session

POST/checkout_sessions/{id}

ACP: update line items and/or buyer

ParameterInTypeRequired
id
Checkout session id (cs_…)
pathstringyes
ResponseMeaning
200Checkout session
400ACP error
404Unknown session

POST/checkout_sessions/{id}/complete

ACP: complete → requires_escalation with continue_url

Delegated payment credentials are not accepted yet. The session moves to requires_escalation and returns continue_url, where the account owner pays at the hosted billing page.

ParameterInTypeRequired
id
Checkout session id (cs_…)
pathstringyes
ResponseMeaning
200Checkout session (requires_escalation)
404Unknown session
405Session already completed or canceled

POST/checkout_sessions/{id}/cancel

ACP: cancel a checkout session

ParameterInTypeRequired
id
Checkout session id (cs_…)
pathstringyes
ResponseMeaning
200Checkout session (canceled)
404Unknown session
405Session already completed or canceled

POST/api/v1/jobs

Start an async job (returns 202 + poll URL)

Async-job pattern: POST returns 202 Accepted with a Location header; poll GET /api/v1/jobs/{id} until status is `completed`. Supports Idempotency-Key.

ParameterInTypeRequired
Idempotency-Key
Unique key. Replays return the original job with Idempotency-Replayed: true
headerstringno
ResponseMeaning
202Job accepted
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/jobs/{id}

Poll an async job

ParameterInTypeRequired
idpathstringyes
ResponseMeaning
200Job state (poll until status=completed)
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

POST/api/v1/batch

Execute up to 20 GET requests in one call

ResponseMeaning
200Per-request results in input order
400Malformed request
404Not found
429Rate limit exceeded. Retry after X-RateLimit-Reset seconds

GET/api/v1/me

Current account (requires bearer auth)

ResponseMeaning
200Authenticated account profile
401Missing/invalid credentials. Carries WWW-Authenticate with RFC 9728 resource_metadata pointing at /.well-known/oauth-protected-resource.