Model discovery is authenticated when API authentication is enabled, but these read-only endpoints do not consume inference request or token quotas.
List available models
Model fields
agents.total_capacity is declared capacity, not currently free capacity. It includes registered agents even when they are unhealthy.
Use the routing table when you need live load, active requests, available capacity, latency, hardware, or engine metrics.
Filter the list
List model IDs:Get one model
/v1/models/:
Agent detail fields
Check the health of every agent serving a model:
Capabilities
Each agent registers one capability.Display metadata
Agents can add a display name and description:Per-key model filtering
GET /v1/models returns the catalog visible to the calling API key.
Hivenet Router determines that catalog in this order:
- When the key has
quota.per_model, only models declared in that map are visible. - Otherwise, when the key has a non-empty
allowed_modelslist, only those models are visible. - When neither restriction exists, the key sees the full public catalog.
GET /v1/models.
This filtering keeps discovery aligned with the models the key can invoke.
Restricted models return 404
When a caller requests detail for a model outside its allowed set, Hivenet Router returns HTTP404, not 403.
Use the OpenAI Python client
The OpenAI Python client can list the models exposed by Hivenet Router:Operator view
The public discovery endpoints may be filtered by the caller’s API key. Operators can use the admin equivalents to see every registered model:Empty and unhealthy catalogs
When no agents are registered, the list endpoint returns:Error responses
Errors use the standard envelope:
Troubleshooting
A model is missing from the list
Check the public view with the intended API key:quota.per_modelallowed_models- which API key is being sent
- whether inference and admin authentication use different keys
The model is listed but cannot serve requests
Check:- all agents are unhealthy
- all healthy agents are at capacity
- a routing policy excludes the agents
- the requested capability does not match
- the API key cannot invoke the model
The capability is wrong
Check whether agents sharing the model name were started with different capability values. Use separate model names for language-model, embedding, and reranking registrations.Display metadata is inconsistent
Make sure every agent serving the model uses the same:Capacity looks higher than available capacity
total_capacity is the sum of the agents’ declared maximum capacity.
It does not subtract:
- active requests
- unhealthy-agent capacity
- policy exclusions
- backend queue pressure
/admin/routing-table for live state.
Next steps
Admin endpoints
Inspect the complete operator catalog, routing table, storage, policies, and API keys.
API keys
Control which models each client can discover and invoke.
Routing concepts
Understand how matching agents are filtered and selected for inference.

