> Discover all available Postdom documentation from the machine-readable index: https://postdom.com/llms.txt

Destination · API reference

# YouTube Shorts

Use one workspace-scoped agent connection to select a connected YouTube account, submit finished video, and read the resulting post and performance records.

Workspace boundary

## Authentication and account ID

The configured client authenticates to one Postdom workspace. A human completes YouTube authorization on the provider screen; the agent receives a connected account ID, not the social credential.

`workspace credential`

Use the workspace key or connected OAuth grant configured for the agent client.

`youtube authorization`

Return the provider URL to a human. Do not ask the agent to enter YouTube credentials.

`account_ids`

Call `list_accounts` and pass the exact YouTube `providerAccountId` to `publish_video`.

Routes and configured tools

## API surface

The configured MCP tools map to the same workspace-scoped API records. Use the tool schema connected to the agent as the callable contract.

 GET /v1/accounts

### `list_accounts`

Find the connected account whose platform is youtube, then use its exact provider account ID.

 POST /v1/posts

### `publish_video`

Submit finished media, caption, intent, and an optional exact UTC publish time.

 GET /v1/posts/:id

### `get_publish`

Read the post state and the YouTube destination outcome without changing either record.

 GET /v1/posts/:id/performance

### `get_performance`

Read normalized measurements and availability metadata for the published destination.

Callable schema

## Publish request fields

These are the current `publish_video` inputs. YouTube-specific settings are configured after validation and are not accepted as tool arguments.

| Field | Type | Contract |
| --- | --- | --- |
| account_ids Required | string[] | At least one value Exact connected destination identifiers returned by list_accounts. |
| video_url Optional | URL | Exactly one of video_url, media_handle or media Finished video already available at an accepted URL; not an image URL. |
| media_handle Optional | pd_media_… | Exactly one of video_url, media_handle or media · status stored Postdom-owned video or image verified through get_media. |
| media Optional | object[] | Exactly one of video_url, media_handle or media · current source Ordered items, each with exactly one media_url or media_handle. The corrected source adapter validates and forwards this list without sorting it. Synthetic tests are not release or provider-publication evidence; verify the connected implementation before use. |
| caption Required | string | At most 4,000 characters Caption passed to each destination adapter. |
| intent Required | string | 1–500 characters The calling agent's reason for this execution. |
| agent_identity Optional | string | 1–120 characters Caller identity when the configured client does not supply one. |
| surface Optional | Record<string, string> | Supported platform-to-surface values only For example instagram: reel or story for video, feed for images/carousels; facebook: reel, feed or story; youtube: short or long_form. Omit for the media-dependent default. |
| title Optional | string | 1–100 characters after trimming YouTube-only title override. |
| description Optional | string | At most 5,000 characters YouTube-only description. |
| publish_at Optional | datetime | RFC 3339 UTC ending in Z Exact execution time. Omit it for an unscheduled request. |
| plan_id Optional | UUID | Valid UUID Approved plan proposed as the authorization boundary. |
| idempotency_key Optional | string | Non-empty Caller-supplied replay key. The adapter generates a UUID when omitted. |

Example identifiers are synthetic. The media handle must already return `stored` from `get_media`.

_EXAMPLE YOUTUBE CALL · CONFIGURED TOOL SCHEMA_

```
publish_video({
  account_ids: ["acct_example_yt"],
  media_handle: "pd_media_11111111-1111-4111-8111-111111111111",
  caption: "Three moves that changed our launch",
  intent: "Execute the approved launch schedule",
  publish_at: "2026-09-03T09:00:00Z"
})
```

Configured adapter output

## YouTube destination configuration

These settings are added after tool validation. They are not publish_video inputs.

**`title`** — **first caption line**  Uses the first line, capped at 100 characters; falls back to Postdom video when that line is empty.

**`visibility`** — **public**  Makes the configured publish public.

**`madeForKids`** — **false**  Marks the configured video as not made for kids.

**`containsSyntheticMedia`** — **false**  Leaves the synthetic-media disclosure off. Set it to true per post when the video is AI-made.

_CONFIGURED YOUTUBE OUTPUT · NOT TOOL INPUT_

```
{
  "platform": "youtube",
  "settings": {
    "title": "<first caption line, maximum 100 characters>",
    "visibility": "public",
    "madeForKids": false,
    "containsSyntheticMedia": false
  }
}
```

Explanatory owners

## Related YouTube references

This page stays limited to the callable contract. Use the linked platform pages for scheduling, video requirements, and metric interpretation.

### YouTube Shorts overview

Publishing workflow, scheduling behavior, and the current platform boundary.

[Open reference](https://postdom.com/platforms/youtube-shorts)

### Length and requirements

Verified format, dimensions, aspect ratio, duration, title, and qualification facts.

[Open reference](https://postdom.com/platforms/youtube-shorts/length-and-requirements)

### Metrics API availability

The live YouTube field matrix, delay rules, gaps, and null-safe interpretation.

[Open reference](https://postdom.com/platforms/youtube-shorts/metrics-api-availability)

### Cross-platform availability

Compare metric states across TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Stories, Threads, and Bluesky.

[Open reference](https://postdom.com/docs/destinations/metric-availability)

 VERIFIED · 26 AUGUST 2026  **Configured tool schemas · API routes · YouTube adapter defaults**

Examples are synthetic. Private workspace and provider identifiers are excluded.
