Browse docs

Configured tool · write

upload_media

Create a short-lived direct-upload contract for finished video bytes.

writenon-destructiveopen-world

Human and agent roles

Configured boundary

Configured workspace

The returned URL is PUT-only and targets one server-generated key inside this workspace. Video bytes go directly to Postdom-owned storage, never through MCP or the API process; the signed URL is temporary and must not be exposed.

This reference describes a connection made with @postdom/mcp@0.3.0 and a workspace-scoped agent key created in Accounts.

Callable schema

Input fields

Field names match the configured tool schema. Runtime-only constraints are labeled separately from schema validation.

FieldTypeContract
content_typeRequired
video/mp4 | video/quicktime
Core platformLimits

Exact Content-Type the caller will send on the PUT.

size_bytesRequired
positive integer
At most 500 MB

Exact byte length the caller will send on the PUT.

platformsRequired
platform[]
One to nine unique supported destinations

Target platforms used for core media validation before URL issuance.

Synthetic values

Example call

Identifiers and values are examples. They do not represent a connected workspace or accepted media source.

EXAMPLE CALL · CONFIGURED TOOL SCHEMA
upload_media({
  content_type: "video/mp4",
  size_bytes: 2319,
  platforms: ["instagram", "youtube"]
})

Observed API record

Return shape

Returns one five-minute PUT contract and an opaque workspace media handle.

media_handlepd_media_…
Opaque handle used by get_media and publish_video.
upload_urlsigned URL
Temporary single-key destination. Treat it as sensitive and do not log or share it.
methodPUT
The only allowed upload method.
headersContent-Type · Content-Length
Exact headers the direct PUT must preserve.
expires_atdatetime
When the short-lived upload URL stops accepting the PUT.

Stop conditions

Agent handoff

contract returned

PUT the exact bytes

Use the returned URL, method, and headers without modifying the object key or declared byte length.

PUT complete

Verify the handle

Call get_media until it returns stored, pending, or failed.

expired or rejected

Create a new upload

Never reuse or extend an expired signed URL.

VERIFIED · 26 AUGUST 2026POST /v1/media/uploads · packages/core mediaOperations.createUpload

Examples are synthetic. Human workspace-key creation and revocation remain in the authenticated Accounts screen.