---
title: "Serve web-optimized image (max 2500px, original format)"
method: GET
path: "/v1/images/{id}/canonical"
tags: ["Images"]
---

# Serve web-optimized image (max 2500px, original format)

`GET /v1/images/{id}/canonical`

## Request

- Base URL: `https://api.memestack.ai`
- URL: `https://api.memestack.ai/v1/images/{id}/canonical`
- Auth: none declared

The image at most 2500 px on its longest side, in its original format. An original that already fits is served as uploaded (`has_canonical: false` on the record); in the rare case the resizer could not shrink a very large original, that original is served too. With `w`, a lossy JPEG display rendition at most `w` px wide instead (never upscaled), or the file above where none is stored for that width: a rendition no lighter than the file is never kept, and an AI-generated image is never re-encoded.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `w` 1080 | 1600

## Response `200`

Image bytes

## Other responses

- `400`: INVALID_WIDTH — `w` is not an allowed width
- `404`: Image not found

---

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