[English] | Español
A simple but powerful Node.js tool to automatically discover, filter, and test free AI models available on OpenRouter.
This project was created to answer a very practical question:
Which free models on OpenRouter actually work right now and respond correctly through the API?
OpenRouter publishes a list of models and pricing, but in practice:
- Some “free” models fail
- Some are temporarily unavailable
- Some return errors or empty responses
This app automates the full process end‑to‑end:
- Download all models from OpenRouter
- Filter only the 100% free ones
- Test each free model with a real API call
- Save a clean list of models that actually work
-
Fetches the full public OpenRouter model catalog
-
Filters only models with zero cost in all pricing categories
-
Tests each free model with a real prompt
-
Generates clean JSON outputs:
- All models
- Free models only
- Working free models only
When you run npm start, the app executes four scripts in sequence:
- Calls the OpenRouter public endpoint:
/api/frontend/models - Downloads the full list of available models
- Saves the result to:
output/all-models.json
-
Reads
all-models.json -
Filters only models where all pricing fields are equal to
"0":- prompt
- completion
- image
- image_output
- internal_reasoning
-
Extracts and cleans useful fields:
- name
- model_variant_slug
- description
- context length
- modalities
-
Saves the result to:
output/free-models.json
-
Reads
free-models.json -
For each free model:
- Sends a test prompt to
/api/v1/chat/completions - Uses your OpenRouter API key
- Checks if the model returns a valid answer
- Sends a test prompt to
Test prompt used:
"Hello, how are you? Answer in less than 10 words."
-
Successful models are marked as working
-
Failed models are logged with error details
-
Saves only the working models to:
output/models-working.json
This is the orchestrator script.
It runs, in order:
get-all-models.jsfilterFreeModels.jstest-models.js
And prints a final summary when finished.
Clone the repository and install dependencies:
npm installYou must provide your OpenRouter API key using a .env file.
Create a file named .env in the root of the project:
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- Do NOT use quotes
- Do NOT add semicolons
Correct:
OPENROUTER_API_KEY=sk-or-v1-abc123
Incorrect:
OPENROUTER_API_KEY="sk-or-v1-abc123";
Simply execute:
npm startThis runs:
node start-check-models.jsThe full pipeline will execute automatically.
After running, you will find:
output/
├─ all-models.json # Full OpenRouter catalog
├─ free-models.json # Only 100% free models
└─ models-working.json # Free models that actually work
models-working.json is the final and most useful result.
- Node.js 18+ (or any version with native
fetchsupport) - An OpenRouter account and API key
- Requests are executed in parallel. If OpenRouter rate‑limits you, consider adding concurrency control.
- Some models may temporarily fail depending on availability.
- This tool uses only public and official OpenRouter endpoints.
This project was created to:
- Discover which free models are truly usable
- Avoid wasting time manually testing models
- Build an automated benchmark of free AI availability
- Help developers quickly choose working free models
MIT License
Created by Daniel Rincon — Founder Nahoral Labs