Skip to main content
GET
Read one partner model's catalog entry by canonical model ID.

Authorizations

Authorization
string
header
required

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.

Headers

If-None-Match
string

The ETag a caller holds from an earlier 200. When it matches the current entry (RFC 9110 weak comparison; * matches any current entry) the answer is a bodyless 304 carrying the same ETag, otherwise the full entry.

Path Parameters

provider
string
required

Lowercase provider segment of the canonical {provider}/{model} model ID - the partner whose model is being run. Lowercase provider segment of the canonical {provider}/{model} model ID - the partner whose model is being addressed. The invocation route's provider path parameter and a catalog entry's provider field both reference this one schema, which is what keeps the listed IDs and the accepted IDs from drifting apart.

Maximum string length: 64
Pattern: ^[a-z0-9]+([._-][a-z0-9]+)*$
Example:

"bfl"

model
string
required

Lowercase model segment of the canonical {provider}/{model} model ID - the model to run within that provider. Lowercase model segment of the canonical {provider}/{model} model ID - the model to run within that provider. Shared by the invocation route's model path parameter and a catalog entry's model field, for the same no-drift reason as RouterProviderSegment.

Maximum string length: 128
Pattern: ^[a-z0-9]+([._-][a-z0-9]+)*$
Example:

"flux-2-pro"

Response

OK - the model's catalog entry.

Per-model detail for one Comfy Router model: everything the catalog listing reports for it, plus the per-model fields that only the single-model route carries.

id
string
required

A canonical Comfy Router model ID, {provider}/{model} - exactly the value that addresses the model on POST /v2/models/{provider}/{model}, so a caller can interpolate it into that path without re-deriving it from anything. Its pattern is RouterProviderSegment and RouterModelSegment joined by a single /, and maxLength is their sum plus that separator.

Maximum string length: 193
Pattern: ^[a-z0-9]+([._-][a-z0-9]+)*/[a-z0-9]+([._-][a-z0-9]+)*$
Example:

"bfl/flux-2-pro"

provider
string
required

Lowercase provider segment of the canonical {provider}/{model} model ID - the partner whose model is being addressed. The invocation route's provider path parameter and a catalog entry's provider field both reference this one schema, which is what keeps the listed IDs and the accepted IDs from drifting apart.

Maximum string length: 64
Pattern: ^[a-z0-9]+([._-][a-z0-9]+)*$
Example:

"bfl"

model
string
required

Lowercase model segment of the canonical {provider}/{model} model ID - the model to run within that provider. Shared by the invocation route's model path parameter and a catalog entry's model field, for the same no-drift reason as RouterProviderSegment.

Maximum string length: 128
Pattern: ^[a-z0-9]+([._-][a-z0-9]+)*$
Example:

"flux-2-pro"

billing
object
required

Per-model billing facts a caller needs before invoking - not prices. Usage and cost figures never appear here.

schema_etag
string

The current strong ETag of this model's GET /v2/models/{provider}/{model}/openapi.json document. Send it as If-None-Match on that read to get a 304 while the schema is unchanged, or compare it with the value seen last time to learn which models' schemas changed without fetching every document. Absent whenever that read would not answer 200 for this caller at this moment: the schema service is not available, the model's document cannot be rendered, or the model stopped being available to this caller while the response was being built. An absent tag is not a schema change; re-read the model's document to learn its current tag.

Example:

"\"9f2c1e0b7a4d3c6e8f5a2b1d0c9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e\""

input_schema_url
string<uri>

Pointer to this model's input schema document - the description of the body POST /v2/models/{provider}/{model} accepts for this model. Only the pointer is part of this contract: the document it addresses is authored separately. Absent when no schema has been authored for the model.

Maximum string length: 2048
Pattern: ^https://