---
title: "The unified JSON"
description: "One request shape for every network: account_ids, text, media_urls and provider_options."
section: "Core concepts"
url: https://dravo.dev/docs/concepts/unified-json
---
# The unified JSON

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

```json
{
  "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](/docs/concepts/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.

```json
{
  "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](/docs/networks/tiktok).

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