Text to JSON extraction API: pull named fields from messy text

$0.01 per call · failed calls are never charged · no account or subscription: pay per call with a card key or USDC

Pull named fields out of unstructured text (emails, invoices, listings, bios) and get them back as a JSON object, with null for anything not present. Use to turn messy text into structured data for an agent.

When to use it

Run it free (25 free calls) Buy credits by card (from $1) Example result (JSON)

Try it with your own inputs

Source text, up to 12,000 characters
Comma-separated field names to extract (1-30)

Uses one of your 25 free calls. Nothing is charged, and a call that fails is not counted.

Inputs

NameTypeDescription
text (required)stringSource text, up to 12,000 characters
fields (required)stringComma-separated field names to extract (1-30)

Request

Over HTTP, with a card key from /credits:

curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/ai/extract-json?text=Invoice%201043%20from%20Acme%20AB%2C%20due%202026-11-01%2C%20total%202%20450%20SEK%20incl.%20VAT.&fields=invoice_number%2Ccompany%2Cdue_date%2Ctotal%2Ccurrency"

Or one of your 25 free calls, no key:

curl "https://tools.funwords.eu/ai/extract-json?text=Invoice%201043%20from%20Acme%20AB%2C%20due%202026-11-01%2C%20total%202%20450%20SEK%20incl.%20VAT.&fields=invoice_number%2Ccompany%2Cdue_date%2Ctotal%2Ccurrency&trial=1"

Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.

Example result

{
  "data": {
    "invoice_number": "1043",
    "company": "Acme AB",
    "due_date": "2026-11-01",
    "total": 2450,
    "currency": "SEK"
  },
  "missing": [],
  "model": "@cf/meta/llama-3.1-8b-instruct-fp8"
}

From an AI agent (MCP)

Add the MCP server to Claude, Cursor or any MCP client. This tool is ai_extract_json, and the first 25 successful calls are free:

https://tools.funwords.eu/mcp

Questions

What if a field is not in the text?

It is null and listed under missing; the model is told never to guess.

How do I pay?

Each successful call costs $0.01; failed calls are not charged. The first 25 calls are free. Then pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.

Related tools