stillworks probing · last sweep 37 min ago

Dobby is freeeeeee — no key, no signup, no card. We don't read docs, we call the endpoint and publish what came back, including the 402s.

One call, then you are calling an LLM

Free LLM API endpoints, tested every hour. Ask what is answering right now.

Base URL, model ID, whether a key is needed, what a real probe proved. Ranked, so models[0] is the pick and the rest are your fallbacks — which you will want, because keyless quotas are per-IP and the one that answered us can refuse you.

1 Ask what works
GET /api/llm/up no key, no signup, no rate limit
curl -s https://stillworks.supercapybara.com/api/llm/up
every model carries modelopenai_base_urlauthlatency_msansweredlast_okproved[]claimed_unproved[]failed[]
?feature=tools,vision narrows it to what a real call proved
2 Call what came back
nothing hardcoded but our URL
python
import json, urllib.request
from openai import OpenAI

shelf = json.load(urllib.request.urlopen(
    "https://stillworks.supercapybara.com/api/llm/up"))

for endpoint in shelf["models"]:            # already ranked, best first
    client = OpenAI(base_url=endpoint["openai_base_url"],
                    api_key="not-needed")
    try:
        reply = client.chat.completions.create(
            model=endpoint["model"],
            messages=[{"role": "user", "content": "hello"}],
        )
    except Exception:
        continue                           # your IP hit its quota — next
    print(endpoint["model"], reply.choices[0].message.content)
    break
node
import OpenAI from "openai";

const shelf = await fetch("https://stillworks.supercapybara.com/api/llm/up")
  .then((response) => response.json());

for (const endpoint of shelf.models) {      // already ranked, best first
  const client = new OpenAI({
    baseURL: endpoint.openai_base_url,
    apiKey: "not-needed",
  });
  try {
    const reply = await client.chat.completions.create({
      model: endpoint.model,
      messages: [{ role: "user", content: "hello" }],
    });
    console.log(endpoint.model, reply.choices[0].message.content);
    break;
  } catch { continue; }                    // your IP hit its quota — next
}
curl
# whatever your JSON tool is, the two fields you need are the same
read BASE MODEL < <(curl -s https://stillworks.supercapybara.com/api/llm/up \
  | jq -r '.models[0] | "\(.openai_base_url) \(.model)"')

curl -s "$BASE/chat/completions" \
  -H 'Content-Type: application/json' \
  -d "{\"model\":\"$MODEL\",
       \"messages\":[{\"role\":\"user\",\"content\":\"hello\"}]}"
Walk the list until one answers. That loop is the whole point of the shelf.
109 of 143 models · proved json

No key needed first, then by how much of the last week each one answered, then by speed. None of it is a promise about the next minute — that is what the timestamps are for. Click any row for its snippet.

we called it and it worked we called it and it failed provider claims it, our call never proved it never probedWhat Tools, Schema, JSON and Vision mean
ExpandModel▲KeyToolsSchemaJSONVisionLatency▲Answered▲Verified▲Copy
openai-fast pollinations · text.pollinations.ai/openainot needed Tools: the provider claims it, our call failed Schema: we called it and it worked JSON: we called it and it worked Vision: never probed322 ms 168/16837 min ago
Meta-Llama-3_3-70B-Instruct ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed342 ms 11/114 h ago
qwen3-coder free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked408 ms 1/137 h ago
qwen7b free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked474 ms 1/113 h ago
mistral free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked481 ms 1/13 days ago
qwen-coder free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked519 ms 1/12 days ago
openrouter/free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked574 ms 26/261 h ago
gpt-oss-120b ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed611 ms 11/1137 min ago
kilo-auto/small kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked645 ms 26/2637 min ago
reflection/beam-free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed702 ms 26/261 h ago
Qwen3.6-27B ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked730 ms 10/1012 h ago
qwen3-8b free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked750 ms 1/113 h ago
Qwen2.5-VL-72B-Instruct ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it failed Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked817 ms 11/111 h ago
Qwen3.5-397B-A17B ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked843 ms 11/116 h ago
qwen25-vl free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked869 ms 1/137 h ago
nvidia/nemotron-3.5-lightning:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed871 ms 26/2637 min ago
qwen-vl free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked978 ms 1/12 days ago
gpt-oss-20b ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1059 ms 10/1013 h ago
deepseek-r1 free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1098 ms 1/14 days ago
dots-studio/dots-3-note-preview:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1296 ms 25/253 h ago
deepseek-r1-7b free-ai · api.free.ai/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1335 ms 1/13 days ago
Mistral-Small-3.2-24B-Instruct-2506 ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked3525 ms 10/1015 h ago
nvidia/nemotron-3.5-super-vl:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked613 ms 25/261 h ago
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked869 ms 25/2637 min ago
nvidia/nemotron-3-ultra-550b-a55b:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed944 ms 23/253 h ago
Qwen3.5-9B ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked2517 ms 9/1014 h ago
gpt-oss:20b llm7 · api.llm7.io/v1not needed Tools: we called it and it worked Schema: we called it and it failed JSON: we called it and it worked Vision: we called it and it failed1669 ms 31/401 h ago
codestral-latest llm7 · api.llm7.io/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed1038 ms 25/393 h ago
Qwen3.8-27B ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked492 ms 7/117 h ago
mistral-Nemo-Instruct-2407 llm7 · api.llm7.io/v1not needed Tools: we called it and it failed Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed1643 ms 23/392 h ago
minimax-m2.7 llm7 · api.llm7.io/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed358 ms 20/3931 h ago
Mistral-Nemo-Instruct-2407 ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed4306 ms 4/103 days ago
liquid/lfm-2.5-2.6b:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed403 ms 5/255 days ago
liquid/lfm-3-1.7b:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: the provider claims it, our call never proved it Schema: the provider claims it, our call never proved it JSON: we called it and it worked Vision: never probed1040 ms 1/713 h ago
recursive/flint-v1.0:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1052 ms 0/258 days ago
Qwen3-32B ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed1237 ms 0/1052 days ago
minimax/minimax-m3.1-flash:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1511 ms 0/2516 days ago
Mistral-7B-Instruct-v0.3 ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed1979 ms 0/1125 days ago
Qwen3-Coder-30B-A3B-Instruct ovh-anonymous · oai.endpoints.kepler.ai.cloud.ovh.net/v1not needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed3410 ms 0/1031 days ago
nvidia/nemotron-3-super-120b-a12b:free kilo-gateway · api.kilo.ai/api/gatewaynot needed Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed4846 ms 0/2620 days ago
qwen/qwen3.8-27b groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed165 ms 42/423 h ago
nvidia/nemotron-3.5-super-vl:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked280 ms 4/423 h ago
openai/gpt-oss-120b groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed304 ms 42/421 h ago
allam-2-7b groq · api.groq.com/openai/v1key Tools: we called it and it failed Schema: we called it and it failed JSON: we called it and it worked Vision: we called it and it failed369 ms 42/422 h ago
openai/gpt-oss-safeguard-20b groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed376 ms 42/4237 min ago
cohere/north-mini-code:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it failed JSON: we called it and it worked Vision: never probed426 ms 3/342 h ago
openai/gpt-oss-20b groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed458 ms 42/423 h ago
ministral-3b-2512 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked536 ms 12/124 h ago
liquid/lfm-2.5-2.6b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed552 ms 4/43 h ago
voxtral-small-2507 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed562 ms 13/133 h ago
mistral-code-fim-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed583 ms 12/1213 h ago
mistral-code-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed593 ms 13/1337 min ago
codestral-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed596 ms 13/1337 min ago
nvidia/nemotron-3.5-lightning:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed616 ms 4/425 h ago
~z-ai/glm-latest openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed617 ms 4/435 h ago
voxtral-small-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed627 ms 12/1210 h ago
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked635 ms 4/426 h ago
ministral-8b-2512 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked649 ms 12/124 h ago
codestral-2508 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed655 ms 13/131 h ago
ministral-14b-2512 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked736 ms 13/133 h ago
ministral-3b-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked741 ms 12/124 h ago
ministral-8b-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked786 ms 13/132 h ago
ministral-14b-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked802 ms 13/133 h ago
nvidia/nemotron-3-ultra-550b-a55b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1136 ms 4/431 h ago
dots-studio/dots-3-note-preview:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1317 ms 4/411 h ago
inclusionai/ling-3.1-flash openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1629 ms 3/341 h ago
recursive/flint-v1.0:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1259 ms 2/438 h ago
stealth/crouton-alpha openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1694 ms 1/313 h ago
llama-3.3-70b-versatile groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it failed JSON: we called it and it worked Vision: we called it and it failed210 ms 0/4282 days ago
llama-3.1-8b-instant groq · api.groq.com/openai/v1key Tools: we called it and it worked Schema: we called it and it failed JSON: we called it and it worked Vision: we called it and it failed256 ms 0/4283 days ago
mistral-medium mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked549 ms 0/1265 days ago
devstral-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed553 ms 0/1265 days ago
mistral-medium-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked555 ms 0/1265 days ago
magistral-medium-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked564 ms 0/1265 days ago
mistral-medium-2604 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked566 ms 0/1265 days ago
mistral-medium-2508 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked577 ms 0/1365 days ago
devstral-medium-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed601 ms 0/1265 days ago
devstral-2512 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed604 ms 0/1265 days ago
mistral-medium-3.5 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked611 ms 0/1265 days ago
mistral-medium-3-5 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked625 ms 0/1265 days ago
mistral-vibe-cli-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked629 ms 0/1265 days ago
mistral-small-2603 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call failed630 ms 0/1365 days ago
nvidia/nemotron-3-nano-30b-a3b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed638 ms 0/476 days ago
mistral-small-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call failed665 ms 0/1265 days ago
glm-5-2 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed688 ms 0/1286 days ago
mistral-large-4 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call never proved it694 ms 0/1332 days ago
mistral-vibe-cli-fast mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call failed695 ms 0/1265 days ago
magistral-small-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call failed703 ms 0/1265 days ago
mistral-vibe-cli-with-tools mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked800 ms 0/1265 days ago
mistral-medium-3 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked807 ms 0/1265 days ago
mistral-medium-2505 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked813 ms 0/1365 days ago
mistral-code-agent-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it failed878 ms 0/1265 days ago
mistral-large-2512 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked883 ms 0/1265 days ago
minimax/minimax-m3.1-flash:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked904 ms 0/418 days ago
nvidia/nemotron-nano-12b-v2-vl:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked936 ms 0/476 days ago
mistral-large-4-0 mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: the provider claims it, our call failed943 ms 0/1332 days ago
apodex/apodex-1.1-mini:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: the provider claims it, our call failed JSON: we called it and it worked Vision: never probed1022 ms 0/426 days ago
mistral-large-latest mistral · api.mistral.ai/v1key Tools: we called it and it worked Schema: never probed JSON: we called it and it worked Vision: we called it and it worked1065 ms 0/1265 days ago
google/gemma-4-31b-it:free openrouter · openrouter.ai/api/v1key Tools: the provider claims it, our call never proved it Schema: never probed JSON: we called it and it worked Vision: never probed1302 ms 0/416 days ago
›stealth/space-bunny-alpha openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked1453 ms 0/434 days ago
curl
curl https://openrouter.ai/api/v1/chat/completions \
  -H 'Authorization: Bearer YOUR_OPENROUTER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"stealth/space-bunny-alpha","messages":[{"role":"user","content":"hello"}]}'
.env
OPENAI_BASE_URL=https://openrouter.ai/api/v1
OPENAI_API_KEY=your-openrouter-api-key
OPENAI_MODEL=stealth/space-bunny-alpha
python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key=os.environ["YOUR_OPENROUTER_API_KEY"],
)

print(client.chat.completions.create(
    model="stealth/space-bunny-alpha",
    messages=[{"role": "user", "content": "hello"}],
).choices[0].message.content)
node
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://openrouter.ai/api/v1",
  apiKey: process.env.YOUR_OPENROUTER_API_KEY,
});

const reply = await client.chat.completions.create({
  model: "stealth/space-bunny-alpha",
  messages: [{ role: "user", content: "hello" }],
});

console.log(reply.choices[0].message.content);
The key line is a placeholder. Ours never leaves the deployment's environment.
Base URL
https://openrouter.ai/api/v1
Model ID
stealth/space-bunny-alpha
Auth
our own free-tier key
Answered
answered 0 of the 4 checks we made in the last week
Last ok
34 days ago
A test from here would need your key, and we will not ask for it. Paste the snippet where your key already lives.
nvidia/nemotron-nano-9b-v2:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed1750 ms 0/476 days ago
z-ai/glm-5.2:free openrouter · openrouter.ai/api/v1key Tools: the provider claims it, our call never proved it Schema: the provider claims it, our call never proved it JSON: we called it and it worked Vision: never probed2029 ms 0/448 days ago
deepseek/deepseek-v4-flash-0731:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed2094 ms 0/449 days ago
nvidia/nemotron-3-super-120b-a12b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed2889 ms 0/419 days ago
stealth/ox-alpha openrouter · openrouter.ai/api/v1key Tools: the provider claims it, our call failed Schema: we called it and it failed JSON: we called it and it worked Vision: we called it and it worked3248 ms 0/474 days ago
xingchen-agi/xing4.0-29b-a4b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed3778 ms 0/42 days ago
nex-agi/nex-n2.5-pro:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked4032 ms 0/444 days ago
openai/gpt-oss-20b:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: never probed4259 ms 0/479 days ago
nex-agi/nex-n2.5-mini:free openrouter · openrouter.ai/api/v1key Tools: we called it and it worked Schema: we called it and it worked JSON: we called it and it worked Vision: we called it and it worked12545 ms 0/445 days ago
Checked and not listed (17) — endpoints another catalogue calls free, and what they answered here

Cross-checked against OmniRoute's routing registry. 2026-08-11: 226 providers, 18 typed as needing no key. One new claim on the shelf and no new working endpoint. 2026-10-12: 270 providers, 17 typed as needing no key. Two new working keyless endpoints, Kilo Gateway and Free.ai, now on the shelf. Every other claim failed the chat call, and is listed below with the answer it gave.

Hack Club AI https://ai.hackclub.com/proxy/v1
Listing answers a bare GET with 200 and a full model catalogue; the chat call answers 401 Authentication required. A keyless /v1/models is not a keyless endpoint, and this is the shape most often mistaken for one. Separately scoped to Hack Club members by its own terms.
Naga https://api.naga.ac/v1
Same shape: listing 200, chat 401 authentication_required, with the body directing you to sign up. A free tier behind a signup is the keyed shelf's subject, not this one, and we hold no key.
Pollinations (gen host) https://gen.pollinations.ai/v1
401 UNAUTHORIZED with no header. Worth stating plainly because the catalogue routes here on the grounds that the older text.pollinations.ai host was retired -- and that older host answered our keyless chat call with 200 on the same day. The retired endpoint is the one still serving anonymously, so that is the one on the shelf.
g4f.space https://g4f.space/api/{pollinations,groq,gemini,nvidia,ollama}/v1
402 insufficient_credits: "No cake credits. Bake proof-of-work cakes ... to earn anonymous usage." Anonymous, but not free of charge -- the price is compute rather than a key. Nothing an OpenAI client can pay, so it cannot be published as an endpoint that works right now.
MiMo (Xiaomi) https://api.xiaomimimo.com/v1
401 invalid_key on both the listing and the chat call.
TheOldLLM https://theoldllm.vercel.app/api/chatgpt
403 at the edge. The same catalogue's own free-tier research lists this provider as having no current free tier, so the registry entry and the documentation disagree; the call settles it.
AI Horde https://oai.aihorde.net/v1/chat/completions
401 {"detail":"Authorization header missing"} with no header, on 2026-10-12. The same call with its documented public anonymous key (ten zeros) as a bearer token answered 200 on koboldcpp/Angelic_Eclipse-12B, so it is free, and open to anyone, but it is a key: this shelf lists only calls that carry no Authorization header at all. Volunteer-worker queue, latency in minutes on a busy day.
OpenCode Free https://opencode.ai/zen/v1/chat/completions
Listing answers a bare GET with 200 and names the free models; the chat call answers 403 FreeTierError: "OpenCode's free tier can only be used from within OpenCode". The body says why, so this is a policy and not a bare 403 -- the free tier is gated on the client, not the credential, and an OpenAI client is not that client.
Cloudflare AI Playground https://playground.ai.cloudflare.com
405 on POST /chat/completions. The source catalogue reaches it by driving a headless Chromium against the playground page, not by an API: there is no OpenAI-style endpoint to hand a client. Same class as the scraped web UIs below, and rejected for the same reason.
UC (uncensored.com persona) wss://internal-6.pubyar.com
Not an HTTP chat endpoint. The catalogue's own source describes a WebSocket session minted from an account cookie after an email-code login on a subscription product. That is an account, not a free call, and it cannot be probed by a request with no credential. (GET / on the host answers 200 with a status object; POST /chat/completions answers 404.)
FriendliAI https://api.friendli.ai/serverless/v1
The catalogue's free-tier list tags it keyless. Listing answers 200 and the chat call answers 401 {"detail":"Unauthorized. Please provide a valid credential."}: the listing-is-not-an-endpoint shape again.
Liquid AI https://inference.liquid.ai/v1
Tagged keyless in the catalogue's free-tier list. Both the listing and the chat call answer 403 {"detail":"Not authenticated"}. The body says who is missing, so this is a request for a credential and not a block.
Blackbox AI https://api.blackbox.ai/v1
Tagged keyless in the catalogue's free-tier list. 404 on both the listing and the chat call at the URL the catalogue gives, and 404 on /chat/completions at the host root, so nothing here answered a chat call with or without a key.
iFlytek Spark / SparkDesk https://spark-api-open.xf-yun.com/v1
Tagged keyless in the catalogue's free-tier list. 401 {"message":"Unauthorized"} on the chat call. The two catalogue entries are the same URL.
Registry entries added since 2026-08-11 52 providers, one anonymous chat call each, 2026-10-12
None of these is typed keyless by the catalogue, so none was a claim; they were called anyway because a typed key and a working keyless call are not the same thing, and Free.ai is the proof. Of 52 calls: 38 answered 401 or a body asking for a key, 3 answered 400 (one of which, Free.ai, answered 200 once given a model it serves and is on the shelf), 6 answered 404 and 2 answered 405 because they are not OpenAI-shaped (browser-driven or proprietary paths -- not a measurement of the provider), and 3 gave a 5xx from the host (void-ai, tabitoken, chat-oripe) that says nothing about auth. Unmeasured is not rejected: those five-hundreds can be re-run.
Web-UI scrapers duckduckgo-web, felo-web, qwen-web, t3-web, muse-spark-web, veoaifree-web, agy
Not probed, and not a measurement question. These drive somebody's chat website through an adapter; the source catalogue's own terms-of-service table marks every one of them avoid for proxied or non-personal use. An endpoint we would have to breach terms to call is not an endpoint we can tell you to call.
Vendor agent CLIs auggie, devin-cli-agentic, kiro, amazon-q, zcode, codex-app-server
Credential-free only in the sense that an installed CLI already holds an OAuth session. There is no URL to hand an OpenAI client, so there is nothing here for this shelf to check.

Free LLM API: questions this shelf answers

Is there a free LLM API that needs no API key?

Yes, a handful, and they come and go. The ones answering right now are on the no-key page, each called with no Authorization header and published with how often it answered.

How often is each endpoint checked?

Every endpoint gets real chat calls every hour. Feature checks (tool calling, JSON schema, vision, image output) run daily. The table above carries 143 models, each with the time it was last verified.

Why can a listed endpoint still fail for me?

Quotas are usually per IP. One that answered this server can return 429 or 402 from yours, which is why the API returns a ranked list to walk.

How do I call one from code?

GET /api/llm/up returns the base URL, model id and auth for what is answering. Parameters and a Python, Node and curl loop are in the reference. If you are choosing between lists, see how they compare.