Image
One rendition of a card face, with the rights holder named.
Returned by
Returned inside a card when you ask for include=images. Today a card carries a single row: the FRONT face at NORMAL size. The face and size enums are wider than that because the schema anticipates more renditions, not because more are served.
width and height are declared and null. They are not measured on ingest, so if you need to reserve layout space you must measure the file yourself or use a fixed aspect ratio — assuming a number here would give you a layout shift on every card.
url points at our mirror when a mirrored copy exists and at the original otherwise. Which of the two you get is a deployment setting, not a property of the row: the upstream URL is never deleted, so we can stop mirroring without a migration and without breaking a single link.
Fields
| Field | Type | Null | Description |
|---|---|---|---|
face | enum | no | FRONT, BACK, ART, LOGO, SYMBOL. Only FRONT is served on cards today. |
size | enum | no | SMALL, NORMAL, LARGE. Only NORMAL is served today — there is one rendition per card, not three. |
locale | string | yes | Language of the printing shown. Null for language-neutral art and for rows where the printing language was not recorded. |
url | string | no | Fetchable URL. Cacheable: the rendition is part of the path, so the bytes behind a given URL do not change. |
image_source | string | yes | Who owns or hosts the original. Credit it. |
width | integer | yes | Pixels. Reserved; still empty after the 2026-09-03 enrichment, because no source we hold carries it. |
height | integer | yes | Pixels. Reserved; still empty after the 2026-09-03 enrichment, because no source we hold carries it. |
Example
{
"face": "FRONT",
"size": "NORMAL",
"locale": null,
"url": "https://media.rarebit.app/cards/BASE/4-normal.webp",
"image_source": "rarebit-media",
"width": null,
"height": null
}