mlpeek (Tanod) JSON extraction from up to 8,000 characters of text under your JS
mlpeek (Tanod) JSON extraction from up to 8,000 characters of text under your JSON Schema: the answer always matches the schema (small open LLM on CPU, no model API). Use when an agent must turn text, such as an invoice or job post, into JSON that matches its own schema.
Answeringour last check, 2026-11-04
3 of 3checks answered this week
283 msmedian answer time
$0.005listed price per call
$0.005price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://tanod.dev/v1/text/llm-extract
| Category | Code and developer |
|---|---|
| Provider host | tanod.dev |
| Networks | eip155:137, eip155:42161, eip155:56, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-11-04 | valid payment request | 402 | $0.005 | 191 ms |
| 2026-11-03 | valid payment request | 402 | $0.005 | 304 ms |
| 2026-11-02 | valid payment request | 402 | $0.005 | 283 ms |
Example input (from the provider)
{
"body": {
"json_schema": {
"properties": {
"currency": {
"type": "string"
},
"due_date": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"total": {
"type": "number"
},
"vendor": {
"type": "string"
}
},
"required": [
"invoice_number",
"vendor",
"total",
"currency",
"due_date"
],
"type": "object"
},
"text": "Invoice INV-7 from Acme Ltd, total 120.50 EUR, due 2026-11-30."
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"json_schema": {
"additionalProperties": true,
"description": "A JSON Schema object for the answer: at most 8 KB serialised, nested at most 6 levels, local $ref only. The answer always matches it. Set maxLength / maxItems for long values (unbounded strings are cut at 300 characters and arrays at 50 items in decoding).",
"type": "object"
},
"text": {
"description": "The text to read, 1 to 8,000 characters: an invoice, job post, contact block, product page or announcement. It is treated as data, never as instructions.",
"maxLength": 8000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text",
"json_schema"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}