The delivery API tells your server which published version of a face lens or screen effect to download, and where its files are. It has four read-only routes, all at https://mirage-api.ingevora.com.
https://mirage-api.ingevora.com
Send your API key in the X-Api-Key header of every request. The delivery API accepts nothing else. See API keys.
X-Api-Key
GET /v1/lenses/:lensId
GET /v1/lenses/:lensId/versions/:version
GET /v1/effects/:effectId
GET /v1/effects/:effectId/versions/:version
Ids are UUIDs; copy them from the Developers page in the editor. A version is a whole number from 1. One key works for both products.
# The latest version of a face lens curl -H "X-Api-Key: mk_…" https://mirage-api.ingevora.com/v1/lenses/8f3c2a10-… # Version 2 of a screen effect curl -H "X-Api-Key: mk_…" https://mirage-api.ingevora.com/v1/effects/5d1e7b42-…/versions/2
{ "data": { "lensId": "8f3c2a10-…", "version": 3, "manifestUrl": "https://…/lenses/8f3c2a10-…/3/manifest.json", "manifestSha256": "9f2c…", "totalBytes": 184522, "minEngineVersion": 1, "publishedAt": "2026-10-02T09:30:00.000Z", "previewUrl": "https://…/lenses/8f3c2a10-…/3/preview.png" }, "success": true }
lensId
version
manifestUrl
manifest.json
manifestSha256
totalBytes
minEngineVersion
publishedAt
previewUrl
null
{ "data": { "effectId": "5d1e7b42-…", "version": 2, "manifestUrl": "https://…/effects/5d1e7b42-…/2/manifest.json", "manifestSha256": "41ad…", "totalBytes": 96310, "minEngineVersion": 1, "durationMs": 2000, "publishedAt": "2026-10-01T16:05:12.000Z" }, "success": true }
The fields mean the same as for a face lens, with effectId in place of lensId. durationMs is the effect's length in milliseconds. A screen effect has no previewUrl.
effectId
durationMs
All of these give the same 404, "Lens not found" or "Screen effect not found":
404
The answers are the same on purpose, so nobody can use the API to learn what other workspaces have. A mistyped path also answers 404. Archived items keep answering normally.
401
403
400
Every error comes in the same envelope. See Errors and limits.
Every delivery call made with a valid key counts against that key, per UTC day, whatever the answer: a 404 counts too. Downloading the manifest and the images is not a delivery call and is not counted. Cache answers on your server instead of asking on every app launch.
New fields can appear in these answers without a new API version (previewUrl was one). Read answers leniently and ignore fields you don't know. Removing or changing a field would be announced first. See Downloading safely.
The interactive API reference is at https://mirage-api.ingevora.com/docs.