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.
| Server | Use |
|---|---|
https://mitosislabs.ai | Production |
https://dev.mitosislabs.ai | Sandbox / 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
| Response | Meaning |
|---|---|
200 | Index of the API |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/status
Platform status
| Parameter | In | Type | Required |
|---|---|---|---|
serviceNarrow the services array to the named service | query | string | no |
| Response | Meaning |
|---|---|
200 | Current platform status |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/pricing
Current plans, credit allowances, and how usage is charged
| Parameter | In | Type | Required |
|---|---|---|---|
planNarrow the payload to one plan by slug (404 problem+json on unknown slug) | query | string | no |
| Response | Meaning |
|---|---|
200 | Pricing for all plans and add-ons |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/skills
List published agent skills (paginated)
| Parameter | In | Type | Required |
|---|---|---|---|
limitPage size (default 20, max 100) | query | integer | no |
cursorOpaque pagination cursor from a previous response’s `nextCursor`. Preferred over offset. | query | string | no |
offsetItems to skip (legacy alternative to cursor) | query | integer | no |
| Response | Meaning |
|---|---|
200 | Paginated skill list |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/search
Search docs and product pages
| Parameter | In | Type | Required |
|---|---|---|---|
qSearch query | query | string | yes |
limit | query | integer | no |
| Response | Meaning |
|---|---|
200 | Ranked results |
400 | Malformed request |
404 | Not found |
429 | Rate 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.
| Response | Meaning |
|---|---|
200 | Catalog |
400 | Malformed request |
404 | Not found |
429 | Rate 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
| Parameter | In | Type | Required |
|---|---|---|---|
API-Version | header | string | no |
Idempotency-Key | header | string | no |
Request-Id | header | string | no |
| Response | Meaning |
|---|---|
201 | Checkout session |
400 | ACP error |
422 | Idempotency conflict |
429 | Rate limited |
GET/checkout_sessions/{id}
ACP: read a checkout session
| Parameter | In | Type | Required |
|---|---|---|---|
idCheckout session id (cs_…) | path | string | yes |
| Response | Meaning |
|---|---|
200 | Checkout session |
404 | Unknown session |
POST/checkout_sessions/{id}
ACP: update line items and/or buyer
| Parameter | In | Type | Required |
|---|---|---|---|
idCheckout session id (cs_…) | path | string | yes |
| Response | Meaning |
|---|---|
200 | Checkout session |
400 | ACP error |
404 | Unknown 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.
| Parameter | In | Type | Required |
|---|---|---|---|
idCheckout session id (cs_…) | path | string | yes |
| Response | Meaning |
|---|---|
200 | Checkout session (requires_escalation) |
404 | Unknown session |
405 | Session already completed or canceled |
POST/checkout_sessions/{id}/cancel
ACP: cancel a checkout session
| Parameter | In | Type | Required |
|---|---|---|---|
idCheckout session id (cs_…) | path | string | yes |
| Response | Meaning |
|---|---|
200 | Checkout session (canceled) |
404 | Unknown session |
405 | Session 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.
| Parameter | In | Type | Required |
|---|---|---|---|
Idempotency-KeyUnique key. Replays return the original job with Idempotency-Replayed: true | header | string | no |
| Response | Meaning |
|---|---|
202 | Job accepted |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/jobs/{id}
Poll an async job
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
| Response | Meaning |
|---|---|
200 | Job state (poll until status=completed) |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
POST/api/v1/batch
Execute up to 20 GET requests in one call
| Response | Meaning |
|---|---|
200 | Per-request results in input order |
400 | Malformed request |
404 | Not found |
429 | Rate limit exceeded. Retry after X-RateLimit-Reset seconds |
GET/api/v1/me
Current account (requires bearer auth)
| Response | Meaning |
|---|---|
200 | Authenticated account profile |
401 | Missing/invalid credentials. Carries WWW-Authenticate with RFC 9728 resource_metadata pointing at /.well-known/oauth-protected-resource. |