creatives_request_upload_v2
Prepare or reconcile one tenant-owned creative upload using the credential-free P9 contract. Requires a stable idempotency_key and returns upload_endpoint=/api/upload/proxy when bytes are needed, or dedup_success only for a storage-verified ready object. Never returns upload_url, r2_key, provider credentials, or raw tenant identifiers. Send the multipart bytes to that same-origin endpoint with the same Authorization: Bearer <MCP token> header; the endpoint enforces mcp.launch.prepare, tenant ownership, rate limits, concurrency, size, type and R2-prefix checks.
REQUIRED: filename, content_type, file_size (1..500MB), lowercase 64-hex file_hash, idempotency_key. Optional: upload_attempt (1..3, default 1), folder_id. EXAMPLE: creatives_request_upload_v2({"filename": "hero.mp4", "content_type": "video/mp4", "file_size": 12345678, "file_hash": "", "idempotency_key": "upload-20260723-example", "upload_attempt": 1})
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| file_hash | Yes | ||
| file_size | Yes | ||
| folder_id | No | ||
| content_type | Yes | ||
| upload_attempt | No | ||
| idempotency_key | Yes |