| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- ---
- title: "Cline API Reference"
- sidebarTitle: "API Reference"
- description: "Reference for the Cline Chat Completions API, an OpenAI-compatible endpoint for programmatic access."
- ---
- The Cline API provides an OpenAI-compatible Chat Completions endpoint. You can use it from the Cline extension, the CLI, or any HTTP client that speaks the OpenAI format.
- ## Base URL
- ```
- https://api.cline.bot/api/v1
- ```
- ## Authentication
- All requests require a Bearer token in the `Authorization` header. You can use either:
- - **API key** created at [app.cline.bot](https://app.cline.bot) (Settings > API Keys)
- - **Account auth token** (used automatically by the Cline extension and CLI when you sign in)
- ```bash
- Authorization: Bearer YOUR_API_KEY
- ```
- ### Getting an API Key
- <Steps>
- <Step title="Go to app.cline.bot">
- Open [app.cline.bot](https://app.cline.bot) and sign in.
- </Step>
- <Step title="Open Settings > API Keys">
- Navigate to **Settings**, then **API Keys**.
- </Step>
- <Step title="Create and copy your key">
- Create a new key and copy it. Store it securely. You will not be able to see it again.
- </Step>
- </Steps>
- ## Chat Completions
- Create a chat completion with streaming support. This endpoint follows the [OpenAI Chat Completions](https://platform.openai.com/docs/api-reference/chat/create) format.
- ### Request
- ```
- POST /chat/completions
- ```
- **Headers:**
- | Header | Required | Description |
- |--------|----------|-------------|
- | `Authorization` | Yes | `Bearer YOUR_API_KEY` |
- | `Content-Type` | Yes | `application/json` |
- | `HTTP-Referer` | No | Your application URL |
- | `X-Title` | No | Your application name |
- **Body parameters:**
- | Parameter | Type | Required | Description |
- |-----------|------|----------|-------------|
- | `model` | string | Yes | Model ID in `provider/model` format (e.g., `anthropic/claude-sonnet-4-6`) |
- | `messages` | array | Yes | Array of message objects with `role` and `content` |
- | `stream` | boolean | No | Enable SSE streaming (default: `true`) |
- | `tools` | array | No | Tool definitions in OpenAI function calling format |
- | `temperature` | number | No | Sampling temperature |
- ### Example Request
- ```bash
- curl -X POST https://api.cline.bot/api/v1/chat/completions \
- -H "Authorization: Bearer YOUR_API_KEY" \
- -H "Content-Type: application/json" \
- -d '{
- "model": "anthropic/claude-sonnet-4-6",
- "messages": [
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": "Explain what a context window is in 2 sentences."}
- ],
- "stream": true
- }'
- ```
- ### Response (Streaming)
- When `stream: true`, the response is a series of [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-Sent_Events). Each event contains a JSON chunk:
- ```json
- data: {"id":"gen-abc123","choices":[{"delta":{"content":"A context"},"index":0}],"model":"anthropic/claude-sonnet-4-6"}
- data: {"id":"gen-abc123","choices":[{"delta":{"content":" window is"},"index":0}],"model":"anthropic/claude-sonnet-4-6"}
- data: [DONE]
- ```
- The final chunk includes a `usage` object with token counts and cost:
- ```json
- {
- "usage": {
- "prompt_tokens": 25,
- "completion_tokens": 42,
- "prompt_tokens_details": {
- "cached_tokens": 0
- },
- "cost": 0.000315
- }
- }
- ```
- ### Response (Non-Streaming)
- When `stream: false`, the response is a single JSON object:
- ```json
- {
- "id": "gen-abc123",
- "model": "anthropic/claude-sonnet-4-6",
- "choices": [
- {
- "message": {
- "role": "assistant",
- "content": "A context window is the maximum amount of text..."
- },
- "finish_reason": "stop",
- "index": 0
- }
- ],
- "usage": {
- "prompt_tokens": 25,
- "completion_tokens": 42
- }
- }
- ```
- ## Models
- Model IDs use the `provider/model-name` format, the same format used by [OpenRouter](https://openrouter.ai). Some examples:
- | Model ID | Description |
- |----------|-------------|
- | `anthropic/claude-sonnet-4-6` | Claude Sonnet 4.6 |
- | `anthropic/claude-sonnet-4-5` | Claude Sonnet 4.5 |
- | `google/gemini-2.5-pro` | Gemini 2.5 Pro |
- | `openai/gpt-4o` | GPT-4o |
- ### Free Models
- The following models are available at no cost:
- | Model ID | Provider |
- |----------|----------|
- | `minimax/minimax-m2.5` | MiniMax |
- | `kwaipilot/kat-coder-pro` | Kwaipilot |
- | `z-ai/glm-5` | Z-AI |
- <Note>
- Model availability and pricing may change. Check [app.cline.bot](https://app.cline.bot) for the latest list.
- </Note>
- ## Error Handling
- Errors follow the OpenAI error format:
- ```json
- {
- "error": {
- "code": 401,
- "message": "Invalid API key",
- "metadata": {}
- }
- }
- ```
- Common error codes:
- | Code | Meaning |
- |------|---------|
- | `401` | Invalid or missing API key |
- | `402` | Insufficient credits |
- | `429` | Rate limit exceeded |
- | `500` | Server error |
- | `error` (finish_reason) | Mid-stream error from the upstream model provider |
- ## Using with Cline
- The easiest way to use the Cline API is through the Cline extension or CLI, which handle authentication and streaming for you.
- ### VS Code / JetBrains
- Select **Cline** as your provider in the model picker dropdown. Sign in with your Cline account and your API key is managed automatically.
- ### Cline CLI
- Configure the CLI with your API key in one command:
- ```bash
- cline auth -p cline -k "YOUR_API_KEY" -m anthropic/claude-sonnet-4-6
- ```
- Then run tasks normally:
- ```bash
- cline "Write a one-line hello world in Python."
- ```
- See the [CLI Reference](/cline-cli/cli-reference) for all available commands and options.
- ## Using with Other Tools
- Because the Cline API is OpenAI-compatible, you can use it with any library or tool that supports custom OpenAI endpoints.
- ### Python (OpenAI SDK)
- ```python
- from openai import OpenAI
- client = OpenAI(
- base_url="https://api.cline.bot/api/v1",
- api_key="YOUR_API_KEY",
- )
- response = client.chat.completions.create(
- model="anthropic/claude-sonnet-4-6",
- messages=[{"role": "user", "content": "Hello!"}],
- )
- print(response.choices[0].message.content)
- ```
- ### Node.js (OpenAI SDK)
- ```typescript
- import OpenAI from "openai"
- const client = new OpenAI({
- baseURL: "https://api.cline.bot/api/v1",
- apiKey: "YOUR_API_KEY",
- })
- const response = await client.chat.completions.create({
- model: "anthropic/claude-sonnet-4-6",
- messages: [{ role: "user", content: "Hello!" }],
- })
- console.log(response.choices[0].message.content)
- ```
- ## Related
- <CardGroup cols={2}>
- <Card title="CLI Reference" icon="terminal" href="/cline-cli/cli-reference">
- Full command reference for the Cline CLI, including auth setup.
- </Card>
- <Card title="Enterprise API" icon="building" href="/enterprise-solutions/api-reference">
- Admin endpoints for user management, organizations, billing, and API keys.
- </Card>
- </CardGroup>
|