# Chat Completion

## Create Chat Completion

> Create a synchronous or streaming chat completion.

```json
{"openapi":"3.1.0","info":{"title":"AFM API - External API","version":"0.1.0"},"paths":{"/api/v1/chat/completions":{"post":{"tags":["Completions"],"summary":"Create Chat Completion","description":"Create a synchronous or streaming chat completion.","operationId":"create_chat_completion_api_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionResponse"}}}},"400":{"description":"Invalid Format","content":{"application/json":{}}},"401":{"description":"Authentication Fails","content":{"application/json":{}}},"402":{"description":"Insufficient Balance","content":{"application/json":{}}},"422":{"description":"Invalid Parameters","content":{"application/json":{}}},"429":{"description":"Rate Limit Reached","content":{"application/json":{}}},"500":{"description":"Server Error","content":{"application/json":{}}},"503":{"description":"Server Overloaded","content":{"application/json":{}}}}}}},"components":{"schemas":{"ChatCompletionRequest":{"properties":{"model":{"type":"string","title":"Model"},"messages":{"items":{"$ref":"#/components/schemas/Message-Input"},"type":"array","title":"Messages"},"max_tokens":{"type":"integer"},"max_completion_tokens":{"type":"integer"},"temperature":{"type":"number","maximum":2,"minimum":0},"top_p":{"type":"number","maximum":1,"minimum":0},"n":{"type":"integer","minimum":1},"stream":{"type":"boolean"},"stop":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop"},"presence_penalty":{"type":"number","maximum":2,"minimum":-2},"frequency_penalty":{"type":"number","maximum":2,"minimum":-2},"logit_bias":{"additionalProperties":{"type":"integer"},"type":"object"},"seed":{"type":"integer"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array"},"tool_choice":{"anyOf":[{"type":"string","enum":["none","auto","required"]},{"$ref":"#/components/schemas/ToolChoiceObject"},{"type":"null"}],"title":"Tool Choice"},"response_format":{"$ref":"#/components/schemas/ResponseFormat"},"logprobs":{"type":"boolean"},"top_logprobs":{"type":"integer","maximum":20,"minimum":0},"reasoning_effort":{"type":"string","enum":["minimal","low","medium","high"]},"user":{"type":"string"}},"additionalProperties":false,"type":"object","required":["model","messages"],"title":"ChatCompletionRequest"},"Message-Input":{"properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"title":"Role"},"content":{"type":"string"},"name":{"type":"string"},"tool_calls":{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},"tool_call_id":{"type":"string"},"reasoning":{"type":"string"}},"type":"object","required":["role"],"title":"Message"},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/ToolCallFunction"}},"type":"object","required":["id","function"],"title":"ToolCall"},"ToolCallFunction":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"type":"object","required":["name","arguments"],"title":"ToolCallFunction"},"Tool":{"properties":{"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/ToolFunction"}},"type":"object","required":["function"],"title":"Tool"},"ToolFunction":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string"},"parameters":{"$ref":"#/components/schemas/FunctionParameters"}},"type":"object","required":["name"],"title":"ToolFunction"},"FunctionParameters":{"properties":{"type":{"type":"string","title":"Type","default":"object"},"properties":{"additionalProperties":true,"type":"object","title":"Properties","default":{}},"required":{"items":{"type":"string"},"type":"array"}},"type":"object","title":"FunctionParameters"},"ToolChoiceObject":{"properties":{"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/ToolChoiceFunction"}},"type":"object","required":["function"],"title":"ToolChoiceObject"},"ToolChoiceFunction":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"ToolChoiceFunction"},"ResponseFormat":{"properties":{"type":{"type":"string","enum":["text","json_object","json_schema"],"title":"Type","default":"text"},"json_schema":{"$ref":"#/components/schemas/JsonSchema"}},"type":"object","title":"ResponseFormat"},"JsonSchema":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string"},"schema":{"additionalProperties":true,"type":"object","title":"Schema"},"strict":{"type":"boolean"}},"type":"object","required":["name","schema"],"title":"JsonSchema"},"ChatCompletionResponse":{"properties":{"id":{"type":"string","title":"Id"},"object":{"type":"string","title":"Object","default":"chat.completion"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"service_tier":{"type":"string"},"system_fingerprint":{"type":"string"},"prompt_token_ids":{"items":{"type":"integer"},"type":"array"},"prompt":{"items":{},"type":"array","title":"Prompt"},"choices":{"items":{"$ref":"#/components/schemas/Choice"},"type":"array","title":"Choices"},"usage":{"$ref":"#/components/schemas/Usage"}},"type":"object","required":["id","created","model","choices"],"title":"ChatCompletionResponse"},"Choice":{"properties":{"index":{"type":"integer","title":"Index"},"message":{"$ref":"#/components/schemas/Message-Output"},"finish_reason":{"type":"string"},"logprobs":{},"seed":{"type":"integer"},"token_ids":{"items":{"type":"integer"},"type":"array"}},"type":"object","required":["index","message"],"title":"Choice"},"Message-Output":{"properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"title":"Role"},"content":{"type":"string"},"name":{"type":"string"},"tool_calls":{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},"tool_call_id":{"type":"string"},"reasoning":{"type":"string"}},"type":"object","required":["role"],"title":"Message"},"Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"completion_tokens":{"type":"integer","title":"Completion Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"}},"type":"object","required":["prompt_tokens","completion_tokens","total_tokens"],"title":"Usage"}}}}
```
