Model catalog
OpenAI-compat GET /v1/models with a modality field that names text / image / video.
Endpoint
GET https://api.genie.tech/v1/models
Authorization: Bearer sk-genie-{your-key}
Content-Type: application/jsonTry it
Try it nowList available models
Sign in to tryGET /api/v1/models
Response
{
"object": "list",
"data": [
{ "id": "qwen3:0.6b", "object": "model", "modality": "text", "owned_by": "genie" },
{ "id": "qwen3:14b", "object": "model", "modality": "text", "owned_by": "genie" },
{ "id": "qwen3-coder:30b", "object": "model", "modality": "text", "owned_by": "genie" },
{ "id": "flux-schnell", "object": "model", "modality": "image", "owned_by": "genie" },
{ "id": "sdxl-turbo", "object": "model", "modality": "image", "owned_by": "genie" },
{ "id": "wan-2.1", "object": "model", "modality": "video", "owned_by": "genie" },
{ "id": "ltx-video", "object": "model", "modality": "video", "owned_by": "genie" }
]
}Sources of truth
- Text models = union of
loadedModelsacross online runners that advertisejobType='inference'. Empty if no inference runner is up: listing models nothing serves would mislead. - Image models = curated whitelist matching the
POST /v1/images/generationsZod enum. - Video models = same pattern.
The catalog is non-sensitive but auth-gated so per-org filtering (free-tier model clamps, allowedModels per key) can apply.