Starter
Solo builders & side projects
Free forever
Includes:
- 1 connected social account
- Unlimited posts
- Unlimited scheduling
- Unlimited analytics
- All API access
- Webhooks for delivery status
- No credit card required
Connect accounts once. Publish, engage, and measure across X, Instagram, Facebook, Threads, and more from a single API.
No credit card required
import { Configuration, PostsApi } from "@onepostly/sdk";
const posts = new PostsApi(
new Configuration({ apiKey: process.env.ONEPOSTLY_API_KEY }),
);
await posts.createPost({
createPostBody: {
text: "Ship once. Post everywhere.",
mediaKind: "image",
mediaUrls: ["https://cdn.example.com/launch.png"],
destinations: [
{ connectionId: "conn_x_123" }, { connectionId: "conn_ig_456" },
],
},
});import os
from onepostly import ApiClient, Configuration
from onepostly.api.posts_api import PostsApi
posts = PostsApi(ApiClient(
Configuration(api_key={"ApiKeyHeader": os.environ["ONEPOSTLY_API_KEY"]}),
))
await posts.create_post(
create_post_body={
"text": "Ship once. Post everywhere.",
"mediaKind": "image",
"mediaUrls": ["https://cdn.example.com/launch.png"],
"destinations": [
{"connectionId": "conn_x_123"},
{"connectionId": "conn_ig_456"},
],
}
)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"],
"destinations": [
{ "connectionId": "conn_x_123" },
{ "connectionId": "conn_ig_456" }
]
}'Every platform, one request shape. Publish, schedule, and read results without learning each API.
Typed SDKs for TypeScript and Python, or plain HTTP if you'd rather keep your dependency list short.
import { Configuration, PostsApi } from "@onepostly/sdk";
const posts = new PostsApi(
new Configuration({ apiKey: process.env.ONEPOSTLY_API_KEY }),
);
await posts.createPost({
createPostBody: {
text: "Ship once. Post everywhere.",
mediaKind: "image",
mediaUrls: ["https://cdn.example.com/launch.png"],
destinations: [
{ connectionId: "conn_x_123" },
{ connectionId: "conn_ig_456" },
],
},
});Every publish gets a per-platform receipt, and every failure comes back with a reason.
One test post is easy. Production isn't. App reviews, OAuth per account, and whatever the next platform update breaks. We absorb it so you ship features instead.
Skip App Review
Screencasts, business docs, and review cycles per platform
Skip OAuth and Tokens
Refresh handling and secure credentials for every account
Skip Media Pipelines
Chunked uploads for every format and size limit
Skip Rate Limits
Quotas, backoff, and partial failures across accounts
Skip Edge Cases
Expired tokens, scope drift, regional restrictions
Skip Silent Failures
The "why didn't this one post?" triage
A hosted MCP server, curated skills, and OpenClaw support, so Claude, Cursor, and Hermes can publish and read results without a custom integration.
Ready to hand to an agent, with an llms.txt index, a full OpenAPI spec, and Markdown at every docs path.
Free to start, fair as you scale.
Common questions from teams shipping on Onepostly.
Still have questions?Ask our team →Direct platform integrations take weeks of engineering each. With Onepostly you go from API key to first published post in minutes, using one request shape for every network.
No. We only use official platform APIs, so your posts behave exactly like native posts.
No. We maintain the platform apps, approvals, OAuth flows, and token refresh on our side. You connect accounts in the dashboard and call one API with your key.
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.
Failed destinations retry automatically and report their own status. Webhooks tell you when each publish finishes, with the failure reason when something did not. No silent failures, no polling loops.
X (Twitter), Instagram, Facebook, Threads, LinkedIn, TikTok, YouTube, Pinterest, and Bluesky, nine platforms live today, all through a single POST /v1/posts endpoint.
Yes. Onepostly ships an MCP server. Point Claude, Cursor, or any MCP client at it and your agent can list connections, publish, schedule, and pull analytics in plain language.
Start free with a connected account included. Paid plans scale with how many accounts you connect. X usage bills at X's own list prices from a prepaid wallet, with no markup.