Free LLM API Endpoints: Live-Tested Models, Ranked
Pricing
from $0.70 / 1,000 endpoint listeds
Free LLM API Endpoints: Live-Tested Models, Ranked
Free LLM API endpoints that work right now, live-probed hourly and ranked: base URL, model ID, key requirement, latency and proven tool, JSON and vision support.
Pricing
from $0.70 / 1,000 endpoint listeds
Rating
0.0
(0)
Developer
Superslow Sloth
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Free LLM API Endpoints: live-tested, ranked, with a fallback chain
Get the free LLM API endpoints that work right now, as structured rows: base URL, model ID, whether a key is needed, latency, recent success rate, and which capabilities (tool calling, JSON schema, JSON mode, vision, image generation) a real call proved. The list comes from stillworks, a registry that re-probes every endpoint hourly with a real request, and it is returned ranked: row 1 is the pick, the rest is your fallback chain.
No login, no proxy and no API key are needed to run this actor.
Why the ranking matters
Free LLM endpoints are other people's services. Keyless quotas are usually per IP address, so the endpoint that answered stillworks can still refuse you with a 402 or 429. Instead of one answer you get an ordered list: try row 1, and on a refusal walk down to row 2. Ranking is "no key needed first, then recent success rate, then latency" (the exact wording is in the run log).
What you can do with it
- Pick a working free, OpenAI-compatible
base_urland model for an agent, a CI job, a prototype or a demo, without reading ten provider pages. - Build a fallback chain across providers and re-pull it on a schedule, so a dead free endpoint drops out of your config instead of breaking production.
- Find the free models that actually do tool calling, JSON schema output or vision, as proven by a call and not as claimed in a docs page.
- Monitor which free LLM providers are up, how fast they answer and how often they succeed.
Input
| Field | Type | Notes |
|---|---|---|
auth | string | none (default): endpoints that answered a real call with no Authorization header. key: endpoints that need your own API key (stillworks verified them with its own free-tier key). any: both shelves together, keyless first. |
features | array | Any of tools, json_schema, json_object, vision, image_out. Combined with AND, so you get models that do all of them. Models never probed for a capability are left out. image_out cannot be combined with another feature. |
maxItems | integer | Keep the first N rows of the ranked list (1 to 50, default 50). The API returns at most 50 models per call. |
An unknown value for auth or features fails the run up front with a clear
message, before anything is charged. It never silently returns a wider list.
Example input:
{ "auth": "none", "features": ["tools"], "maxItems": 10 }
Output
One dataset row per endpoint/model pair, best first. The fields are the API's
own, plus rank and stillworks_url.
{"rank": 1,"endpoint": "pollinations","model": "openai-fast","tier": "anonymous","base_url": "https://text.pollinations.ai","chat_path": "/openai","openai_base_url": "https://text.pollinations.ai/openai","auth_mode": "none","auth": "none","chat_capable": true,"openai_compatible": true,"last_ok": "2026-10-12T06:23:57.592923Z","latency_ms": 355,"recent_attempts": 168,"recent_successes": 168,"answered": "168/168","proved": ["json_schema", "json_object"],"claimed_unproved": [],"failed": ["tools"],"capabilities": {"json_schema": { "claimed": null, "supported": true, "checked_at": "2026-10-11T17:08:30.817873Z", "last_ok": "2026-10-11T17:08:30.817873Z" },"tools": { "claimed": true, "supported": false, "checked_at": "2026-10-11T17:08:00.338317Z", "last_ok": null, "last_error": "answered without calling the tool" }},"key_note": null,"generated_at": "2026-10-12T06:26:23.813289476Z","stillworks_url": "https://stillworks.supercapybara.com/llm/pollinations"}
openai_base_urlis the value to give an OpenAI SDK asbase_url;modelis the model ID.authisnone(send noAuthorizationheader) orbearer(send your own key).proved,claimed_unprovedandfailedseparate what a real call showed from what the provider says it supports.capabilitiesholds the detail, including the last error.tierandlast_okarenullwhen stillworks has no value, never a placeholder.key_noteis filled only for endpoints that need your own key: those were verified with stillworks' own free-tier key, which proves the endpoint answers today, not what a new signup's free tier includes.
Notes on the data
- Verified from stillworks' address, not yours. Quotas are commonly per IP and per account, so a listed endpoint can still answer 402 or 429 from your network. That is exactly why the result is a ranked chain.
- The list moves. Providers add key requirements, change models and disappear. Rows reflect the hourly probe whose time is in
last_okandgenerated_at. - An empty result is a real answer. If nothing is currently proven for your filter (for example image generation with
auth: key), the run finishes with an empty dataset and is not charged per row. - Calls to the stillworks API identify themselves with the
User-Agentstillworks-apify-actor/1.0.
Billing
Pay per event: a small actor-start event per run, plus one endpoint-listed
event per row delivered. The event is charged after the row is written to the
dataset, so you are never billed for a row you did not receive.
Platform usage is included in the event prices.
Related
Live registry and docs: https://stillworks.supercapybara.com. The same data
is a plain public JSON API at https://stillworks.supercapybara.com/api/llm/up
if you would rather call it directly from your own code.