Create post

View .md

Create a post to one or more connected accounts. Returns 202 with the post id.


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.

POST/v1/posts
API key (dra_…) or dashboard JWT

Create a unified post to one or more connected accounts. Returns immediately (202) and delivers asynchronously.

Headers

Authorizationrequired

Bearer <DRAVO_API_KEY> or Bearer <JWT>.

Idempotency-Key

Optional. Repeated requests with the same key return the same job instead of enqueuing a duplicate.

Body & query parameters

account_idsstring[]required

1 to 100 connected account IDs to publish to.

textstringrequired

Post body, 1 to 5000 chars.

media_urlsstring[]

Public URLs of images/videos, ideally ingested first via POST /v1/media.

platform_optionsobject

Typed 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

400

Validation error (empty text, no account_ids, scheduled_at in the past).

401

Missing 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.

Request validation

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.

Facebook

platform_options.facebook

Use these when publishing to Facebook Pages, especially video posts that should become Reels.

as_reelboolean

Publishes an eligible video as a Facebook Reel instead of a normal feed video.

first_commentstring

Posts a first comment after the post is created. If the comment fails, the post can still publish and the result includes a warning.

Example
{  "platform_options": {    "facebook": {      "as_reel": true,      "first_comment": "Full details in the first comment."    }  }}