---
title: "Read an uploaded asset and its retention terms"
method: GET
path: "/v1/media/{id}"
tags: ["Media"]
---

# Read an uploaded asset and its retention terms

`GET /v1/media/{id}`

## Request

- Base URL: `https://api.postlake.dev`
- URL: `https://api.postlake.dev/v1/media/{id}`
- Auth: `bearerAuth` (a scheme the document does not define)

## Path parameters

- `id` string, required

## Response `200`

Account-scoped media metadata

- MediaAsset
  - `deletionState` 'deleting': Cleanup is incomplete and can be retried. This upload cannot be used in new posts.
  - `retention` object: Minimum 90 days from upload on every plan while the account is open. Scheduled references remain protected until terminal state plus 30 days if later. No automatic expiry currently. Account deletion, verified erasure requests and legal/security removal are exceptions. Source URLs are public, not private storage.
    - `version` string
    - `minimumDays` integer
    - `minimumUntil` string, date-time
    - `scheduledProtection` string
    - `automaticExpiry` boolean
    - `exceptions` string[]
    - `scope` string
    - `accountRequirement` string
    - `publicUrls` boolean
    - `postRemovalDeletesMedia` boolean
    - `backupService` boolean
  - `id` string, required
  - `url` string, uri, required
  - `contentType` string, required
  - `size` integer, required
  - `createdAt` string, date-time, required
  - `width` integer: Pixel width. Images only, and absent when the header could not be read.
  - `height` integer: Pixel height. Images only, and absent when the header could not be read.

## Other responses

- `404`: Media not found in this account

---

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