Skip to main content

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

OperationNon-StreamingStreamingEndpoint
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:
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nebius/model-name",
    "messages": [...],
    "ai_project_id": "project-123"
  }'
The ai_project_id is appended as a query parameter to the request URL.

Filtered Parameters

Removed for Nebius compatibility:
  • prompt_cache_key - Not supported
  • verbosity - Anthropic-specific
  • store - Not supported
  • service_tier - Not supported
Nebius supports all standard OpenAI message types, tools, responses, and streaming formats. For details on message handling, tool conversion, responses, and streaming, refer to OpenAI Chat Completions.

2. Responses API

Converted internally to Chat Completions:
ResponsesRequest → ChatRequest → ChatCompletion → ResponsesResponse
Same parameter support and message handling as Chat Completions. Supports ai_project_id via extra_params.

3. Text Completions

Nebius supports legacy text completion format:
ParameterMapping
promptDirect pass-through
max_tokensmax_tokens
temperature, top_pDirect pass-through
stopStop sequences
frequency_penalty, presence_penaltyPenalty parameters

4. Embeddings

Nebius supports text embeddings:
ParameterNotes
inputText or array of texts
modelEmbedding model name
encoding_format”float” or “base64”
dimensionsCustom output dimensions (optional)
Response returns embedding vectors with usage information.

5. Image Generation

Request Parameters
ParameterTypeRequiredNotes
modelstringModel identifier
promptstringText description of the image to generate
sizestringImage size in WxH format (e.g., "1024x1024"). Converted to separate width and height integers
output_formatstringOutput format: "png", "jpeg", "webp". Note: "jpeg" is converted to "jpg"
response_formatstringResponse format: "url" or "b64_json"
seedintSeed for reproducible generation
negative_promptstringNegative prompt
num_inference_stepsintNumber of inference steps
extra_paramsobjectNebius-specific parameters (see below)
Extra Parameters (via extra_params)
ParameterTypeNotes
guidance_scaleintGuidance scale (0-100)
ai_project_idstringNebius project ID (added as query parameter)

Request Conversion
  • Model & Prompt: bifrostReq.Modelreq.Model (pointer), bifrostReq.Input.Promptreq.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_formatreq.ResponseExtension
    • Special conversion: "jpeg""jpg" (Nebius uses "jpg" not "jpeg")
  • Response Format: params.response_formatreq.ResponseFormat (passed directly: "url" or "b64_json")
  • Seed & Negative Prompt: params.seedreq.Seed, params.negative_promptreq.NegativePrompt (passed directly)
  • Num Inference Steps: params.num_inference_stepsreq.NumInferenceSteps (passed directly)
  • Extra Parameters:
    • guidance_scalereq.GuidanceScale (int pointer)
    • ai_project_id → Added as query parameter ?ai_project_id={value} to the request URL
Response Conversion
  • Image Data: Each item in response.data[]ImageData with:
    • url: From data[].url
    • b64_json: From data[].b64_json
    • revised_prompt: From data[].revised_prompt
    • index: Sequential index (0, 1, 2, …)
  • ID: response.idresponse.ID
  • Provider: Set to nebius in ExtraFields
Endpoint: /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

FeatureReason
Speech/TTSNot offered by Nebius API
Transcription/STTNot offered by Nebius API
Batch OperationsNot offered by Nebius API
File ManagementNot offered by Nebius API

Caveats

Severity: Medium Behavior: Cache control directives are removed from messages Impact: Prompt caching features don’t work Code: Stripped during JSON marshaling
Severity: Low Behavior: OpenAI-specific fields filtered out Impact: prompt_cache_key, verbosity, store removed Code: filterOpenAISpecificParameters
Severity: Low Behavior: User field > 64 characters silently dropped Impact: Longer user identifiers are lost Code: SanitizeUserField enforces 64-char max