# info.description
Public, no-auth REST endpoints exposed by October. Primarily the Themes API — 1000+ curated design-system themes for AI coding tools.

## Versioning
This API is versioned by the `info.version` field above and by an optional `October-Version` request header (see the `October-Version` parameter). Backwards-incompatible changes ship under a new major version; additive changes may ship within a version. Agents should treat the major version as the integration contract.

## Deprecation policy
When an endpoint or field is scheduled for removal, responses include the standard `Deprecation` header (an HTTP-date or `true`) and, once a removal date is set, a `Sunset` header (an HTTP-date, RFC 8594). These headers are declared on every operation response. Deprecated surfaces keep working until the `Sunset` date so agents can migrate.

## Rate limits
Every response returns the RFC-draft `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` headers so clients can self-throttle. A `429 Too Many Requests` includes `Retry-After` (seconds).

## Errors
All 4xx and 5xx responses use a typed error model following RFC 9457 (`application/problem+json`): a machine-readable `type` and `code`, plus a human-readable `title` and `detail`. Clients can branch on `code` without parsing prose.

# paths./api/public/themes.get.description
Returns a full design-system theme. Use query params to get a random theme, filter by platform, or fetch by id.

# paths./api/public/themes.get.parameters[].description
When true (default), returns a weighted-random theme.

# paths./api/public/themes.get.parameters[].description
Fetch a specific theme by its slug id. When set, takes precedence over random.

# paths./api/public/themes.get.responses.400.content.application/problem+json.example.detail
The `platform` parameter must be one of desktop-web, mobile-app, game.

# paths./api/public/themes.get.responses.404.description
The requested theme id was not found (only when ?id= is set).

# paths./api/public/themes.get.responses.429.content.application/problem+json.example.detail
Slow down and retry after the number of seconds in Retry-After.

# paths./api/public/themes.get.responses.500.content.application/problem+json.example.detail
Something went wrong on our side. Retry later.

# components.parameters.ApiVersion.description
Optional API version pin. Omit to use the current major version (see info.version). Backwards-incompatible changes ship under a new value.

# components.headers.RateLimit-Limit.description
Maximum number of requests permitted in the current window.

# components.headers.RateLimit-Remaining.description
Requests remaining in the current window.

# components.headers.RateLimit-Reset.description
Seconds until the current rate-limit window resets.

# components.headers.Retry-After.description
Seconds to wait before retrying after a 429.

# components.headers.Deprecation.description
Present only when the endpoint is deprecated. An HTTP-date, or the literal `true`.

# components.headers.Sunset.description
Present only when a removal date is set (RFC 8594). The HTTP-date after which the endpoint may be removed.

# components.schemas.Theme.properties.content.description
Prompt-ready markdown (70–100 lines) describing palette, typography, components, effects, animations, non-genericness rules.

# components.schemas.Problem.description
Typed error following RFC 9457 (application/problem+json).

# components.schemas.Problem.properties.type.description
A URI reference identifying the problem type.

# components.schemas.Problem.properties.title.description
Short, human-readable summary of the problem type.

# components.schemas.Problem.properties.code.description
Stable, machine-readable error code agents can branch on.

# components.schemas.Problem.properties.detail.description
Human-readable explanation specific to this occurrence.

# components.schemas.Problem.properties.instance.description
A URI reference identifying the specific occurrence.