One API key. Every frontier model. Fair pricing.
OpenAI-compatible Β· Community-first Β· Built in the open
β discord.gg/crow β
Get your API key, ask questions, follow updates, and hang out with the community.
Note
Currently available: Chat completions with streaming. Image generation, audio, embeddings and other endpoints are coming β follow Discord for updates.
Crow AI is an OpenAI-compatible API that routes your requests to frontier models β GPT-4o, Claude, Gemini, DeepSeek, and more β behind a single key.
No vendor lock-in. No per-seat pricing. No surprise bills. Just credits, fair rates, and one endpoint.
Base URL https://api.crowllm.com/v1
Auth Bearer YOUR_API_KEY
|
1 β Join Discord Open discord.gg/crow β the community lives here |
2 β Sign up Create your account at crowllm.com |
|
3 β Get your key Dashboard β API Keys β New Key |
4 β Build Point any OpenAI SDK at the base URL and start calling models |
New accounts get free starter credits. No credit card required to try.
Chat β curl
curl https://api.crowllm.com/v1/chat/completions \
-H "Authorization: Bearer $CROW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{ "role": "user", "content": "Write a Python hello world." }
],
"stream": true
}'Chat β Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_CROW_API_KEY",
base_url="https://api.crowllm.com/v1",
)
res = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "Say hello."}],
)
print(res.choices[0].message.content)Chat β JavaScript / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CROW_API_KEY,
baseURL: "https://api.crowllm.com/v1",
});
const res = await client.chat.completions.create({
model: "gemini-2.5-pro",
messages: [{ role: "user", content: "What day is it?" }],
});
console.log(res.choices[0].message.content);Streaming β Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_CROW_API_KEY",
base_url="https://api.crowllm.com/v1",
)
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Count to 10 slowly."}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Tool calling β Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_CROW_API_KEY",
base_url="https://api.crowllm.com/v1",
)
res = client.chat.completions.create(
model="gpt-4o",
tool_choice="required",
messages=[{"role": "user", "content": "Get the weather for Istanbul."}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather for a city.",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
"additionalProperties": False,
},
},
}],
)
print(res.choices[0].message.tool_calls)| Provider | Models |
|---|---|
| OpenAI | GPT-4o, GPT-4.1, o1, o3, o4-mini |
| Anthropic | claude-opus-4, claude-sonnet-4, claude-haiku-3.5 |
| Gemini 2.5 Pro, Flash Β· Vertex AI | |
| DeepSeek | deepseek-chat, deepseek-reasoner |
| AWS Bedrock | Claude, Llama, Titan via Bedrock |
| xAI | Grok-2, Grok-3 |
| Mistral | mistral-large, codestral |
| Cohere | command-r-plus |
| + more | Qwen, ERNIE, GLM, SiliconFlow, Moonshot, Perplexity, Ollama, OpenRouter, and more |
Full model catalog: crowllm.com/models
Any tool that supports a custom OpenAI base URL works with Crow AI out of the box:
| Category | Tools |
|---|---|
| Coding agents | Cursor, Kilo Code, Cline, Roo Code, Continue.dev, Zed, Aider |
| Chat clients | LibreChat, Open WebUI, LobeChat, AnythingLLM, Cherry Studio, Chatbox |
| SDKs | openai-python, openai-node, LangChain, LlamaIndex, Vercel AI SDK |
Crow AI is fully open source. Run your own instance:
git clone https://github.com/crowwdev/crow-ai.git
cd crow-ai
cp .env.example .env
# edit .env with your settings
docker compose up -dRuns on port 3000. SQLite by default, MySQL and PostgreSQL also supported.
Full guide: docs.crowllm.com/self-hosting
The best place to be is the Discord. It's where the community lives, keys are distributed, features get decided, and the team is reachable.
MIT β see LICENSE.
crowllm.com Β· discord.gg/crow Β· docs.crowllm.com Β· status.crowllm.com
Built with the community, for the community.