# Media

> Your uploaded image library.

Upload and list images stored in your account media library. Use these as image-layer sources in snaps.

## List media

```http
GET /v1/media
```

Returns your uploaded images, 12 per page, newest first.

- **Auth:** Bearer token
- **Token abilities:** `api_requests`
- **Credits:** Free — no credits consumed.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `page` | query | integer | No | Page number for the standard paginator. |

### Responses

**200** — A page of media.

```json
{
    "data": [
        {
            "id": 12,
            "file_name": "logo.png",
            "src": "https://snapsbrew.com/storage/12/conversions/logo-image.jpg"
        }
    ],
    "links": {
        "first": "...",
        "last": "...",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "per_page": 12,
        "total": 1
    }
}
```

### Examples

*Curl*

```bash
curl https://snapsbrew.com/api/v1/media \
  -H 'Authorization: Bearer <your-token>'
```

## Upload media

```http
POST /v1/media
```

Uploads an image into your media library. Send as multipart/form-data.

- **Auth:** Bearer token
- **Token abilities:** `api_requests`
- **Credits:** Free — no credits consumed.

### Request body

Content-Type: `multipart/form-data`

| Field | Type | Required | Validation | Description |
| --- | --- | --- | --- | --- |
| `file` | file | Yes | required, file, image | The image to upload. |

### Responses

**200** — Media uploaded.

```json
{
    "id": 12,
    "file_name": "logo.png",
    "src": "https://snapsbrew.com/storage/12/conversions/logo-image.jpg"
}
```

**422** — File missing or not an image.

```json
{
    "message": "The file must be an image."
}
```

### Examples

*Curl*

```bash
curl -X POST https://snapsbrew.com/api/v1/media \
  -H 'Authorization: Bearer <your-token>' \
  -F 'file=@logo.png'
```
