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.

mlvoca.com free LLM API: no key, measured

mlvoca.com — docs

Call it

Call URL
https://mlvoca.com/api/generate
Shape
Ollama, not OpenAI — no OPENAI_BASE_URL describes it.
API key
none — send no Authorization header at all

No model on this endpoint is currently verified keyless, so there is no call here we would stand behind. The raw probe log at the bottom of this page says what happened instead.

Track record: mlvoca.com

0 of 343 real chat calls answered in 14 days (0%), median 0 ms.

The 343 that did not answer were 343 server errors (5xx).

Median reply 0 ms, 95th percentile 0 ms, over the calls that answered. We have been calling this endpoint since 3 August 2026. Measured with no Authorization header, from this server's address.

Day (UTC)Chat callsAnsweredMedian reply
29 Sep240 of 24—
30 Sep240 of 24—
1 Oct240 of 24—
2 Oct240 of 24—
3 Oct240 of 24—
4 Oct240 of 24—
5 Oct240 of 24—
6 Oct240 of 24—
7 Oct240 of 24—
8 Oct240 of 24—
9 Oct240 of 24—
10 Oct240 of 24—
11 Oct240 of 24—
12 Oct150 of 15—

Ollama-shaped API, not OpenAI-compatible: /api/generate and /api/tags. Claimed no key and no published rate limit.

Models

ModelTierKeylessChatToolsSchemaJSONVisionDrawsWorkedLast checkedLast listed

Scroll the table sideways for the rest of each row. Chat, Worked and Last listed are folded away at this width.

Feature columns are measurements. Where the provider's own listing claims a feature we could not get out of it, the cell says so — that disagreement is the reason this shelf exists.

What Tools, Schema, JSON and Vision mean, and what each cell state means

The columns

The call behind any one verdict is on that endpoint's own page — follow the provider link in a row and read The call behind each verdict.

Tools
We sent a tools array and the model came back with a well-formed tool_calls entry an agent could dispatch. A 200 with no tool call in it is not tool support, and is recorded as a no.
Schema
The strict structured-output mode: response_format: {"type": "json_schema", …}. The reply parsed and matched the schema we sent.
JSON
The weaker mode: response_format: {"type": "json_object"}. Valid JSON, with no shape enforced. The two come apart in both directions — OVH's Mistral-7B-Instruct-v0.3 does the strict form and emits invalid JSON for the weak one; llm7's meta-Llama-3.1-8B-Instruct-Turbo does json_object while json_schema answers 405.
Vision
A real image went in inline and a correct answer about it came back. We ask about something only a model that looked could know.
Draws
On an endpoint's own page: bytes came back with an image content type, and they really are an image. Not a 200 taken on trust.

The cell states

yes
A real call proved it, at the time the endpoint page prints beside that call. The dot's tooltip says the same thing where there is a pointer to hover with.
no
A clean negative: the parameter was refused, or the answer did not conform.
no, claimed
The negative contradicts the provider's own published claim — their listing advertises the feature and our call could not get it out of the model. This is the most interesting cell on the site and the reason the shelf exists.
never probed
No verdict. Either nobody has asked yet, or the check ran and got no usable answer back — Pollinations sits here because its anonymous pool answered 402 to every feature probe. It is a question, never a no.

The same columns, in the API

curl 'https://stillworks.supercapybara.com/api/llm/up?feature=tools,json_schema'

The names are the API's spelling of the columns: tools, json_schema, json_object, vision, image_out. Several are and, never or — a row comes back only if a real call proved every feature named. Models we never probed for one of them are left out rather than optimistically included, so a filtered shelf is shorter than a hopeful one.

The call behind each verdict

No feature probe has run against this endpoint yet, which is why its feature columns read as never probed. That is a question nobody has asked, not a no.

Raw probe log

Our working, so you can check it rather than trust it. Wider than the page at any width — scroll it sideways for the Detail column, which quotes the provider's own refusal back.

WhenKindOutcomeHTTPLatencyModelDetail
19 min agochatserver_error502263 mstinyllama<html>
19 min agomodelsblocked4031158 ms—<html>
59 min agochatserver_error502254 mstinyllama<html>
59 min agomodelsblocked4031038 ms—<html>
1 h agochatserver_error502253 mstinyllama<html>
1 h agomodelsblocked4031114 ms—<html>
1 h agochatserver_error502253 mstinyllama<html>
1 h agomodelsblocked403916 ms—<html>
1 h agochatserver_error502253 mstinyllama<html>
1 h agomodelsblocked403769 ms—<html>
1 h agochatserver_error502254 mstinyllama<html>
1 h agomodelsblocked4031040 ms—<html>
1 h agochatserver_error502253 mstinyllama<html>
1 h agomodelsblocked403916 ms—<html>
1 h agochatserver_error502255 mstinyllama<html>
1 h agomodelsblocked4031027 ms—<html>
1 h agochatserver_error502266 mstinyllama<html>
1 h agomodelsblocked403990 ms—<html>
2 h agochatserver_error502254 mstinyllama<html>
2 h agomodelsblocked4031130 ms—<html>
3 h agochatserver_error502253 mstinyllama<html>
3 h agomodelsblocked4031115 ms—<html>
4 h agochatserver_error502254 mstinyllama<html>
4 h agomodelsblocked4031021 ms—<html>
5 h agochatserver_error502254 mstinyllama<html>
5 h agomodelsblocked4031148 ms—<html>
6 h agochatserver_error502253 mstinyllama<html>
6 h agomodelsblocked4031144 ms—<html>
7 h agochatserver_error502253 mstinyllama<html>
7 h agomodelsblocked4031070 ms—<html>
8 h agochatserver_error502255 mstinyllama<html>
8 h agomodelsblocked4031148 ms—<html>
9 h agochatserver_error502254 mstinyllama<html>
9 h agomodelsblocked4031127 ms—<html>
10 h agochatserver_error502253 mstinyllama<html>
10 h agomodelsblocked4031038 ms—<html>
11 h agochatserver_error502255 mstinyllama<html>
11 h agomodelsblocked4031039 ms—<html>
12 h agochatserver_error502254 mstinyllama<html>
12 h agomodelsblocked4031096 ms—<html>