Social Media Scheduling API
Schedule content across every major platform with a single API call. Set a time, pick a timezone, and Onepostly delivers your posts at the exact moment.
No credit card required
curl -X POST https://api.onepostly.com/v1/posts \ -H "x-api-key: op_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "Ship once. Post everywhere.", "mediaKind": "image", "mediaUrls": ["https://cdn.example.com/launch.png"], "scheduledFor": "2026-07-16T09:00:00", "timezone": "America/New_York", "destinations": [ { "connectionId": "conn_x_123" }, { "connectionId": "conn_ig_456" } ] }'Supported Platforms
Key Features
Everything you need to add timezone-aware scheduling to your product without owning queues or platform timing logic.
Cross-Platform Scheduling
Schedule the same content to X, Instagram, Facebook, and Threads in one request. Each destination gets the right formatting.
Timezone-Aware Delivery
Pass an IANA timezone like America/New_York. Onepostly interprets scheduledFor as local time and delivers at that moment.
Rich Media Scheduling
Schedule text, images, videos, and multi-image posts. Media rules are validated per destination when you create the job.
Reliable Delivery Queue
Due posts move into the publish queue automatically. Retries and per-destination status keep delivery predictable in production.
Manage Scheduled Posts
List scheduled jobs, inspect status, and cancel before release with DELETE /v1/posts/:id when plans change.
Simple API Key Auth
Authenticate with x-api-key. Connect accounts once via OAuth, then schedule by connection ID.
Schedule Webhooks
Get notified when posts are scheduled, published, or fail so your product stays in sync without polling.
Multiple Social Accounts
Connect multiple accounts per platform and target each with its own connection ID in the same payload.
How it works
Ship scheduling in 3 steps
Sign up, connect accounts, and schedule with one endpoint.
Create an API key
Create a workspace, generate an API key from the dashboard, and authenticate every request with x-api-key.
Connect social accounts
Complete OAuth for each destination account. Onepostly stores and refreshes tokens so you only pass connection IDs.
Schedule with timezone
POST /v1/posts with scheduledFor and an IANA timezone. Onepostly queues the job and publishes when the local time arrives.
Why developers choose Onepostly
No cron jobs to maintain
Skip building queues, timezone math, and per-platform release logic. Onepostly runs the schedule pipeline for you.
Built for production delivery
Due posts enqueue with retries and clear per-destination status, so your product can show what is waiting and what failed.
Scales with your workspace
Start on Free, then move to Growth or Scale as you connect more accounts. Your schedule integration stays the same.
Great developer experience
REST docs, OpenAPI, and copy-paste cURL examples. Know when a post is queued, live, or failed without checking status endpoints.
Transparent pricing
Simple plan limits for connected accounts. Scheduling is included. X actions debit a prepaid wallet at X list prices.
Platform changes handled for you
When social APIs change, Onepostly updates the adapters. Your schedule calls keep the same shape.
Code Examples
curl -X POST https://api.onepostly.com/v1/posts \ -H "x-api-key: op_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "Ship once. Post everywhere.", "mediaKind": "image", "mediaUrls": ["https://cdn.example.com/launch.png"], "scheduledFor": "2026-07-16T09:00:00", "timezone": "America/New_York", "destinations": [ { "connectionId": "conn_x_123" }, { "connectionId": "conn_ig_456" } ] }'curl -X DELETE https://api.onepostly.com/v1/posts/POST_ID \ -H "x-api-key: op_YOUR_KEY" # Response:# {# "id": "POST_ID",# "status": "cancelled",# "scheduledFor": null,# "destinations": [# { "connectionId": "conn_x_123", "status": "cancelled" },# { "connectionId": "conn_ig_456", "status": "cancelled" }# ]# } Frequently asked questions
Timezone, multi-platform queues, cancel behavior, and everything else about scheduling through Onepostly.
Schedule up to one year ahead. Pass a timezone-naive local datetime in scheduledFor and an IANA timezone such as America/New_York or Europe/Berlin.
Yes. Include multiple destinations in one POST /v1/posts request. Each connection gets the same schedule and Onepostly delivers when the local time arrives.
Any valid IANA timezone. If timezone is omitted, Onepostly defaults to UTC. Do not send Z or a numeric offset on scheduledFor.
Yes. DELETE /v1/posts/:id cancels scheduled, queued, or processing posts before they publish. It does not remote-delete content that already went live.
Due posts move into the publish queue with retries and per-destination status. Your product can show which destinations succeeded and which failed.
Yes. Schedule text, images, videos, and multi-image posts. Media rules are validated per destination when you create the job.
