EasyRouterEasyRouter
Quick StartAPI DocsConnect Agent Tools
AI Model APIChatNative OpenAI Format

ChatCompletions Format

Creates model responses based on chat history. Supports streaming and non-streaming responses.

Compatible with OpenAI Chat Completions API.

POST
/v1/chat/completions

Authorization

BearerAuth

AuthorizationBearer <token>

Authenticate using a Bearer Token. Format: Authorization: Bearer sk-xxxxxx

In: header

Request Body

application/json

model*string

Model ID

messages*

List of conversation messages

temperature?number

Sampling temperature

Default1
Range0 <= value <= 2
top_p?number

Nucleus sampling parameter

Default1
Range0 <= value <= 1
n?integer

Number of completions to generate

Default1
Range1 <= value
stream?boolean

Whether to stream the response

Defaultfalse
stream_options?
stop?string

Stop sequences. Can also be an array of strings.

max_tokens?integer

Maximum number of tokens to generate

max_completion_tokens?integer

Maximum completion tokens

presence_penalty?number
Default0
Range-2 <= value <= 2
frequency_penalty?number
Default0
Range-2 <= value <= 2
logit_bias?
user?string
tools?
tool_choice?string

Tool selection mode. Can also be an object to specify a particular function.

Value in"none" | "auto" | "required"
response_format?
seed?integer
reasoning_effort?string

Reasoning effort (for models that support reasoning)

Value in"low" | "medium" | "high"
modalities?array<string>
audio?

Response Body

application/json

application/json

application/json

curl -X POST "https://easyrouter.io/v1/chat/completions" \  -H "Content-Type: application/json" \  -d '{    "model": "gpt-5.4-nano",    "messages": [      {        "role": "user",        "content": "Hello"      }    ]  }'
{
  "id": "string",
  "object": "chat.completion",
  "created": 0,
  "model": "string",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "system",
        "content": "string",
        "name": "string",
        "tool_calls": [
          {
            "id": "string",
            "type": "string",
            "function": {
              "name": "string",
              "arguments": "string"
            }
          }
        ],
        "tool_call_id": "string",
        "reasoning_content": "string"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 0,
    "completion_tokens": 0,
    "total_tokens": 0,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    }
  },
  "system_fingerprint": "string"
}
{
  "error": {
    "message": "string",
    "type": "string",
    "param": "string",
    "code": "string"
  }
}
{
  "error": {
    "message": "string",
    "type": "string",
    "param": "string",
    "code": "string"
  }
}