Overview
Nebius is an OpenAI-compatible provider offering comprehensive API support. Bifrost delegates to the OpenAI implementation with standard parameter filtering. Key features:- Full OpenAI compatibility - Chat, text completion, embeddings, and responses
- Streaming support - Server-Sent Events with delta-based updates
- AI Project ID - Nebius-specific project identifier support
- Tool calling - Complete function definition and execution
- Parameter filtering - Removes unsupported OpenAI-specific fields
Supported Operations
| Operation | Non-Streaming | Streaming | Endpoint |
|---|---|---|---|
| Chat Completions | ✅ | ✅ | /v1/chat/completions |
| Responses API | ✅ | ✅ | /v1/chat/completions |
| Text Completions | ✅ | ✅ | /v1/completions |
| Embeddings | ✅ | - | /v1/embeddings |
| Image Generation | ✅ | - | /v1/images/generations |
| List Models | ✅ | - | /v1/models |
| Speech (TTS) | ❌ | ❌ | - |
| Transcriptions (STT) | ❌ | ❌ | - |
| Files | ❌ | ❌ | - |
| Batch | ❌ | ❌ | - |
Unsupported Operations (❌): Speech, Transcriptions, Files, and Batch are not supported by the upstream Nebius API. These return
UnsupportedOperationError.1. Chat Completions
Request Parameters
Nebius supports all standard OpenAI chat completion parameters. For full parameter reference and behavior, see OpenAI Chat Completions.Nebius-Specific Parameters
ai_project_id (Optional): Nebius allows specifying a project ID for resource organization:- Gateway
- Go SDK
ai_project_id is appended as a query parameter to the request URL.
Filtered Parameters
Removed for Nebius compatibility:prompt_cache_key- Not supportedverbosity- Anthropic-specificstore- Not supportedservice_tier- Not supported
2. Responses API
Converted internally to Chat Completions:3. Text Completions
Nebius supports legacy text completion format:| Parameter | Mapping |
|---|---|
prompt | Direct pass-through |
max_tokens | max_tokens |
temperature, top_p | Direct pass-through |
stop | Stop sequences |
frequency_penalty, presence_penalty | Penalty parameters |
4. Embeddings
Nebius supports text embeddings:| Parameter | Notes |
|---|---|
input | Text or array of texts |
model | Embedding model name |
encoding_format | ”float” or “base64” |
dimensions | Custom output dimensions (optional) |
5. Image Generation
Request Parameters| Parameter | Type | Required | Notes |
|---|---|---|---|
model | string | ✅ | Model identifier |
prompt | string | ✅ | Text description of the image to generate |
size | string | ❌ | Image size in WxH format (e.g., "1024x1024"). Converted to separate width and height integers |
output_format | string | ❌ | Output format: "png", "jpeg", "webp". Note: "jpeg" is converted to "jpg" |
response_format | string | ❌ | Response format: "url" or "b64_json" |
seed | int | ❌ | Seed for reproducible generation |
negative_prompt | string | ❌ | Negative prompt |
num_inference_steps | int | ❌ | Number of inference steps |
extra_params | object | ❌ | Nebius-specific parameters (see below) |
extra_params)
| Parameter | Type | Notes |
|---|---|---|
guidance_scale | int | Guidance scale (0-100) |
ai_project_id | string | Nebius project ID (added as query parameter) |
Request Conversion
- Model & Prompt:
bifrostReq.Model→req.Model(pointer),bifrostReq.Input.Prompt→req.Prompt(pointer) - Size Conversion:
params.size(WxH format like"1024x1024") is split into:width: Integer extracted from first part (e.g.,1024)height: Integer extracted from second part (e.g.,1024)
- Output Format:
params.output_format→req.ResponseExtension- Special conversion:
"jpeg"→"jpg"(Nebius uses"jpg"not"jpeg")
- Response Format:
params.response_format→req.ResponseFormat(passed directly:"url"or"b64_json") - Seed & Negative Prompt:
params.seed→req.Seed,params.negative_prompt→req.NegativePrompt(passed directly) - Num Inference Steps:
params.num_inference_steps→req.NumInferenceSteps(passed directly) - Extra Parameters:
guidance_scale→req.GuidanceScale(int pointer)ai_project_id→ Added as query parameter?ai_project_id={value}to the request URL
- Image Data: Each item in
response.data[]→ImageDatawith:url: Fromdata[].urlb64_json: Fromdata[].b64_jsonrevised_prompt: Fromdata[].revised_promptindex: Sequential index (0, 1, 2, …)
- ID:
response.id→response.ID - Provider: Set to
nebiusinExtraFields
/v1/images/generations
Streaming: Image generation streaming is not supported by Nebius.
6. List Models
Lists available Nebius models with capabilities and context lengths.Unsupported Features
| Feature | Reason |
|---|---|
| Speech/TTS | Not offered by Nebius API |
| Transcription/STT | Not offered by Nebius API |
| Batch Operations | Not offered by Nebius API |
| File Management | Not offered by Nebius API |
Caveats
Cache Control Stripped
Cache Control Stripped
Severity: Medium
Behavior: Cache control directives are removed from messages
Impact: Prompt caching features don’t work
Code: Stripped during JSON marshaling
Parameter Filtering
Parameter Filtering
Severity: Low
Behavior: OpenAI-specific fields filtered out
Impact: prompt_cache_key, verbosity, store removed
Code: filterOpenAISpecificParameters
User Field Size Limit
User Field Size Limit
Severity: Low
Behavior: User field > 64 characters silently dropped
Impact: Longer user identifiers are lost
Code: SanitizeUserField enforces 64-char max

