List the models Comfy Router can run.
Comfy Router’s model catalog - one page of the canonical model IDs that POST /v2/models/{provider}/{model} accepts. An SDK calls this on cold start to discover what is runnable, and the model_not_found suggestions come from the same catalog, so an ID listed here that then 404s on invocation would be worse than either failure alone. That agreement is structural rather than a promise: an entry’s provider and model are the two path segments of the invocation route and reference the same schema components that route’s path parameters do, and id is those two segments joined by /.
Authorizations
Bearer token authentication. Normally a Firebase or Cloud JWT. A 'comfyui-' prefixed API key is also accepted in this header: the prefix classifies the value as an API key and it is validated exactly as if it had been sent in X-API-Key.
Query Parameters
Opaque pagination cursor. Pass a previous page's next_cursor to fetch the next page; omit it for the first page. See RouterPageCursor for why the value is opaque and why this route paginates by cursor rather than by offset.
An opaque cursor into a Router list. It is produced by the server and only ever round-tripped: it is not an offset, not a model ID, not ordered, and not stable across catalog rebuilds, so parsing one, incrementing one, or persisting one beyond the walk it came from are all outside the contract. Cursor rather than offset because the catalog is a moving list - an offset walk silently skips or repeats entries when entries are added or removed mid-walk, and a caller cannot tell that it happened.
1 - 512^[A-Za-z0-9._~+/=-]+$"q7Fm2xTn9pLd4RsV"
Number of models to return in one page. Values above the declared maximum are outside the contract, but this route does not reject them: it serves the maximum instead, and the page size actually served is echoed back as limit on the response, so a clamp is always detectable by the caller. Treat the maximum as the real page stride - a client that asks for more and assumes it received more will miss rows. 0 and negative values are also accepted and select the default, which is why no minimum is declared: sub-1 is meaningful here, not invalid.
x <= 100Response
OK - one page of the model catalog.
One page of the Router model catalog.
The models on this page, at most limit of them.
Whether another page exists beyond this one. Keep walking while this is true; do not infer the end of the catalog from a short or empty data.
The page size actually served. A requested limit above the maximum is clamped down to the maximum rather than rejected, so this can be smaller than the value asked for - paginate with this number, not with the one you sent, or you will assume rows you never received.
1 <= x <= 10020
An opaque cursor into a Router list. It is produced by the server and only ever round-tripped: it is not an offset, not a model ID, not ordered, and not stable across catalog rebuilds, so parsing one, incrementing one, or persisting one beyond the walk it came from are all outside the contract. Cursor rather than offset because the catalog is a moving list - an offset walk silently skips or repeats entries when entries are added or removed mid-walk, and a caller cannot tell that it happened.
1 - 512^[A-Za-z0-9._~+/=-]+$"q7Fm2xTn9pLd4RsV"