One request shape
Publishing to TikTok, Instagram, Facebook, and LinkedIn is the same call. Where a network needs something of its own, like a YouTube title, it rides along in a platforms object.
Connect accounts and publish to TikTok, Instagram, Facebook, and LinkedIn through a single REST API. One authentication model, one request shape, and no separate integration to build and maintain per network.
7-day trial · card required · $0 today · REST API, MCP, and CLI on every paid plan
List what you can publish to, then publish. That is the whole surface for a simple integration.
# List the accounts you can publish to
curl https://api.cutedyno.com/v1/accounts \
-H "Authorization: Bearer $CUTEDYNO_API_KEY"
# Publish the same post to several of them
curl -X POST https://api.cutedyno.com/v1/posts \
-H "Authorization: Bearer $CUTEDYNO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"content": "Spring collection drops Friday.",
"accountIds": ["acct_instagram", "acct_linkedin"],
"publishNow": true
}'Or use the typed Node client
import { CuteDyno } from '@cutedyno/node';
const cutedyno = new CuteDyno(); // reads CUTEDYNO_API_KEY
const { accounts } = await cutedyno.accounts.list();
await cutedyno.posts.create({
content: 'Spring collection drops Friday.',
accountIds: accounts.map((account) => account.id),
scheduledAt: '2026-08-01T12:00:00Z',
});Node.js is the only client we publish. For other languages, call the API directly or generate a client from the OpenAPI document.
Publishing to TikTok, Instagram, Facebook, and LinkedIn is the same call. Where a network needs something of its own, like a YouTube title, it rides along in a platforms object.
Send a customer to a connect session and CuteDyno runs the platform OAuth, the callback, the token exchange, and the refresh cycle from there.
Subscribe to post.published, post.failed, post.partially_published, and account.connected instead of asking for status on a timer.
Send an Idempotency-Key on writes and a retry after a timeout returns the original result rather than publishing twice.
POST /v1/posts/validate runs the same platform checks as a real publish and returns the same errors, without posting anything.
Read reach, views, and engagement per account and per post from the API you already publish through.
Keys are scoped to a profile and shown once. The same key works for REST, the CLI, and the MCP server.
Open the dashboardConnect your own accounts in the dashboard, or start a hosted OAuth session so your customers connect theirs from inside your product.
Connecting accountsCreate the post, then handle the delivery events. Every publish reports per account, so a partial failure is visible rather than silent.
Webhook eventsSend them to a connect session and CuteDyno handles the platform OAuth, the callback, and the token refresh. You get an account.connected webhook when it is ready.
The hosted OAuth connection screen a customer sees after your product sends them to GET /v1/connect/{platform}: the platform picker, the permissions being granted, and your own branding on the page.
Screenshot slot · 16/9
We are working with a small group of SaaS and AI-product teams embedding social publishing. Apply if you need hosted OAuth, webhooks, and a dashboard without building a separate integration for every network.
Full API access on every paid plan. Hosted OAuth and webhooks come with Builder.