| Model ID | Accepted aliases |
|---|---|
claude-haiku-4 | haiku claude-haiku |
claude-opus-4 | opus claude-opus |
claude-sonnet-4 | sonnet claude-sonnet |
Runs on the Claude Code CLI, not the direct Anthropic API. Unsupported parameters are stripped before forwarding.
| Parameter | Support | Notes |
|---|---|---|
model | yes | Normalized to canonical ID |
messages | yes | system / user / assistant roles |
max_tokens | yes | |
temperature | yes | 0 – 1 |
stream | yes | SSE streaming |
stop | yes | Stop sequences |
tools / tool_choice | no | Function calling unsupported |
top_p / top_k | no | Stripped |
n | no | One completion per request |
presence_penalty / frequency_penalty | no | Stripped |
logprobs / logit_bias | no | Stripped |
response_format | no | Use prompt instructions |
| Vision / image inputs | no | Text only |
Client api_key: required — your API_KEY, sent as the bearer token (else 401).
curl -X POST http://claude-proxy.thepk.in/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "claude-sonnet-4",
"messages": [{"role": "user", "content": "Hello!"}]
}'
from openai import OpenAI
client = OpenAI(
base_url="http://claude-proxy.thepk.in/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="claude-sonnet-4",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
Method: POST
URL: http://claude-proxy.thepk.in/v1/chat/completions
Body (JSON):
{
"model": "claude-sonnet-4",
"messages": [{"role":"user","content":"={{ $json.text }}"}],
"temperature": 0,
"max_tokens": 100
}