Social Media Scheduling API
for Developers
Set a local time and a timezone. Every account you pick publishes right on schedule.
import { Configuration, PostsApi } from "@onepostly/sdk";
const posts = new PostsApi(
new Configuration({ accessToken: process.env.ONEPOSTLY_API_KEY }),
);
await posts.createPost({
createPostBody: {
text: "Ship once. Post everywhere.",
scheduledFor: "2027-06-01T09:00:00",
timezone: "America/New_York",
accounts: [{ accountId: "acc_x_123" }, { accountId: "acc_ig_456" }],
},
});import os
from onepostly import ApiClient, Configuration
from onepostly.api.posts_api import PostsApi
posts = PostsApi(ApiClient(
Configuration(access_token=os.environ["ONEPOSTLY_API_KEY"])))
await posts.create_post(create_post_body={
"text": "Ship once. Post everywhere.",
"scheduledFor": "2027-06-01T09:00:00",
"timezone": "America/New_York",
"accounts": [{"accountId": "acc_x_123"}, {"accountId": "acc_ig_456"}],
})curl -X POST https://api.onepostly.com/v1/posts \
-H "Authorization: Bearer op_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Ship once. Post everywhere.",
"scheduledFor": "2027-06-01T09:00:00",
"timezone": "America/New_York",
"accounts": [{ "accountId": "acc_x_123" }, { "accountId": "acc_ig_456" }]
}'Schedule Once, Publish on Time
One call queues the post for every account you pick, in the timezone you name.
Any IANA Timezone
A local time plus a zone like Europe/Berlin.
Up to a Year Ahead
Queue posts as far as one year out.
Cancel Before It Goes Out
One DELETE stops a scheduled post.
An Outcome per Account
Each account reports published, or failed with a reason.
Reach every network from a single API.
Create a key, connect your accounts, publish everywhere with one request, and see how every post performs.
Create a key with the permissions and profile access you need, then connect the accounts it publishes to.
API Keys (8)
All set, your post to X, LinkedIn, and Instagram is scheduled for 9 AM tomorrow.
Connected Onepostly MCPBuilt for Your Agent
Onepostly ships as an MCP server. Your agent publishes to every platform.
Unified Analytics
One request pulls engagement data from every network your accounts publish to.
Webhooks & Events
Publish, fail, comment, or DM. Every event hits your endpoint the moment it happens.
Your account list grows.
Your integration doesn't.
Run 2,000+ connected accounts across your workspaces without losing track of who did what.
Frequently Asked Questions
Timezones, media, cancelling, and managing scheduled posts.
Have more questions? Reach out to us
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. List several accounts in one POST /v1/posts request. Each account gets its own post on the same schedule, published 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 a scheduled post before it publishes. On a post that already went live, the same call deletes it from the platform where the platform allows it.
Each account's post reports its own outcome, so you can show which went out. A failed post carries an error code and a reason, and the failure is final: waiting does not change it.
Yes. Schedule text, images, videos, and carousels. Media rules are checked for every account when you create the post.
Yes. The OAuth screens your users see carry neutral names like Social Media Connector rather than our brand, so the experience reads as fully yours.
Have more questions? Reach out to us