Unified gateway
One CXOPIN API key for every connected model.
Customers send Authorization: Bearer with a CXOPIN API key. The gateway resolves the key, project, permission, and requested model. Provider credentials never appear in the response.
Operational in this stage
- GET /v1/models lists verified catalog rows.
- POST /v1/chat/completions authenticates the key and resolves an exact model. Unconnected models return provider_not_connected. No completion text is generated.
- GET /v1/api-key reports the key prefix, project, and permissions.
Prepared, not mounted
- POST /v1/responses and POST /v1/embeddings
- POST /v1/images/generations
- POST /v1/audio/speech and POST /v1/audio/transcriptions
- POST /v1/videos and GET /v1/videos/{job_id}
Local example
curl http://127.0.0.1:3010/v1/chat/completions \
-H "Authorization: Bearer $CXOPIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-astra","messages":[{"role":"user","content":"Hello"}]}'Python and JavaScript use the same CXOPIN_API_KEY variable. The model id stays the one the customer requested. This stage does not substitute another model.