---
title: "Lightweight status check for a presigned upload slot. Returns the SAME state as `GET /media/uploads/{id}` but with NO body — the status is carried in the `X-Reveldigital-Upload-Status` header (`pending`, `uploaded`, or `completed`) and, once finalized, the media id in `X-Reveldigital-Media-Id`. This lets a client cheaply poll for completion without transferring or parsing a JSON body."
method: HEAD
path: "/media/uploads/{id}"
tags: ["Media"]
---

# Lightweight status check for a presigned upload slot. Returns the SAME state as \`GET /media/uploads/{id}\` but with NO body — the status is carried in the \`X-Reveldigital-Upload-Status\` header (\`pending\`, \`uploaded\`, or \`completed\`) and, once finalized, the media id in \`X-Reveldigital-Media-Id\`. This lets a client cheaply poll for completion without transferring or parsing a JSON body.

`HEAD /media/uploads/{id}`

## Request

- Base URL: `https://api.reveldigital.com`
- URL: `https://api.reveldigital.com/media/uploads/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.reveldigital.com/connect/authorize`
    - Token URL: `https://id.reveldigital.com/connect/token` scopes: `webapi`
  - API key in header `X-RevelDigital-ApiKey`
  - API key in query parameter `api_key`
- TypeScript: <https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/docs/media/uploads/:id/head.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Response `200`

The slot exists; the status is in the response headers.

## Other responses

- `404`: If the slot does not exist, has expired, or belongs to another account.

---

[API](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api.md) - [All operations](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/revisions/39d5c8302822?raw)
