Skip to main content

Introduction

The Soku API is a REST API that gives you full programmatic access to Soku’s publishing, media management, template rendering, transcription, and automation features. Use it to integrate Soku into your own applications, build custom workflows, or automate content operations server-to-server.

Base URL

All API requests are made to the following base URL:
Every endpoint path is prefixed with a version number. The current version is v1.

Authentication

The Soku API uses two authentication methods depending on the type of endpoint you are calling: Most developers only need API key authentication. You can create and manage API keys from the Soku dashboard under Settings > API Keys.
Do not confuse the two authentication methods. Content endpoints use the soku-api-key header, not Authorization: Bearer. Using the wrong header will result in a 401 Unauthorized error.
For full details on obtaining and securing your API key, see Authentication.

Subscription Required

All content API calls require an active Soku subscription. Your account must be in either a trialing or active subscription state. If your subscription has expired or been canceled, API requests will return a 403 Forbidden error.

Available Endpoints

Content Endpoints (API Key Auth)

Key Management Endpoints (ID Token Auth)

Other Endpoints (ID Token Auth)


Request Format

All request bodies must be sent as JSON with the Content-Type: application/json header.

Response Format

All responses are returned as JSON. Successful responses include the relevant resource data. Error responses follow a consistent structure with an error object containing a machine-readable type, a code, a human-readable message, a timestamp, and a requestId for support correlation. Successful response:
Error response:

Request Tracking

Every API response includes an X-Request-ID header. This value uniquely identifies your request and can be used when contacting support to help diagnose issues.
You can also send your own X-Request-ID header with a request. If provided, the API will use your value for correlation instead of generating one.

Rate Limits

API requests are subject to rate limits based on your authentication and subscription tier. Authenticated users with an active subscription (Premium tier) receive up to 100 requests per minute. Individual endpoints may have lower limits. See Rate Limits for details. Rate limit information is included in every response via the X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Tier headers.
For details on rate limit tiers, burst allowances, endpoint-specific limits, and best practices, see Rate Limits.

Idempotency

The following endpoints support idempotent requests via the Idempotency-Key header:
  • POST /v1/posts
  • POST /v1/media
  • POST /v1/ai/transcribe
If you omit the Idempotency-Key header, Soku auto-derives a key from your user ID and a hash of the request payload. Sending the same idempotency key with the same request body returns the cached original response. Sending the same key with a different body returns a 409 Conflict error.

Supported Platforms

The Soku API supports publishing to the following social media platforms:

Quick Start Example

The following example creates a text post on Threads and X simultaneously:
Response:

Next Steps