Dystro
The unified social API

One API for every social platform.

Publish, schedule, engage, and measure across ten networks through a single REST API — with managed OAuth, a media pipeline, and unified webhooks doing the heavy lifting.

10 platforms 1 OAuth flow REST + webhooks
Connect once X Instagram Facebook TikTok YouTube LinkedIn Reddit Pinterest Snapchat Bluesky Google Business
What Dystro does

The plumbing you'd otherwise build ten times.

Every network has its own auth, formats, rate limits, and quirks. Dystro normalizes them behind one consistent surface so you ship features, not integrations.

Publish & schedule

One POST /v1/posts targets any set of networks — now or on a schedule — with per-platform validation done for you.

idempotent · timezone-aware

Media pipeline

Upload once. Dystro transcodes video and images to each platform's spec, hosts them, and attaches them to the right post automatically.

transcode · chunked uploads

Managed OAuth

A single brokered connect flow handles tokens, refresh, and revocation for every provider. Your users click connect — you never touch a token.

refresh · scoped · revocable

Unified webhooks & inbox

Comments, mentions, and DMs from every network arrive as one normalized event stream — signed, deduplicated, and replay-safe.

signed · deduplicated

Analytics

Reach, engagement, and growth metrics pulled on a schedule and returned in one shape — no more ten dashboards and ten CSV formats.

normalized metrics

Approvals & roles

Draft, review, and approve posts before they go live. Org and project roles keep the right people in the loop and the wrong ones out.

draft → review → publish
Built for developers

A REST API that stays out of your way.

  • Predictable envelopes. Every response is the same shape, every error a stable machine-readable code.
  • Typed SDK. A first-class TypeScript client with retries, idempotency keys, and full types.
  • Idempotent by design. Safe retries everywhere — never double-post because a request timed out.
  • One set of scopes. Grant access per project; rotate keys without touching platform credentials.
publish.ts
import { createDystro } from '@dystro/sdk';

const dystro = createDystro({ apiKey: process.env.DYSTRO_KEY });

// one call, many networks
const post = await dystro.posts.create({
  platforms: ['x', 'linkedin', 'tiktok'],
  text: 'Shipping Dystro today ✦',
  media: [{ url: 'https://cdn.acme.co/launch.mp4' }],
  scheduledFor: '2026-07-20T15:00:00Z',
});

console.log(post.id, post.status); // → "scheduled"
Early access

Ship social features
in an afternoon.

Dystro is rolling out to a first wave of teams. Request access and we'll get you a key and onboarding.