release / v1.0 · october 2026
mivia-small-json.
One line of loose text in, one schema-checked record out, over REST or MCP.
- 11 schema classes
- <2 GB ram
- <12 ms p95 cpu inference
- 0 gpu
01 / what it does
Feed it almost anything.
An issue, a log line, a commit, a pull request, an agent tool call, a compiler diagnostic, a diff, or a review comment. A learned router picks the schema, extractors fill the fields, and you get one validated JSON object per line. Multi-line streams and stack traces stay attached to their parent record. Need a shape we do not ship? Register your own schema and the router picks it up without retraining.

02 / call it
Python, typescript, your own schema.
import httpx
res = httpx.post(
"https://api.mivia.app/v1/models/mivia-small-json/extract",
headers={"Authorization": "Bearer $MIVIA_KEY"},
json={"text": "ERROR [auth]: token expired"},
)
rec = res.json()["records"][0]
# {"result": {"type": "log_event", "level": "ERROR",
# "component": "auth", "message": "token expired"},
# "meta": {"valid": true, "routed_by": "model"}}const res = await fetch(
"https://api.mivia.app/v1/models/mivia-small-json/extract", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MIVIA_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "ERROR [auth]: token expired" }),
});
const { records } = await res.json();
// records[0].meta: { valid: true, routed_by: "model" }{
"name": "deploy_event",
"fields": {
"service": "string",
"env": {"enum": ["prod", "staging"]},
"sha": {"format": "git-sha"}
}
}
# then /v1/models/mivia-small-json/structure
# with {"schema": "deploy_event", "text": "..."}03 / run it
Hosted first, yours if you want.
The hosted endpoint pair is the fastest path: REST and MCP, one key. The model itself also ships as a standalone service you can run on your own hardware.
