Docs
Docs/API Reference/Overview

API Overview

Introduction to the Octopost REST API

API Overview

The Octopost API lets you programmatically create and publish posts across multiple social media platforms, manage connected accounts, and configure publishing presets. Everything you can do in the Octopost dashboard is available through the API.

Base URL

All API requests are made to:

https://api.octopost.ink/v1

Content Type

All requests and responses use JSON. Set the Content-Type header on every request:

Content-Type: application/json

Authentication

Authenticate by including your API key as a Bearer token in the Authorization header. Generate API keys from the Octopost Dashboard.

Authorization: Bearer oct_your_api_key_here

See the Authentication guide for full details.

Quick Example

Create and publish a post to Twitter and Bluesky:

curl -X POST https://api.octopost.ink/v1/posts \
  -H "Authorization: Bearer oct_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello from the Octopost API!",
    "platforms": ["twitter", "bluesky"]
  }'
{
  "id": "post_abc123",
  "content": "Hello from the Octopost API!",
  "platforms": ["twitter", "bluesky"],
  "status": "draft",
  "created_at": "2026-04-03T12:00:00Z",
  "updated_at": "2026-04-03T12:00:00Z"
}

Then publish it:

curl -X POST https://api.octopost.ink/v1/posts/post_abc123/publish \
  -H "Authorization: Bearer oct_your_api_key_here"

Versioning

The API is versioned via the URL path (/v1). When breaking changes are introduced, a new version will be released (e.g., /v2). Previous versions will continue to work for at least 12 months after a new version is released.

Non-breaking changes -- such as adding new fields to responses, new optional parameters, or new endpoints -- may be added to the current version without a version bump.

Rate Limits

The API enforces rate limits to ensure fair usage. Default limits are:

TierRequests per minute
Free60
Starter300
Pro1,000

Rate limit status is returned in response headers on every request:

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 299 X-RateLimit-Reset: 1712150400

When you exceed the limit, the API returns a 429 Too Many Requests response. See the Rate Limits guide for best practices.

Resources