{"slug":"x402-orthogonal-com-baseten-v1-chat-completions-3ba2a8","title":"Send a conversation to a model and get a completion back","host":"x402.orthogonal.com","method":"POST","resource":"https://x402.orthogonal.com/baseten/v1/chat/completions","category":"code","description":"Send a conversation to a model and get a completion back. Works exactly like the OpenAI chat completions endpoint. Pass messages and a model slug, get a response with the assistant's reply. Supports streaming for real-time token delivery, tool calling for function execution, structured outputs via r","price_listed":0.005,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":99,"reported_payers_30d":2,"networks":["eip155:143","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"messages":[],"model":"model"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"properties":{"add_generation_prompt":{"description":"If true, applies the model's generation prompt template. Usually needed for chat models.","type":"boolean"},"add_special_tokens":{"description":"If true, adds special tokens (like BOS) to the input. Default: true.","type":"boolean"},"bad":{"description":"Words or phrases the model should avoid generating. Passed as a string.","type":"string"},"bad_token_ids":{"description":"Array of token IDs that should never appear in the output.","type":"array"},"best_of":{"description":"Number of candidate completions to generate server-side, returning the best. Currently only supports 1.","type":"number"},"chat_template":{"description":"Custom Jinja2 template for formatting the conversation. Overrides the model's default chat template.","type":"string"},"chat_template_args":{"description":"Additional arguments passed to the chat template as template variables.","type":"object"},"disaggregated_params":{"description":"Advanced parameters for distributed inference. Only relevant for disaggregated serving configurations.","type":"object"},"documents":{"description":"Array of document objects for retrieval-augmented generation (RAG). Each document has content the model can reference when responding.","type":"array"},"early_stopping":{"description":"In beam search, stop as soon as the required number of complete candidates are found.","type":"boolean"},"echo":{"description":"If true, prepends the last input message to the generated output.","type":"boolean"},"frequency_penalty":{"description":"Penalize tokens based on how often they've appeared so far. Range -2.0 to 2.0. Positive values reduce repetition. Default: 0.","type":"number"},"ignore_eos":{"description":"If true, the model continues generating past the end-of-sequence token.","type":"boolean"},"include_stop_str_in_output":{"description":"If true, includes the stop string in the generated output rather than trimming it.","type":"boolean"},"length_penalty":{"description":"Penalty applied during beam search. Values > 1.0 favor longer sequences, < 1.0 favor shorter ones.","type":"number"},"logit_bias":{"description":"Map of token IDs to bias values (-100 to 100). Increase or decrease the likelihood of specific tokens appearing in the output.","type":"object"},"logprobs":{"description":"If true, returns the log probabilities of each output token in the response.","type":"boolean"},"max_tokens":{"description":"Maximum number of tokens to generate in the response. Default is 4096.","type":"number"},"messages":{"description":"Array of message objects, each with a 'role' (system, user, assistant, tool) and 'content' (string or array of content parts). This is the conversation history sent to the model.","type":"array"},"min_p":{"description":"Minimum probability threshold. Tokens below this probability relative to the most likely token are filtered out.","type":"number"},"min_tokens":{"description":"Minimum number of tokens to generate before any stop condition can trigger.","type":"number"},"model":{"description":"Model slug to run inference against. Available models: deepseek-ai/DeepSeek-V3-0324 (164k context, reasoning), deepseek-ai/DeepSeek-V3.1 (164k context, reasoning), zai-org/GLM-4.6 (200k context, reasoning), zai-org/GLM-4.7 (200k context, reasoning), moonshotai/Kimi-K2-Instruct-0905 (128k context), moonshotai/Kimi-K2-Thinking (262k context, always-on reasoning), moonshotai/Kimi-K2.5 (262k context), openai/gpt-oss-120b (128k context). Reasoning models support the reasoning_effort parameter for controlling thinking depth.","type":"string"},"n":{"description":"Number of completions to generate. Currently only supports 1.","type":"number"},"parallel_tool_calls":{"description":"Whether the model can make multiple tool calls in parallel in a single response. Default: true.","type":"boolean"},"presence_penalty":{"description":"Penalize tokens based on whether they've appeared at all. Range -2.0 to 2.0. Positive values encourage the model to explore new topics. Default: 0.","type":"number"},"reasoning_effort":{"description":"Controls thinking depth for reasoning models. Options: 'low', 'medium', 'high'. Default: 'medium'. Higher effort uses more tokens but produces more thorough reasoning. Supported on DeepSeek V3/V3.1, GLM 4.6/4.7, and Kimi K2 Thinking.","type":"string"},"repetition_penalty":{"description":"Multiplicative penalty for repeated tokens. Values > 1.0 discourage repetition, < 1.0 encourage it.","type":"number"},"response_format":{"description":"Constrain the output format. Use {\"type\": \"json_object\"} for JSON mode, or {\"type\": \"json_schema\", \"json_schema\": {\"name\": \"...\", \"schema\": {...}}} for structured outputs with a specific schema.","type":"object"},"seed":{"description":"Integer for deterministic sampling. Same seed with same parameters should return the same result. Not guaranteed across model versions.","type":"number"},"skip_special_tokens":{"description":"If true, special tokens are removed from the output text. Default: true.","type":"boolean"},"spaces_between_special_tokens":{"description":"If true, adds spaces between special tokens in the detokenized output.","type":"boolean"},"stop":{"description":"Up to 4 sequences where the model will stop generating. Can be a string or array of strings.","type":"string"},"stop_token_ids":{"description":"Array of token IDs that will cause generation to stop when produced.","type":"array"},"stream":{"description":"If true, returns server-sent events (SSE) with partial message deltas as tokens are generated, instead of waiting for the full response.","type":"boolean"},"stream_options":{"description":"Options for streaming. Use {\"include_usage\": true} to get a final chunk with token usage statistics.","type":"object"},"temperature":{"description":"Sampling temperature between 0 and 4. Lower values (e.g. 0.2) produce more focused, deterministic output. Higher values (e.g. 1.5) increase creativity. Default is 1.","type":"number"},"tool_choice":{"description":"Controls tool calling behavior. 'auto' lets the model decide, 'none' disables tools, 'required' forces a tool call, or pass {\"type\": \"function\", \"function\": {\"name\": \"...\"}} to force a specific tool.","type":"string"},"tools":{"description":"Array of tool/function definitions the model can call. Each tool has {\"type\": \"function\", \"function\": {\"name\": \"...\", \"description\": \"...\", \"parameters\": {...}}}. The model may respond with tool_calls instead of content.","type":"array"},"top_k":{"description":"Top-K sampling. Only the K most likely next tokens are considered. Lower values make output more focused.","type":"number"},"top_logprobs":{"description":"How many of the most likely tokens (0-20) to return log probabilities for at each position. Requires logprobs to be true.","type":"number"},"top_p":{"description":"Nucleus sampling threshold between 0 and 1. Only tokens within this cumulative probability mass are considered. 0.1 means only the top 10%. Use as an alternative to temperature.","type":"number"},"top_p_min":{"description":"Minimum dynamic nucleus sampling threshold. Sets a floor for top_p when using adaptive sampling.","type":"number"},"truncate_prompt_tokens":{"description":"Truncate the prompt to this many tokens if it exceeds the limit, keeping the most recent tokens.","type":"number"},"user":{"description":"A unique string identifying the end user. Useful for abuse monitoring and rate limiting.","type":"string"}},"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"Send a conversation to a model and get a completion back. Works exactly like the OpenAI chat completions endpoint. Pass messages and a model slug, get a response with the assistant's reply. Supports streaming for real-time token delivery, tool calling for function execution, structured outputs via response_format, and controllable reasoning depth on supported models. | ERROR: Unable to calculate price.","last_updated":"2026-09-14T18:46:23.487Z","schemes":["exact"]}