{provider}/{model}. Use the catalog to find that ID, then call POST /v2/models/{provider}/{model}.
Discover the catalog
List models with the same API key used for generation:id in the invocation path. The billing object contains billing facts, not a price. Read policy-refusal billing before relying on it.
Pagination
- When
has_moreistrue, pass the returnednext_cursorascursor. Stop whenhas_moreisfalse, even if an earlier page was shorter than requested. - Treat cursors as opaque. URL-encode the value, for example with cURL
--get --data-urlencode "cursor=$NEXT_CURSOR"; do not calculate offsets or modify the cursor. limitdefaults to 20 and is capped at 100. Values above the cap are clamped; zero and negative values select the default. The response reports the limit actually used.- An invalid cursor returns
400/invalid_input. It does not silently restart the list. - A cursor can remain valid across catalog updates, but traversal is not a snapshot: a model added before your current position may not appear in that walk.
503 / service_unavailable is temporary. Retry with backoff; do not treat it as an empty catalog. SDK run methods call the selected model directly.
Read one model
Fetch a catalog entry directly when you know the model ID:Next
- Schemas and results: read a model’s input and output schema before calling it.
- All models: browse the catalog with a working request for each model.