---
title: "Save drop item media from an upload batch"
method: POST
path: "/api/v2/drops/{slug}/items/media/save-batch"
tags: ["Drops Endpoints"]
---

# Save drop item media from an upload batch

`POST /api/v2/drops/{slug}/items/media/save-batch`

## Request

- Base URL: `https://api.opensea.io`
- URL: `https://api.opensea.io/api/v2/drops/{slug}/items/media/save-batch`
- Auth: API key in header `x-api-key` and OpenID Connect (`https://auth.opensea.io/.well-known/openid-configuration`, scopes: `write:drops`)
- TypeScript: <https://skmtc.dev/opensea/apis/opensea-api/docs/api/v2/drops/:slug/items/media/save-batch/post.ts> (a function with typed inputs; its response is checked against the schema)

Saves the drop's items from files uploaded with one upload_batch_id through POST /api/v2/drops/{slug}/items/media, naming them by filename instead of by media token. The request stays small for large drops: a 15,000-item save is about a tenth of the size of the same save by media token, and it is validated with one storage listing instead of one lookup per file. Each save replaces the drop's items, a manifest from POST /api/v2/drops/{slug}/items/manifest supplies token ids and metadata, and without one items are numbered 1 to n in the order of filenames.

Returns 400 when a filename is listed twice or was not uploaded in the batch, naming the files concerned. If a file was uploaded more than once in the batch, the most recent upload is saved. Not available on ERC-1155 self-mint drops.

## Path parameters

- `slug` string, required

## Request body

- SaveDropItemMediaBatchRequest: Request body for saving drop item media from an upload batch
  - `filenames` string[], required: Filenames exactly as uploaded in the batch, one per item and each at most once, up to 15000. Without a manifest, items are numbered 1 to n in this order. Files in the batch that are not named here are not saved.
  - `upload_batch_id` string, uuid, required: The upload_batch_id the files were uploaded with through POST /api/v2/drops/{slug}/items/media.

## Response `200`

Drop item media saved successfully

- SaveDropItemMediaResponse: Response body for saving drop item media
  - `success` boolean, required: Whether the save succeeded

## Other responses

- `400`: For error reasons, review the response data.
- `401`: Invalid or missing API key
- `403`: Forbidden
- `404`: Resource not found
- `409`: Conflict
- `500`: Internal server error. Please open a support ticket so OpenSea can investigate.

## Changes

- **2026-11-03** `2c7935d84f90`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/opensea/apis/opensea-api/changes/api/v2/drops/:slug/items/media/save-batch/post.md)

---

[API](https://skmtc.dev/opensea/apis/opensea-api.md) - [All operations](https://skmtc.dev/opensea/apis/opensea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opensea/apis/opensea-api/revisions/2c7935d84f90?raw)
