Skip to main content
POST
/
openai
/
v1
/
chat
/
completions
Create chat completion (OpenAI format)
curl --request POST \
  --url http://localhost:8080/openai/v1/chat/completions \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "name": "<string>",
      "content": "<string>",
      "tool_call_id": "<string>",
      "refusal": "<string>",
      "reasoning": "<string>",
      "annotations": [
        {
          "type": "<string>",
          "url_citation": {
            "start_index": 123,
            "end_index": 123,
            "title": "<string>",
            "url": "<string>",
            "sources": {},
            "type": "<string>"
          }
        }
      ],
      "tool_calls": [
        {
          "function": {
            "name": "<string>",
            "arguments": "<string>"
          },
          "index": 123,
          "type": "<string>",
          "id": "<string>"
        }
      ]
    }
  ],
  "stream": true,
  "max_tokens": 123,
  "max_completion_tokens": 123,
  "temperature": 1,
  "top_p": 123,
  "frequency_penalty": 0,
  "presence_penalty": 0,
  "logit_bias": {},
  "logprobs": true,
  "top_logprobs": 123,
  "n": 123,
  "stop": "<string>",
  "seed": 123,
  "user": "<string>",
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "<string>",
        "description": "<string>",
        "parameters": {
          "type": "<string>",
          "description": "<string>",
          "required": [
            "<string>"
          ],
          "properties": {},
          "enum": [
            "<string>"
          ],
          "additionalProperties": true
        },
        "strict": true
      },
      "custom": {
        "format": {
          "type": "<string>",
          "grammar": {
            "definition": "<string>",
            "syntax": "lark"
          }
        }
      },
      "cache_control": {
        "type": "ephemeral",
        "ttl": "<string>"
      }
    }
  ],
  "tool_choice": "none",
  "parallel_tool_calls": true,
  "response_format": {},
  "reasoning_effort": "none",
  "service_tier": "<string>",
  "stream_options": {
    "include_obfuscation": true,
    "include_usage": true
  },
  "fallbacks": [
    "<string>"
  ]
}
'
{
  "id": "<string>",
  "choices": [
    {
      "index": 123,
      "finish_reason": "<string>",
      "log_probs": {
        "content": [
          {
            "bytes": [
              123
            ],
            "logprob": 123,
            "token": "<string>",
            "top_logprobs": [
              {
                "bytes": [
                  123
                ],
                "logprob": 123,
                "token": "<string>"
              }
            ]
          }
        ],
        "refusal": [
          {
            "bytes": [
              123
            ],
            "logprob": 123,
            "token": "<string>"
          }
        ],
        "text_offset": [
          123
        ],
        "token_logprobs": [
          123
        ],
        "tokens": [
          "<string>"
        ],
        "top_logprobs": [
          {}
        ]
      },
      "text": "<string>",
      "message": {
        "role": "assistant",
        "name": "<string>",
        "content": "<string>",
        "tool_call_id": "<string>",
        "refusal": "<string>",
        "audio": {
          "id": "<string>",
          "data": "<string>",
          "expires_at": 123,
          "transcript": "<string>"
        },
        "reasoning": "<string>",
        "reasoning_details": [
          {
            "id": "<string>",
            "index": 123,
            "type": "reasoning.summary",
            "summary": "<string>",
            "text": "<string>",
            "signature": "<string>",
            "data": "<string>"
          }
        ],
        "annotations": [
          {
            "type": "<string>",
            "url_citation": {
              "start_index": 123,
              "end_index": 123,
              "title": "<string>",
              "url": "<string>",
              "sources": {},
              "type": "<string>"
            }
          }
        ],
        "tool_calls": [
          {
            "function": {
              "name": "<string>",
              "arguments": "<string>"
            },
            "index": 123,
            "type": "<string>",
            "id": "<string>"
          }
        ]
      },
      "delta": {
        "role": "<string>",
        "content": "<string>",
        "refusal": "<string>",
        "audio": {
          "id": "<string>",
          "data": "<string>",
          "expires_at": 123,
          "transcript": "<string>"
        },
        "reasoning": "<string>",
        "reasoning_details": [
          {
            "id": "<string>",
            "index": 123,
            "type": "reasoning.summary",
            "summary": "<string>",
            "text": "<string>",
            "signature": "<string>",
            "data": "<string>"
          }
        ],
        "tool_calls": [
          {
            "function": {
              "name": "<string>",
              "arguments": "<string>"
            },
            "index": 123,
            "type": "<string>",
            "id": "<string>"
          }
        ]
      }
    }
  ],
  "created": 123,
  "model": "<string>",
  "object": "<string>",
  "service_tier": "<string>",
  "system_fingerprint": "<string>",
  "usage": {
    "prompt_tokens": 123,
    "prompt_tokens_details": {
      "text_tokens": 123,
      "audio_tokens": 123,
      "image_tokens": 123,
      "cached_tokens": 123
    },
    "completion_tokens": 123,
    "completion_tokens_details": {
      "text_tokens": 123,
      "accepted_prediction_tokens": 123,
      "audio_tokens": 123,
      "citation_tokens": 123,
      "num_search_queries": 123,
      "reasoning_tokens": 123,
      "image_tokens": 123,
      "rejected_prediction_tokens": 123,
      "cached_tokens": 123
    },
    "total_tokens": 123,
    "cost": {
      "input_tokens_cost": 123,
      "output_tokens_cost": 123,
      "request_cost": 123,
      "total_cost": 123
    }
  },
  "extra_fields": {
    "request_type": "<string>",
    "provider": "openai",
    "model_requested": "<string>",
    "model_deployment": "<string>",
    "latency": 123,
    "chunk_index": 123,
    "raw_request": {},
    "raw_response": {},
    "cache_debug": {
      "cache_hit": true,
      "cache_id": "<string>",
      "hit_type": "<string>",
      "provider_used": "<string>",
      "model_used": "<string>",
      "input_tokens": 123,
      "threshold": 123,
      "similarity": 123
    }
  },
  "search_results": [
    {
      "title": "<string>",
      "url": "<string>",
      "date": "<string>",
      "last_updated": "<string>",
      "snippet": "<string>",
      "source": "<string>"
    }
  ],
  "videos": [
    {
      "url": "<string>",
      "thumbnail_url": "<string>",
      "thumbnail_width": 123,
      "thumbnail_height": 123,
      "duration": 123
    }
  ],
  "citations": [
    "<string>"
  ]
}

Body

application/json
model
string
required

Model identifier (e.g., gpt-4, gpt-3.5-turbo)

Example:

"gpt-4"

messages
object[]
required

List of messages in the conversation

stream
boolean

Whether to stream the response

max_tokens
integer

Maximum tokens to generate (legacy, use max_completion_tokens)

max_completion_tokens
integer

Maximum tokens to generate

temperature
number
Required range: 0 <= x <= 2
top_p
number
frequency_penalty
number
Required range: -2 <= x <= 2
presence_penalty
number
Required range: -2 <= x <= 2
logit_bias
object
logprobs
boolean
top_logprobs
integer
n
integer
stop
seed
integer
user
string
tools
object[]
tool_choice
Available options:
none,
auto,
required
parallel_tool_calls
boolean
response_format
object

Format for the response

reasoning_effort
enum<string>

OpenAI reasoning effort level

Available options:
none,
minimal,
low,
medium,
high,
xhigh
service_tier
string
stream_options
object
fallbacks
string[]

Fallback models

Response

Successful response

id
string
choices
object[]
created
integer
model
string
object
string
service_tier
string
system_fingerprint
string
usage
object

Token usage information

extra_fields
object

Additional fields included in responses

search_results
object[]
videos
object[]
citations
string[]