MMetadata /docs
Docs/Tools/upload_video_creative

upload_video_creative

Upload videos directly to the Metadata platform library to create video creatives.

Writes creative

Creates or changes something in the account. Put it behind whatever review your agent uses.

What it does

Upload videos directly to the Metadata platform library to create video creatives.
                Downloads videos from provided URLs and uploads them to the platform.

                ⚠️ VIDEO-ONLY: The downloaded file MUST have a `video/*` content-type
                (e.g. video/mp4, video/quicktime). GIFs and image formats are
                rejected — use `upload_image_creative` for those.

                ⚠️ WHEN YOU NEED TO CALL THIS:
                Call this BEFORE `create_update_video_ad` ONLY when you don't already
                have a videoLibraryId. If the user (or an earlier step) has
                already given you a creativeID for the video, skip the upload
                and pass that id straight to `create_update_video_ad`.

                WORKFLOW INTEGRATION (when an upload IS needed):
                1. Upload your video URL with this tool → response contains the integer `id` (the videoLibraryId).
                2. Pass that integer `id` as `creativeID` in `create_update_video_ad`.

                COMMON WORKFLOWS:
                - Upload existing video → Get videoLibraryId → Use as creativeID in `create_update_video_ad`.
                - For Reddit VIDEO ads, ALSO upload a thumbnail image via `upload_image_creative` and pass that image
                  library id as `redditThumbnailLibraryId` to `create_update_video_ad`.

                REQUIRED PARAMETERS:
                - videos: Array of video URLs to upload.

                OPTIONAL PARAMETERS:
                - thumbnail_library_id: Existing imageLibraryId to attach to the
                  uploaded video as its platform thumbnail. Most callers don't
                  need this — Reddit VIDEO ads handle thumbnails at ad-creation
                  time via `redditThumbnailLibraryId`, not here.

                VIDEO REQUIREMENTS:
                - URLs must be valid and publicly accessible.
                - Supported formats: MP4 (recommended), MOV, and other video/* MIME types.
                - For GIFs (image/gif): use `upload_image_creative` instead.

                RESPONSE FORMAT:
                Returns array of objects, one per video. `id` is returned as a
                string (the platform's library ids are integers but the upload
                response stringifies them); pass it to `create_update_video_ad` as an
                integer (Python `int(id)` if you need the cast).
                [
                    {
                        "url": "https://example.com/video.mp4",
                        "name": "video.mp4",
                        "id": "12345",                # videoLibraryId — use as creativeID in create_update_video_ad
                        "success": true
                    },
                    {
                        "url": "https://example.com/bad.mp4",
                        "name": "bad.mp4",
                        "id": null,
                        "success": false,
                        "error": "Download failed: Connection timeout"
                    }
                ]

                ERROR HANDLING:
                - If one upload fails, others continue.
                - Each result includes a success flag and (on failure) an error message.
                - A content-type that does not start with `video/` is rejected
                  with a clear error pointing the caller at `upload_image_creative`.

Arguments

ArgumentTypeNotes
videos array required Array of video URLs to upload to the platform library.
thumbnail_library_id integer Optional existing imageLibraryId to attach as the video's platform thumbnail.

Request

curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
  -H "Authorization: $METADATA_PAT" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"upload_video_creative","arguments":{"videos":[]}}}'

Response

No recorded response. This tool writes to the account, so it is never executed to build these docs. The request above is still the exact shape to send. Nothing on this page is invented.

Other creative tools:

All 160 tools · machine-readable index