Publish everywhere.
Integrate once.
One API to post, schedule and track content across 10 social networks, with a result for every platform. Built for developers and the AI agents they ship.
20 free credits / month No credit card Live in minutes
Launch day š Our public API is live: one request, every network. #buildinpublic
- inAcme Inc.linkedin.com/feed/update/⦠Sending Published
- @acmex.com/acme/status/⦠Sending Published
- @acme.hqinstagram.com/reel/⦠Sending Published
- Acmeyoutube.com/shorts/⦠Sending Published
- @acmetiktok.com/@acme/video/⦠Sending Published
- 10
- social networks
- 1 request
- to post everywhere
- Per-platform
- results, errors & retries
- 30 days
- of request logs
How it works
One request in. Every result out.
Send one JSON body. Each account gets its own caption and options, and you get a status, link or error back for every platform.
curl -X POST https://social-publish-api.onrender.com/v1/posts \
-H "x-access-key: $RELAYCAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Launch day š Our public API is live.",
"media": [{ "url": "https://cdn.acme.com/launch.mp4", "type": "video" }],
"targets": [
{ "accountId": "3f1c2a9e-ā¦" },
{ "accountId": "8b7d4c21-ā¦" },
{ "accountId": "c2e95a10-ā¦", "options": { "title": "Launch day" } }
],
"scheduledFor": "2026-11-02T09:00:00+05:30"
}'const res = await fetch("https://social-publish-api.onrender.com/v1/posts", {
method: "POST",
headers: {
"x-access-key": process.env.RELAYCAST_API_KEY!,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(), // safe to retry
},
body: JSON.stringify({
content: "Launch day š Our public API is live.",
targets: accounts.map((a) => ({ accountId: a.id })),
publishNow: true,
}),
});
const { data: post } = await res.json(); // one result per platformimport os, uuid, requests
res = requests.post(
"https://social-publish-api.onrender.com/v1/posts",
headers={
"x-access-key": os.environ["RELAYCAST_API_KEY"],
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"content": "Launch day š Our public API is live.",
"targets": [{"accountId": a["id"]} for a in accounts],
"publishNow": True,
},
)
post = res.json()["data"] # one result per platform200 Ā· GET /v1/posts/5d0c8f3eā¦
status: partial- inLinkedInlinkedin.com/feed/update/urn:li:share:ā¦published
- YouTubeyoutube.com/watch?v=ā¦published
- Blueskybsky.app/profile/acme.bsky.social/post/ā¦published
- Instagraminvalid_content Ā· Instagram needs an image or videofailed
One platform failing never blocks the others. Its credit is refunded, and you can resend to just that account.
Get started
Live in three steps
No sales calls and no platform paperwork to get started.
- 1
Create an access key
Sign up and create a key in the dashboard. Keys are stored hashed and can be revoked any time.
x-access-key: sp_live_⦠- 2
Connect accounts
Your users approve access on each network's own sign-in screen. Tokens refresh automatically.
GET /v1/accounts - 3
Post and track
Publish now or schedule, then read per-platform results or receive signed webhooks.
POST /v1/posts
Features
Everything social, one integration
The building blocks your product needs, without maintaining ten platform integrations yourself.
Publish to every network
Text, images, video, carousels, threads, polls, documents and stories, with per-account captions and native options for each platform.
Scheduling built in
Send scheduledFor in any time zone. We publish on time and retry failures.
Post analytics
Views, likes, comments and shares per post, per platform.
Signed webhooks
Published, partial and failed events, signed with HMAC-SHA256.
Comments & inbox
Reply from one inbox, and auto-reply to keywords with comment automation.
Managed OAuth, or bring your own
Accounts connect through each network's own consent screen. Tokens are encrypted and refreshed for you; add your own OAuth apps for branded consent.
Developer-first
Predictable JSON, idempotency keys, request logs and a Playground that writes the request for you.
Idempotency-Key: 7f3c9a⦠HTTP/1.1 200 // replay: same post, no duplicate X-RateLimit-Remaining: 119
Live Publish
Restream one source to YouTube, Facebook, Twitch, Instagram, X, TikTok, LinkedIn, Kick or any RTMP server at once. Go live now or on a schedule, and stop everywhere with one call.
For AI agents
Give your agents a social presence.
Claude, ChatGPT, Cursor or your own agent loop: one maintained path to publish, schedule and check results on every connected platform.
Coverage
Every network your users are on
What each platform supports today, read straight from our integrations.
Bluesky
X (Twitter)
Threads
TikTok
YouTube
Google Business
Twitch
FAQ
Questions, answered
Can't find what you need? The docs cover every endpoint, platform and error.
Browse the docsWhat can I build with it?
Scheduling tools, CMS and e-commerce integrations, creator tools, internal marketing automation, or AI agents that publish for your users. Anything that needs to post to social networks.
Which platforms are supported?
Bluesky, X (Twitter), LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Pinterest, Google Business. Each one has a guide with its post types, options and limits. Live Publish streams to YouTube, Facebook and Twitch, plus Instagram, X, TikTok, LinkedIn, Kick or any RTMP server with a stream key.
How does pricing work?
One post to one account costs 1 credit. The Free plan includes 20 credits every month, no credit card needed.
Do I need my own developer app on each platform?
No. Accounts connect through our apps by default. Bring your own OAuth app per platform if you want your brand on the consent screen.
What happens when one platform fails?
Results are per platform, never all-or-nothing. LinkedIn can succeed while Instagram fails; you get that platform's error and its credit back.
Is there a rate limit?
120 requests per minute per access key by default, reported in the X-RateLimit-Limit and X-RateLimit-Remaining headers.
Ship social features this week, not this quarter.
Start with 20 free credits every month. No credit card required.