Skip to content

Schemas and examples

Field Type Required Meaning
url validated HTTP URL yes Complete target URL. Pydantic rejects malformed/non-HTTP URL input with 422.
{"url":"https://www.instagram.com/p/SHORTCODE/"}
Field Type Required Meaning
shortcode string yes Platform post, video, track, or cache identifier
caption string yes Caption or title fallback
author string yes Handle, channel, or artist
media_type string yes Common values include video, image, audio, and text
thumbnail_url string yes Relative cached preview/image path; may be empty when unavailable
video_url, audio_url, cover_url string or null no Relative cached media paths
duration integer or null no Duration in seconds when provided
title, album string or null no Music metadata when provided
carousel MediaItem[] or null no Ordered multi-item visual media
tracklist TrackItem[] or null no Ordered album/playlist tracks

MediaItem always has index, media_type, and thumbnail_url; video_url is nullable. TrackItem always has index, title, artist, and audio_url.

{
"shortcode": "SHORTCODE", "caption": "Example reel", "author": "creator",
"media_type": "video", "thumbnail_url": "/media/instagram/SHORTCODE/thumbnail.jpg",
"video_url": "/media/instagram/SHORTCODE/video.mp4", "audio_url": null,
"cover_url": null, "duration": null, "title": null, "album": null,
"carousel": null, "tracklist": null
}

Examples are representative and contain placeholders. Consumers should tolerate nullable optional fields and additional fields from a directly mounted module, but the gateway contract is the base schema above.