One shape for every platform
You describe a post once and Dravo translates it to each platform. The same body works whether you publish to one account or to several across different platforms.
{ "account_ids": ["acc_8f2c1d", "acc_4b9e07"], "text": "Shipping Dravo: one API for every social platform.", "media_urls": ["https://cdn.dravo.dev/u/abc/cover.jpg"], "platform_options": {}}The core fields
| Field | Type | Notes |
|---|---|---|
account_ids | string array | 1 to 100 connected accounts to publish to. |
text | string | The post body, 1 to 5000 characters. Each platform applies its own limit on top. |
media_urls | string array | Public image or video URLs. Upload/import them first via media for reliability. |
platform_options | object | Optional typed per-platform overrides (see below). |
scheduled_at | string | Optional ISO 8601 time to schedule instead of publishing now. |
Platform options
Most posts need nothing here. When a platform exposes a setting that has no equivalent elsewhere, set it under a key named after the platform. Anything you do not set uses a safe default. Unknown platform keys and unknown option names are rejected before the post is queued.
{ "account_ids": ["acc_tiktok_1"], "text": "Behind the scenes", "media_urls": ["https://cdn.dravo.dev/u/abc/clip.mp4"], "platform_options": { "tiktok": { "privacy_level": "SELF_ONLY", "disable_comment": false } }}The available keys per platform are listed in the per platform notes.
How targeting works
You target accounts, not platforms. Each entry in account_ids is a connected
account, and its platform is already known to Dravo. That lets you publish to two
different X accounts, or to one Instagram and one LinkedIn account, in a single
call. The delivery result is reported per account so you always know exactly
where the post landed.