Send the target accounts and the content. Returns 202 with the post id; the
post is delivered in the background. Tune each network with platform_options;
the accepted keys and per-platform fields are listed below.
/v1/postsCreate a unified post to one or more connected accounts. Returns immediately (202) and delivers asynchronously.
Headers
AuthorizationrequiredBearer <DRAVO_API_KEY> or Bearer <JWT>.
Idempotency-KeyOptional. Repeated requests with the same key return the same job instead of enqueuing a duplicate.
Body & query parameters
account_idsstring[]required1 to 100 connected account IDs to publish to.
textstringrequiredPost body, 1 to 5000 chars.
media_urlsstring[]Public URLs of images/videos, ideally ingested first via POST /v1/media.
platform_optionsobjectTyped per-platform overrides keyed by platform name. Accepted root keys: facebook, instagram, tiktok, linkedin, x. Unknown platform keys and unknown option names are rejected before queueing.
scheduled_atstring (ISO 8601)If set, schedule the job. Must be timezone-aware and at least 60 seconds in the future.
Error codes
400Validation error (empty text, no account_ids, scheduled_at in the past).
401Missing or invalid API key / JWT.
const response = await fetch("https://api.dravo.dev/v1/posts", { method: "POST", headers: { "Authorization": "Bearer " + process.env.DRAVO_API_KEY, "Content-Type": "application/json",}, body: JSON.stringify({ "account_ids": [ "acc_8f2c1d", "acc_4b9e07" ], "text": "Shipping Dravo: one API for every social network.", "media_urls": [ "https://cdn.dravo.dev/u/abc/cover.jpg" ], "platform_options": { "facebook": { "as_reel": true }, "tiktok": { "privacy_level": "SELF_ONLY" } }})});const data = await response.json();console.log(data);{ "id": "post_2a7f93", "status": "queued", "scheduled_at": null}Per-platform options
Use platform_options when one platform needs behavior that does not exist on
the others: TikTok privacy, Facebook Reel mode, Instagram Stories, LinkedIn link
previews, X polls, and similar platform-specific controls. The object is keyed by
platform and validated before Dravo creates the publish job.
platform_options is strict. The accepted root keys are facebook, instagram, tiktok, linkedin and x. Unknown roots like threads, legacy meta, and typos like firstComent are rejected before the post is queued.
platform_options.facebookUse these when publishing to Facebook Pages, especially video posts that should become Reels.
as_reelbooleanPublishes an eligible video as a Facebook Reel instead of a normal feed video.
first_commentstringPosts a first comment after the post is created. If the comment fails, the post can still publish and the result includes a warning.
{ "platform_options": { "facebook": { "as_reel": true, "first_comment": "Full details in the first comment." } }}