Documentation menu

Core concepts

The unified JSON

View .md

One request shape for every network: account_ids, text, media_urls and provider_options.

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

FieldTypeNotes
account_idsstring array1 to 100 connected accounts to publish to.
textstringThe post body, 1 to 5000 characters. Each network applies its own limit on top.
media_urlsstring arrayPublic image or video URLs. Ingest them first via media for reliability.
provider_optionsobjectOptional per provider overrides (see below).
scheduled_atstringOptional 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.