GIF and video
How frames are sampled, what they cost, and how to read per-frame results.
GIFs and videos are analysed frame by frame. Frames are spread evenly over the whole clip, first and last always included, up to max_frames (default 5 for GIFs, 10 for videos, maximum 32). Each analysed frame costs one credit.
{ "url": "https://example.com/clip.mp4", "max_frames": 8, "include_frames": true }The media level is the maximum over frames. With include_frames: true you get:
"frames": [
{ "index": 0, "timestamp_ms": 0, "level": 0, "scores": { "revealing": 4.1, "implied_nudity": 1.2, "explicit": 0.3 }, "flags": { "art": { "score": 2.0, "detected": false }, "sex_object": { "score": 0.1, "detected": false } } },
{ "index": 47, "timestamp_ms": 2350, "level": 2, "scores": { "revealing": 96.2, "implied_nudity": 71.5, "explicit": 8.1 }, "flags": { "…": 0 } }
]Guidance: 5 frames catch a short meme GIF; 10 cover a typical 10–30 s clip; use 16–32 for longer uploads where a brief scene matters. Videos must finish within the 60 s request budget; very long files should be cut or sampled on your side. Video requires a paid account; free accounts can analyse GIFs up to 8 MB.