[j] jeverywordAPI · x402How Jev works ↗GitHub ↗

Text extraction with Jev

Field extraction, PII detection and exact quotes, built on TypeSafe’s Jev. Jev only answers multiple choice, so this library numbers the words of your text, lets Jev pick numbers, and returns the exact substring with its offsets and a probability.

Live demo of the jeveryword libraryNewHosted API, free to try, then pay per call with x402Hosted API: free to try, then x402

Input text

0 / 4,000
Synthetic examples provided. Your text is sent to TypeSafe when you run.
What should Jev find?
All fields are found in one request. For long text, Jev picks the sentence first and then the words.

Ready to run.

Structured output

No results yet

What Jev sees

Each word of your text gets a number. Jev answers every question with numbers, and the page copies the matching words back out of your text.

Input tokens
Estimated cost
End-to-end time
API calls

Cost at $42 / billion input tokens.
Measured for this run.

What Jev is asked Add, remove & customize fields

In the second sample, the first-name field asks for the speaker’s first/given name, excluding other people’s names, so the result is Maya and Alex is skipped. Jev receives each field’s instruction together with your text.

To add a field of your own, such as Middle name, give it a name, a JSON key and an instruction. Every value is text copied from the input, or null. Run it with Extract fields above. Your fields stay in place across the samples until you reset them.

Exact requests from your last run

The actual model, state, instructions, and choices sent to TypeSafe. API credentials are excluded.

Run an extraction to inspect the requests.

Where each value came from

Choose an extracted field to locate its source
Your original text will appear here, with the selected span highlighted.
Inspect decisions & probabilities
Run an extraction to see each search round.

Use it in your own product

Free · open source

The library

This page runs on jeveryword, an MIT-licensed JavaScript library with no dependencies. It needs a TypeSafe API key, or no key if you deploy on Vercel.

Teach your coding agent
npx skills add jkrup/jeveryword
Or add it to your code
npm install jeveryword
Quickstart on GitHub ↗
x402 · hosted API

Hosted API, paid per call with x402

The same field extraction and PII detection as an HTTP API, with no account or API key. Each request is paid in USDC over x402, and a request that fails is not charged. It suits agents that hold a wallet. The first 25 calls a day from an IP address are free, so you can try it with curl.

Pull fields out of text$0.005 per call + $0.0005 per field
ten fields from a message:
Find personal data$0.004 per 1,000 characters
$0.006 with a category for each hit
Sends the text above to the API unpaid and shows the price it quotes. No model call is made, so this is free.
How to call it ↓ Live price list (JSON) ↗

Calling the hosted API

1. Try it free with curl (no account, key or wallet)
curl https://jeveryword.vercel.app/v1/extract \
  -H 'Content-Type: application/json' \
  -d '{
    "text": "Hi, I am Maya Chen. Reach me at maya@fern.example",
    "fields": [
      {"id": "name",  "description": "The speaker full name."},
      {"id": "email", "description": "The speaker email address."}
    ]
  }'
It answers with exact substrings, offsets and a probability for each field
{
  "results": {
    "name":  { "status": "extracted", "value": "Maya Chen",
               "start": 9, "end": 18, "probability": 1 },
    "email": { "status": "extracted", "value": "maya@fern.example",
               "start": 32, "end": 49, "probability": 1 }
  },
  "calls": 1, "inputTokens": 1095, "durationMs": 418
}

For PII, post {"text": "…"} to /v1/pii. Text can be up to 4,000 characters, with up to 16 fields.

2. After the free calls, pay per call from code
npm install @x402/fetch @x402/evm viem
import { wrapFetchWithPayment } from '@x402/fetch';
import { x402Client } from '@x402/core/client';
import { ExactEvmScheme } from '@x402/evm/exact/client';
import { privateKeyToAccount } from 'viem/accounts';

const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const client = new x402Client();
client.register('eip155:*', new ExactEvmScheme(account));
// pay() behaves like fetch, but pays a 402 and retries
const pay = wrapFetchWithPayment(fetch, client);

const url = 'https://jeveryword.vercel.app/v1/extract';
const response = await pay(url, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    text,
    fields: [
      { id: 'name', description: "The speaker's full name." },
    ],
  }),
});
const { results } = await response.json();

EVM_PRIVATE_KEY is the key of a wallet holding a little USDC on Base. Each call costs a cent or less. Keep the key in an environment variable on a server, and use a wallet that only holds a small balance. Coding agents can run npx skills add jkrup/jeveryword, which includes this.