# info.summary
Public, read-oriented API for the Mitosis agent-memory platform.

# info.description
Public API for Mitosis (mitosislabs.ai): pricing, platform status, agent skills, site search, and async report jobs.

## Versioning & deprecation policy
The API is versioned in the URI path (`/api/v1`). Breaking changes only ship in a new major path (`/api/v2`); `v1` will then remain available for at least 12 months, with `Deprecation` and `Sunset` headers (RFC 8594) announcing the timeline on every response. Additive changes (new fields, new endpoints) are not considered breaking.

## Errors
All errors are RFC 9457 `application/problem+json` with `type`, `title`, `status`, and `detail`.

## Rate limits
Advisory `X-RateLimit-*` and RFC `RateLimit` headers are present on every response (120 req/min/IP).

## Idempotency
POST endpoints accept an `Idempotency-Key` header; replays with the same key return the original result with `Idempotency-Replayed: true`.

## Sandbox
A full sandbox / test environment mirrors this API at https://dev.mitosislabs.ai — use it for integration tests; data there is disposable.

## Authenticated API
The account-scoped Backups API (`/api/snapshots`) requires a bearer API key — see the agent auth walkthrough at /auth.md and RFC 9728 metadata at /.well-known/oauth-protected-resource.

# servers[].description
Sandbox / test environment (disposable data)

# paths./api/v1.get.summary
API index — entry point with links to every resource

# paths./api/v1.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/status.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/status.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/status.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/pricing.get.summary
Current plans, credit allowances, and metered rates

# paths./api/v1/pricing.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/pricing.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/pricing.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/skills.get.parameters[].description
Items to skip from the start of the collection

# paths./api/v1/skills.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/skills.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/skills.get.responses.200.content.application/json.schema.properties.next.description
URL of the next page, or null on the last page

# paths./api/v1/skills.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/search.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/search.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/search.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/jobs.post.summary
Start an async job (returns 202 + poll URL)

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

# paths./api/v1/jobs.post.parameters[].description
Unique key — replays return the original job with Idempotency-Replayed: true

# paths./api/v1/jobs.post.responses.202.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/jobs.post.responses.202.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/jobs.post.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/jobs/{id}.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/jobs/{id}.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/jobs/{id}.get.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/batch.post.summary
Execute up to 20 GET requests in one call

# paths./api/v1/batch.post.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/batch.post.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# paths./api/v1/batch.post.responses.429.description
Rate limit exceeded — retry after X-RateLimit-Reset seconds

# paths./api/v1/me.get.responses.200.headers.X-RateLimit-Remaining.description
Requests remaining in the current window

# paths./api/v1/me.get.responses.200.headers.API-Version.description
Semantic version of the API that served this response

# components.securitySchemes.bearerAuth.description
API key from the dashboard (or `npx -y -p @mitosislabs/sdk@latest mi login`). Walkthrough: /auth.md

# components.schemas.Problem.description
RFC 9457 problem details — every non-2xx response uses this shape.