I'm 18, I built this on my own, and I'll be upfront: this post introduces something I made, and the last line has a link. Everything above it is how it actually works.
Why I built it
I started with one AI provider. Then another had a model I wanted, so I added a second SDK, a second key, a second billing page, and a second rate limit to get stuck behind. Then the first provider had a bad afternoon and my app noticed before I did.
Meanwhile, free users and small builders get treated like an afterthought almost everywhere: slow replies, tiny limits, long waits. A lot of them are students and roleplayers who just want good models without a corporate budget. That's who I built this for.
What it is
One base URL. OpenAI-compatible format. You change the model string, not your code.
curl https://crowllm.com/v1/chat/completions \
-H "Authorization: Bearer $CROWLLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "write the next line"}]
}'
The same key works for Claude-family, Gemini-family, GPT-family and DeepSeek models, plus the rest of the catalogue. Streaming works like you'd expect. There's also a /v1/messages endpoint if your client speaks the Anthropic format, including count_tokens.
It works with Cursor, Cline, and the chat front-ends the roleplay community uses, like JanitorAI and SillyTavern. If it speaks the OpenAI format, it should work.
Three kinds of models
Free. Free forever, no card, no trial timer. Sign in with Discord and you can try them right away.
Earned. Play games with the Crow bot in our Discord, bank credit, and spend it on models.
Paid. Pay-as-you-go, token by token. I keep prices as low as I can, below the official provider rates wherever possible, and every rate is printed before you call it, so you can compare with the provider's own page instead of trusting me. I buy my API supply from official, trusted sources.
What's different from calling providers one by one
Failover is real, not a badge. A request that fails upstream is retried on another channel serving the same model. You don't write that loop, and you don't pay twice for it.
Retry cost is on me. If an upstream returns a 429, that failed attempt never shows up on your bill.
Cache reads are priced as cache reads. If a provider discounts cached input, the discount reaches your bill.
No forced IP pinning. A key should work from a train, not only from one machine at home.
Real numbers, publicly readable. The status page at crowllm.com/status only shows real traffic. I'd rather show you a bad week than print a number I made up.
If you're a heavy user, the monthly pass gives you about 5x the credit the same money buys on a top-up, with no request-rate limit.
Where things stand
We're at around +7k users, and we have a friendly community on Discord: discord.gg/crow. The site is still being built. There's no registered company yet, and I'm not planning one until we hit 100k users. :p
What I want from you
Tell me what breaks. If a model behaves differently through the gateway than it does direct, that's a bug and I want the exact request shape. Issues and DMs both work. I'm one person, so I read everything.
crowllm.com — sign in with Discord, try the free models, no card.
Top comments (0)