Configured tool · write
upload_media
Create a short-lived direct-upload contract for finished video bytes.
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.
content_typeRequiredvideo/mp4 | video/quicktimeExact Content-Type the caller will send on the PUT.
size_bytesRequiredpositive integerExact byte length the caller will send on the PUT.
platformsRequiredplatform[]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.
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 returnedPUT the exact bytes
Use the returned URL, method, and headers without modifying the object key or declared byte length.
PUT completeVerify the handle
Call get_media until it returns stored, pending, or failed.
expired or rejectedCreate a new upload
Never reuse or extend an expired signed URL.