One shape for every network
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 networks.
{
"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"],
"provider_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 network applies its own limit on top. |
media_urls | string array | Public image or video URLs. Ingest them first via media for reliability. |
provider_options | object | Optional per provider overrides (see below). |
scheduled_at | string | Optional ISO 8601 time to schedule instead of publishing now. |
Provider 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 provider. Anything you do not set uses a safe default.
{
"account_ids": ["acc_tiktok_1"],
"text": "Behind the scenes",
"media_urls": ["https://cdn.dravo.dev/u/abc/clip.mp4"],
"provider_options": {
"tiktok": {
"privacy_level": "SELF_ONLY",
"disable_comment": false
}
}
}
The available keys per platform are listed in the per network notes.
How targeting works
You target accounts, not networks. Each entry in account_ids is a connected
account, and its provider 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.