Nebius
Route your Nebius API calls through AI SpendOps for automatic usage tracking and cost attribution.
Configuration
| Setting | Value |
|---|---|
| Route | /v1/nebius/* |
| Upstream | https://api.tokenfactory.nebius.com |
| Auth header | Authorization: Bearer ... |
| Streaming usage | Auto-injected (stream_options.include_usage) |
SDK base URL
https://proxy.aispendops.com/v1/nebius/v1
Example
curl https://proxy.aispendops.com/v1/nebius/v1/chat/completions \
-H "Authorization: Bearer your-nebius-key" \
-H "X-ASO-API-Key: aso_k_yourkey.secret" \
-H "Content-Type: application/json" \
-d '{"model":"meta-llama/Llama-3.3-70B-Instruct","messages":[{"role":"user","content":"Hello"}]}'
The Token Factory hostname
Nebius serves its inference API from api.tokenfactory.nebius.com, which is
worth flagging because it does not match the product name most people search
for and it is not the hostname older integration guides use.
You do not need to care about this while you are proxying: the route is
/v1/nebius/* and AI SpendOps resolves the upstream for you. It matters in two
situations.
If you are migrating an existing integration, your SDK may be pinned to an older Nebius base URL. Point it at the AI SpendOps route above and the upstream is handled centrally, which is the general argument for a gateway: a provider changing its hostname becomes a config change in one place instead of a redeploy of every service that calls it.
If you are turning the proxy off, remember the direct base URL is the Token
Factory host, not a nebius.com path you might guess at.
Usage fields
| Field | Description |
|---|---|
prompt_tokens | Input tokens |
completion_tokens | Output tokens |
What AI SpendOps records
| Field | Populated |
|---|---|
cache_read_tokens | No |
cache_write_tokens | No |
reasoning_tokens | Only where the model returns completion_tokens_details |
provider_cost | No. Cost is calculated from token counts and the current Nebius rate card |
Notes
- Nebius hosts open-weight models under Hugging Face style identifiers, so allow-list entries must use the full path such as
meta-llama/Llama-3.3-70B-Instruct. - The proxy injects
stream_options: { include_usage: true }on streaming requests, so streamed calls report real token counts rather than a character-based estimate. See Streaming. - Full field definitions are in the usage event field reference.