Browse docs

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.

FieldTypeContract
account_idsRequired
string[]
At least one value

Exact connected destination identifiers returned by list_accounts.

video_urlOptional
URL
Exactly one of video_url, media_handle or media

Finished video already available at an accepted URL; not an image URL.

media_handleOptional
pd_media_…
Exactly one of video_url, media_handle or media · status stored

Postdom-owned video or image verified through get_media.

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

captionRequired
string
At most 4,000 characters

Caption passed to each destination adapter.

intentRequired
string
1–500 characters

The calling agent's reason for this execution.

agent_identityOptional
string
1–120 characters

Caller identity when the configured client does not supply one.

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

titleOptional
string
1–100 characters after trimming

YouTube-only title override.

descriptionOptional
string
At most 5,000 characters

YouTube-only description.

publish_atOptional
datetime
RFC 3339 UTC ending in Z

Exact execution time. Omit it for an unscheduled request.

plan_idOptional
UUID
Valid UUID

Approved plan proposed as the authorization boundary.

idempotency_keyOptional
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
private

Keeps the configured publish private for review.

madeForKids
false

Marks the configured video as not made for kids.

containsSyntheticMedia
true

Applies the synthetic-media disclosure.

CONFIGURED YOUTUBE OUTPUT · NOT TOOL INPUT
{
  "platform": "youtube",
  "settings": {
    "title": "<first caption line, maximum 100 characters>",
    "visibility": "private",
    "madeForKids": false,
    "containsSyntheticMedia": true
  }
}
VERIFIED · 26 AUGUST 2026Configured tool schemas · API routes · YouTube adapter defaults

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