# Models

Model listing and metadata endpoints.

## List available models

> List models available to the authenticated project. When filtered by container, returns attached container models and may also include the container's effective default model if that default is globally scoped.

```json
{"openapi":"3.1.0","info":{"title":"Maniac Inference Gateway API","version":"1.0.0"},"tags":[{"name":"Models","description":"Model listing and metadata endpoints."}],"servers":[{"url":"https://platform.maniac.ai","description":"The Maniac API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key in Authorization header using Bearer <token>."}},"schemas":{"ModelListResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Object type identifier.","default":"list"},"data":{"items":{"$ref":"#/components/schemas/ModelListItem"},"type":"array","title":"Data","description":"Returned items."},"total":{"type":"integer","minimum":0,"title":"Total","description":"Total number of items available for this resource."}},"additionalProperties":false,"type":"object","required":["data","total"],"title":"ModelListResponse"},"ModelListItem":{"properties":{"object":{"type":"string","const":"model","title":"Object","description":"Object type.","default":"model"},"id":{"type":"string","title":"Id","description":"Model id."},"slug":{"type":"string","title":"Slug","description":"Model slug."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Display name."},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created","description":"Unix timestamp of when the model was added."},"context_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Context Length","description":"Maximum context length in tokens."},"pricing":{"$ref":"#/components/schemas/Pricing","description":"Pricing information."},"supported_parameters":{"items":{"type":"string"},"type":"array","title":"Supported Parameters","description":"Supported inference parameters."},"supported_apis":{"items":{"type":"string","enum":["chat.completions","completions","responses","embeddings","rerank","containers","models","datasets","evaluation","optimization","project.keys"]},"type":"array","title":"Supported Apis","description":"Supported APIs."},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider."},"desktop_picker_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Desktop Picker Rank","description":"Optional rank for desktop picker recommendations; lower values sort first."}},"type":"object","required":["id","slug","pricing","supported_parameters","supported_apis"],"title":"ModelListItem"},"Pricing":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"Price per prompt token or unit."},"completion":{"type":"string","title":"Completion","description":"Price per completion token or unit."},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image","description":"Price per image input."},"request":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request","description":"Price per request."},"discount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount","description":"Discount rate."},"web_search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web Search","description":"Price per web search call."},"image_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Output","description":"Price per image output."},"input_cache_read":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Cache Read","description":"Price per cache read."},"internal_reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Reasoning","description":"Price for internal reasoning tokens."}},"additionalProperties":true,"type":"object","required":["prompt","completion"],"title":"Pricing"},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ManiacError","description":"Error payload."}},"additionalProperties":false,"type":"object","required":["error"],"title":"ErrorResponse","description":"Response body for errors."},"ManiacError":{"properties":{"code":{"type":"string","title":"Code","description":"Machine-readable error code."},"message":{"type":"string","title":"Message","description":"Human-readable error message."},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details","description":"Additional error details."}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"ManiacError","description":"Standard Maniac API error envelope.\n\nThis matches the shape already used by v2 auth (`detail={\"error\": {...}}`)."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/v1/models":{"get":{"tags":["Models"],"summary":"List available models","description":"List models available to the authenticated project. When filtered by container, returns attached container models and may also include the container's effective default model if that default is globally scoped.","operationId":"models_list","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max number of models.","default":500,"title":"Limit"},"description":"Max number of models."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of models to skip.","default":0,"title":"Offset"},"description":"Number of models to skip."},{"name":"container","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Container ID or label to filter models by. Container-scoped results include attached models and may also include the effective default model when it is globally scoped.","title":"Container"},"description":"Container ID or label to filter models by. Container-scoped results include attached models and may also include the effective default model when it is globally scoped."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Too Many Requests","headers":{"X-RateLimit-Limit":{"description":"Request limit per window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in current window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the rate limit resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Upstream Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
