Get the catalog
Every gallery video with its prompt or skill, creator, model, stack, effort, colours and media URLs, plus the videos removed as duplicates.
GEThttps://motionvideo.xyz/api/catalog
Параметры
If-None-MatchstringheaderНеобязательныйThe
ETagof an earlier response. If it is still current, the response is a304with no body. Send the value exactly as received (one quoted value): lists, weakW/validators and*always get a full response.
Пример запроса
curl -X GET 'https://motionvideo.xyz/api/catalog'Ответы
200
The motion video catalog.
Заголовки
ETagstringQuoted SHA-256 hex digest of the response body. Changes whenever the data does.
Cache-ControlstringBrowsers reuse a response for 5 minutes and shared caches for an hour, then may serve it stale for up to a day while they revalidate.
Значения:
public, max-age=300, s-maxage=3600, stale-while-revalidate=86400
Тело ответаapplication/json
importedAtstringdate-timeОбязательныйWhen the catalog was last imported.
videosMotionVideo[]ОбязательныйEvery gallery video, in catalog order.
Показать поля
slugstringОбязательныйStable ID: the creator's handle and a short hash. The video's page is
/videos/{slug}under a locale, e.g./en/videos/{slug}.titlestringОбязательныйdatestringdateОбязательныйWhen the creator posted it (YYYY-MM-DD).
tagsstring[]ОбязательныйWhat it shares to remake it: a prompt, a skill, or both.
Значения:
promptskillcontentTagsstring[]ОбязательныйGallery categories, at least one.
Значения:
product-uiphonechartsdiagramskinetic-typeshapesparticlescharactersphotosmusiccodepromptSharedbooleanОбязательныйWhether the creator shared the prompt.
handlestringОбязательныйThe creator's X handle, without
@.creatorNamestringThe creator's display name on X, when known.
avatarstringuriОбязательныйThe creator's avatar (WebP).
posterstringuriОбязательныйPoster image (WebP).
blurstringA tiny version of the poster as a
data:URI, to show while media loads.previewstringuriОбязательныйSmall looping preview (MP4).
videostringuriОбязательныйThe full video (MP4).
widthintegerОбязательныйVideo width in pixels.
heightintegerОбязательныйVideo height in pixels.
promptstringThe prompt the creator used, when shared.
skillUrlstringuriThe agent skill the video was made with.
skillInstallstringThe command that installs the skill, e.g.
npx skills add ….tweetUrlstringuriThe source post on X.
descriptionstringmodelstringThe model it was made with, as the creator reported it.
Значения:
Opus 5.5Fable 5.5Gemini 4 ArgonGPT-6 AstrastackstringWhat rendered it, as the creator reported it, e.g.
RemotionorHTML + Playwright.effortstringThe reasoning effort the model ran at.
Значения:
mediumhighmaxiterationsstringHow many rounds of feedback it took.
Значения:
one-shotfew-roundsmany-roundscolorsstring[]Dominant colours as hex without
#, the largest share of the frame first.
removedRemovedVideo[]ОбязательныйVideos removed as duplicates. Their old page URLs redirect to the video they duplicated.
Показать поля
slugstringОбязательныйThe removed video's slug.
duplicateOfstringОбязательныйSlug of the video it duplicated (which may itself be removed later).
tweetUrlstringuriОбязательный
Пример
{
"importedAt": "2026-10-24T21:04:06.396Z",
"videos": [
{
"slug": "stephanlivera-df17a2",
"title": "Claude motion designer showreel",
"date": "2026-09-25",
"tags": [
"prompt"
],
"contentTags": [
"kinetic-type",
"shapes",
"music"
],
"promptShared": true,
"handle": "stephanlivera",
"prompt": "make a dynamic 15-second motion graphics video that shows what an incredible motion designer you are, like it's your showreel for a résumé. go all out.",
"avatar": "https://assets.motionvideo.xyz/avatars/stephanlivera-b812a8857d.webp",
"poster": "https://assets.motionvideo.xyz/motion/stephanlivera-df17a2/poster-f2e1162434.webp",
"blur": "data:image/webp;base64,UklGRjwAAABXRUJQVlA4IDAAAAAwAQCdASoQAAkAAoBCJZwAA3AA/vhFoHeXAMvl50Xzx1TOS+ixn4fsDcDIAjAsAAA=",
"preview": "https://assets.motionvideo.xyz/motion/stephanlivera-df17a2/preview-b43ead41b8.mp4",
"video": "https://assets.motionvideo.xyz/motion/stephanlivera-df17a2/video-5f45198f0d.mp4",
"width": 1920,
"height": 1080,
"tweetUrl": "https://x.com/stephanlivera/status/2103315922098470926",
"model": "Opus 5.5",
"effort": "max",
"creatorName": "Stephan Livera",
"colors": [
"0d0d10",
"ed4938",
"8b0703"
]
}
],
"removed": [
{
"slug": "rossaxbt-94583b",
"duplicateOf": "rossaxbt-4e066d",
"tweetUrl": "https://x.com/rossaxbt/status/2108933141406638456"
}
]
}304
Not modified: If-None-Match matched the current ETag. No body; reuse the copy you have.
Заголовки
ETagstringQuoted SHA-256 hex digest of the response body. Changes whenever the data does.