Remix tile: 96 cells per call, and how to count yours
A remix media tile call is refused above 96 cells with remix_tile_too_many_cells. How each selector is counted, worked examples, and ways to split a request.

A single remix media tile call may resolve to at most 96 cells. If your selectors add up to more, the request is refused at admission with remix_tile_too_many_cells, before any media job is accepted.
The count follows from the selector you chose: the length of at[], the sum over ranges[], the number of every steps in start/end, or the frames value. The rules below come from the Remix media docs and the request schema on origin/main, read 2026-10-11. The surface is flag-gated, so check the last section before you build on it.
How each selector is counted
tile takes exactly one selector family: at[], around, ranges[], or start/end. Sending two returns remix_tile_selector_conflict. Inside start/end you also choose every (seconds) or frames, not both.
at[]: one cell per listed time. The field itself allows 1 to 96 entries.start/endwithevery: samples start atstartand step byevery, keeping only times belowend. The count is the ceiling of (end - start) / every. The smallest allowedeveryis 0.04 s.start/endwithframes: evenly spaced midpoints, 2 to 96 of them.start/endwith neither: about 1.5 cells per second, never fewer than 4 and never more than 9.ranges[]: up to 24 ranges. Each range has its owneveryorframes, and the cells of all ranges are added together before the 96 check.
Worked examples
The table applies those rules to a 300-second reference, the longest clip the probe verb accepts. Every count is the formula above, not a measurement of a real job.
| Request | Cells | Result |
|---|---|---|
| start 0, end 12, every 0.5 | 24 | Accepted |
| start 0, end 60, every 1 | 60 | Accepted |
| start 0, end 60, every 0.5 | 120 | Refused: remix_tile_too_many_cells |
| start 0, end 300, every 3 | 100 | Refused: remix_tile_too_many_cells |
| start 0, end 300, every 3.2 | 94 | Accepted |
| start 0, end 12, no every or frames | 9 (1.5 x 12 = 18, capped at 9) | Accepted |
| start 0, end 2, no every or frames | 4 (1.5 x 2 = 3, raised to 4) | Accepted |
| two ranges, frames 48 each | 96 | Accepted |
| three ranges, frames 40 each | 120 | Refused: remix_tile_too_many_cells |
Three ways out of the refusal
The docs name the first two fixes: increase every, decrease frames, or split ranges[]. In practice the choice depends on what you are looking for.
- Raise
everywhen you need an overview. A 300-second ad at one cell every 3.2 seconds fits in one call with 94 cells. - Narrow the span when you need detail. Use
boundariesfirst to find the cut candidates, then tile only the stretch around one candidate at a smallevery. - Make two calls when you need both. Each call is its own job with its own pages, and the 96 limit applies per call, not per understanding.
Frames that skip the count
every_frame: true asks for every native frame of one stretch instead of sampled times. The admission check counts it as zero cells, and the docs limit it to a stretch of at most 4 seconds. The contract also caps it at 120 frames, which is 4 seconds of 30 fps video. Use it to look at one cut or one product reveal, not for a survey.
Pages are a second limit. The contract allows at most 40 pages per call, and the agent host attaches the first 6 pages inline as images. The cell size runs from 80 to 1080 pixels with a default of 480, so a smaller cell packs more cells on a page.
Where this runs
The docs state that Sume lists the remix media routes and the sume_* tools only where SUME_COM_REMIX_MEDIA_ENABLED permits them: development has it on, and production is opt-in. A production key may therefore not see POST /v1/remix-media/tile yet.
For a reference clip you only need to read once, Reference ingest is the single-call alternative, and the post on finding the frame where a phrase is spoken shows the around selector, which resolves to a time range from the transcript.
Sources
Related posts
More in Media tools
- Remix tile accepts a reference ingest id; other verbs do not
Use a finished reference ingest id as understanding_id for remix tile, including around without a transcript job. Boundaries and cut still need a probe.
- Which Sume media routes need a flag, and which are on prod?
Remix media, reference ingest and the trending-videos rebuild are flag-gated; video inspect, frames, trim, detach, filter and timeline are on dest and prod.
- How to assemble a long-form video with the Timeline 1.0 API
Timeline 1.0 renders one audio spine plus 1 to 200 ordered video slots into one MP4. Every URL must be Sume-hosted; the plan preflight is unbilled.
- How to burn captions onto a video with the Sume API
Send a public HTTPS video URL to POST /v1/video-captions and get a job-backed captioned video, timed by speech-to-text or by text you supply.
Written by Sume