Skip to documentation
DevelopersPartial

Distribution API

The resources available under https://kitmo.app/api/v1/distribution.

Resources

Send Authorization: Bearer <KITMO_API_KEY> on every request. Reads require distribution:read; mutations require distribution:write. Resource lists are bounded and do not currently provide cursor pagination.

Example
GET        /accounts
GET, POST  /content
POST       /variants
GET, POST  /plans
GET, PATCH /plans/{planId}
GET        /queue
GET        /status/{contentItemId}
GET        /analytics/{contentItemId}

Content and variants

POST /content requires title, caption and platformConnectionIds. It creates source content and account-specific variants. Optional mediaFileIds must refer to media already in your workspace. scheduledAt is a Unix timestamp in milliseconds and schedules source content directly when supplied.

POST /variants creates a variant for an additional destination account. A source item can have only one variant per account; this endpoint does not edit an existing variant.

Plans and review

POST /plans takes contentItemId and items containing contentVariantId, platformConnectionId and an optional scheduledAt. New plans start as proposed. Read GET /plans/{planId} for items and decisions.

PATCH can move proposed to approved or draft, then approved to scheduled. These are record changes only: they do not enqueue publishing jobs. A write key can approve through REST. Human-only approval is not enforced by the API.

Handle errors

Check the HTTP status first. Authentication errors use error.code, error.message and error.hint. Some resource validation errors currently return error as a string. Handle both shapes.

401 means the key is missing or invalid. 403 means its scope is insufficient. 404 means the resource is unavailable to the key owner. 409 can indicate an invalid plan transition. On 429, follow Retry-After before retrying.

Reviewed against the implementation · 22 September 2026