I've spent the last few weeks wiring free LLM APIs into side projects, and the landscape in 2026 is genuinely better than most tutorials admit — but the limits are also where every "free forever" blog post quietly dies. Here's my field notes: what each free tier actually gives you, where the gotchas are, and the workflow I use to keep them straight. The shortlist that actually works Groq is still the speed king. The free tier gives you an OpenAI-compatible endpoint, and tool-calls work on Llama-class models. The rate limits are per-minute and generous enough for a demo, but sustained polling will get you 429s fast. Gemini has the most generous free quota of the big providers, and the API is OpenAI-compatible now, which means you can swap it in with a one-line base-URL change. Watch out for the per-day caps if you're building anything that users hammer. Mistral's free tier (La Plateforme) is real but region-gated and identity-verified. If you're in a supported region, it's a solid workhorse for structured output. Cloudflare Workers AI gives you a free daily allocation of neurons across a zoo of models. The latency from the edge is shockingly good for small models, and it's the easiest one to deploy next to your own Workers. NVIDIA NIM hands out free inference on their catalog with a developer account — great throughput, occasionally queue-y at peak hours. The one-line swap trick Almost every provider above speaks the OpenAI protocol now. So instead of rewriting your client per provider: from openai import OpenAI def make_client(provider: str) -> OpenAI: base_urls = { "groq": "https://api.groq.com/openai/v1", "gemini": "https://generativelanguage.googleapis.com/v1beta/openai/", "mistral": "https://api.mistral.ai/v1", } return OpenAI(base_url=base_urls[provider], api_key=f"KEY_FOR_{provider}") resp = make_client("gemini").chat.completions.create( model="gemini-2.0-flash", messages=[{"role": "user", "content": "ping"}], ) The real value isn't the swap — it's fallback. One provider rate-limits you, you rotate to the next. That's how I keep free-tier bots alive through traffic spikes. The part nobody tells you: limits drift weekly Here's the actual problem. Every one of those bullets above is true this week. Free tiers get reshuffled constantly — quotas shrink, models rotate in and out, endpoints get deprecated. A tutorial from three months ago is already a fossil. That drift is exactly why I stopped keeping my own notes table and started watching a live scoreboard instead. I keep APIShare.cc open in a pinned tab — it's a community-compute leaderboard that re-tests the free endpoints daily and publishes measured latency, rate limits, and uptime for each (Groq, Gemini, Mistral, Cloudflare, Cohere trial, NVIDIA NIM and friends). No sponsored rankings, which is rarer than it should be in this space. When a free endpoint starts degrading, I usually see it there before my own alerts fire. If you're the "I'll just read the docs" type — good luck, and I mean that sincerely. But if you've ever shipped a demo that broke overnight because a free tier changed under you, a daily-refreshed reference beats a static table every time. Practical guardrails Cache aggressively at the client. Free-tier rate limits are per-minute; a 60-second response cache multiplies your effective quota enormously. Never hardcode a provider. The swap table above is 10 lines; future-you will thank present-you. Log which provider served each request. When quality complaints come in, you'll want to know which model was behind it. Rotate keys before you rotate providers. Most 429s are per-key, not per-account. Free compute is out there in 2026 — genuinely usable, genuinely fast. The engineering discipline that makes it reliable is boring, and that's the point. What's your current daily driver among the free tiers? I'm always looking for the next one to add to the rotation.