# API Capabilities ## Supported - OpenAI-compatible `POST /v1/chat/completions` - OpenAI-compatible `POST /v1/responses` - OpenAI-compatible `GET /v1/models` - Non-stream responses with: - plain assistant text - assistant `tool_calls` - Responses API outputs with: - `output_text` - `function_call`, `apply_patch_call`, `shell_call`, `local_shell_call` - Stream responses with: - `delta.content` - `delta.tool_calls` - Responses API stream events: - `response.output_text.delta` - `response.function_call_arguments.delta` - Multi-turn context via the `messages` array - Tool request fields: - `tools` - `tool_choice` - assistant history `tool_calls` - tool role history `tool_call_id` - Automatically derived `*-thinking` public models, for example: - `claude-sonnet-4.6` - `claude-sonnet-4.6-thinking` - Bearer token auth via `Authorization: Bearer ` ## Behavior Notes - Tool support is implemented through an internal prompt-and-parser bridge, not Cursor-native tool calling. - Base models keep the current model name and enable tool use. - `*-thinking` models map back to the same upstream base model, but also enable the internal thinking protocol. - Thinking is an internal bridge capability only. The public OpenAI response does not expose a separate reasoning field. - `previous_response_id` is supported with in-memory state only; restart clears history. For stateless use, include prior output items in `input`. ## Not Supported - Anthropic `/v1/messages` - MCP orchestration - Native upstream OpenAI tool execution - Exposed reasoning/thinking response fields - Local filesystem or OS command execution through the API - Persisted Responses API storage or server-side conversations across restarts ## Example: Non-Stream Tool Call ```bash curl -X POST http://127.0.0.1:8002/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 0000" \ -d '{ "model": "claude-sonnet-4.6", "stream": false, "messages": [ {"role": "user", "content": "帮我查询北京天气"} ], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "Get current weather", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } } ] }' ``` ## Example: Thinking Model ```bash curl -X POST http://127.0.0.1:8002/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 0000" \ -d '{ "model": "claude-sonnet-4.6-thinking", "stream": true, "messages": [ {"role": "user", "content": "先思考,再决定是否需要工具"} ], "tools": [ { "type": "function", "function": { "name": "lookup", "parameters": { "type": "object", "properties": { "q": {"type": "string"} }, "required": ["q"] } } } ] }' ```