curl with idapt
Raw HTTP against the OpenAI, Anthropic, and OpenRouter compatible surfaces.
Last reviewed 2026-07-17
Point it at idapt
bash
curl https://idapt.app/api/openai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $IDAPT_API_KEY" \
-d '{"model": "openai/gpt-5.6-luna", "messages": [{"role": "user", "content": "Three facts about ravens."}]}'Streaming
bash
curl https://idapt.app/api/anthropic/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $IDAPT_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{"model": "anthropic/claude-haiku-4.5", "max_tokens": 256, "stream": true, "messages": [{"role": "user", "content": "Stream a haiku."}]}'The Anthropic dialect wants x-api-key and anthropic-version headers.
Going further
bash
curl https://idapt.app/api/openrouter/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $IDAPT_API_KEY" \
-d '{"model": "z-ai/glm-5.2", "messages": [{"role": "user", "content": "Three facts about ravens."}]}'The OpenRouter dialect adds provider routing fields and suffixes on top of the OpenAI shape.
Pitfalls
Three dialects, one key
All three surfaces authenticate with the same idapt key; pick whichever wire shape your existing code already speaks.