---
title: "Register media upload"
method: POST
path: "/media"
tags: ["media"]
---

# Register media upload

`POST /media`

Register your intent to upload media.

The response includes all of the information needed to upload the media to Pinterest.

To upload the media, make an HTTP POST request (using `curl`, for example) to `upload_url` using the `Content-Type` header value. Send the media file's contents as the request's `file` parameter and also include all of the parameters from `upload_parameters`.

**[Learn more](/docs/api-features/creating-boards-and-pins/#creating-video-pins)** about video Pin creation.

## Request body

- MediaUploadCreate — Resource create operation model.
  - `media_type` 'video', required

## Response `200`

The request has succeeded.

- MediaUpload — Media upload that has been registered but not uploaded/processed yet.
  - `media_id` string, required — Unique identifier for this media upload. Used to track status and for attaching during Pin creation.
  - `media_type` 'video', required
  - `upload_parameters` MediaUploadParameters
    - `Content-Type` string
    - `key` string
    - `policy` string
    - `x-amz-algorithm` string
    - `x-amz-credential` string
    - `x-amz-date` string
    - `x-amz-security-token` string
    - `x-amz-signature` string
  - `upload_url` string — The URL where you will POST your media file.

## Other responses

- `201` — Resource create operation completed successfully.
- `400` — The request could not be understood by the server due to unexpected data.
- `401` — Authentication is required and has either failed or not been provided.
- `403` — The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.
- `404` — The requested resource could not be found on this server.
- `429` — The user has sent too many requests in a given amount of time and is being rate limited.
- `default` — An unexpected error response.

## Changes

- **2025-10-16** (v5) `14c297539b64` — 1 breaking, 12 info
  - the `media_type` request property type/format changed from `string`/`` to ``/``
  - the request required property `media_type` became not write-only
  - removed `subschema #1` from the response body `allOf` list for the response status `201`
  - added the non-success response with the status `400`
  - …9 more
- **2024-04-23** (v5) `f9321315766f` — 1 breaking
  - the response's body type/format changed from ``/`` to `object`/`` for status `201`
- **2022-01-07** (v5) `59a2e4171755` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pinterest/apis/pinterest-rest-api/changes/media/post.md)

---

[API](https://skmtc.dev/pinterest/apis/pinterest-rest-api.md) · [All operations](https://skmtc.dev/pinterest/apis/pinterest-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pinterest/pinterest-rest-api/revisions/b698c180678a/schema)
