free.ai
- Free allowance
- 513 model entries in /v1/models, 45 of them marked self_hosted true; every id probed answers from one backend, Qwen/Qwen3-30B-A3B-Instruct
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- noneno named constraint binds
- Evidence
- measured6 sources; a live request was made and its output kept
- Freshness
- stale on 2026-11-28checked 2026-10-28 (live); stale on 2026-11-28
| Free tier | 513 model entries in /v1/models, 45 of them marked self_hosted true; every id probed answers from one backend, Qwen/Qwen3-30B-A3B-Instruct unit tokens; metered on request-count; the catalogue carries prompt and completion prices of '0' per entry. The count 513 is the length of the models array, measured |
|---|---|
| Price | none stated |
| Limits |
the served model is the constraint: 513 catalogue names resolve to one backend, Qwen/Qwen3-30B-A3B-Instruct, so the model cannot be chosen and a capacity claim about free.ai is a claim about that one model. What it does not do is serve what was asked for |
| Binding | none The failure here is substitution and not a ceiling, and substitution is not one of the six constraint kinds, so it is recorded in limits_note rather than forced into a kind that would misdescribe it |
| Identity | anonymous no key required. |
| Egress | not published |
| Interface | rest endpoint: https://api.free.ai/v1/chat/completions |
| Tooling | any OpenAI-compatible client; curl against POST {base}/chat/completions |
| Composes with | pairs with a batch job that does not care which model runs |
| Reliability | no substitution was observed inside a single run, but the model served never matches the model requested for any id other than the backend's own name |
| Notes | The catalogue is 513 names for approximately one backend. Any capacity or quality claim about free.ai is a claim about Qwen3-30B-A3B, and a benchmark keyed on the requested id would be attributed to a model that never ran. |
| Evidence note | measured the substitution was measured three times in run 1 and twice in run 2, plus once with a different id. What remains unmeasured is whether any of the 45 self-hosted entries is served as named. |
| Parsed numbers |
|
Evidence 6
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | probe: https://api.free.ai/v1/chat/completions | qwen3-8b, qwen-coder and deepseek-r1 all echoed Qwen/Qwen3-30B-A3B-Instruct in run 1; qwen3-8b and qwen-coder did so again in run 2 |
| 2026-10-22 | api.free.ai/v1/models | 513 entries with prompt and completion prices of '0'; 45 carry self_hosted true; the first entries name qwen7b as 'Qwen 3.6 35B' and qwen-coder as 'Qwen 3.6 35B' |
| 2026-10-28 | free.ai/developer/ | the Free plan row of the API request tiers table: 1,000 requests per month and 60 per minute per key |
| 2026-10-28 | free.ai/tokens/ | anonymous users get 6,000 tokens per day; the same page lists 30,000 per day for a free account and a reset at midnight UTC |
| 2026-10-28 | free.ai/developer/ | the documented API path needs an email-confirmed account and a Bearer key; the keyless call is not documented |
| 2026-10-28 | probe: https://api.free.ai/v1/chat/completions | one POST with no Authorization header for qwen7b answered 200 with content NEEDLE-9K2X and echoed model Qwen/Qwen3-30B-A3B-Instruct (not qwen7b); body free_ai_usage reports tokens_used 37, tokens_charged 37, source self_hosted; no rate-limit header was returned (headers: server nginx/1.18.0, content-length 822) |
Unknown values 3
- egress metered: egress metering was not published
- per object cap stated: the field does not apply to this kind of offer
- retention stated: the field does not apply to this kind of offer