Extract entities

FREE with proof-of-work · or $0.002 in USDC · POST /api/extract-entities

Pull emails, URLs, IPv4s, @mentions, and #hashtags out of free text. Send POST /api/extract-entities with the required field text and pay $0.002 per call over x402 or MPP, or call it free by solving a proof-of-work challenge. It returns a JSON object with emails, urls, mentions and hashtags.

Returns deduped lists.

Category: Text processing · Tags: extract emails urls entities nlp

TRY IN PLAYGROUND →

Parameters

NameTypeRequiredDescription
textstringyes Also accepted as content, str, string, input, body, data.

Example request

curl -i -X POST https://agent402.tools/api/extract-entities \
  -H "Content-Type: application/json" \
  -d '{"text":"ping @ada at ada@x.com see https://x.com #news"}'

Without payment this returns HTTP 402 Payment Required with the exact price for extract-entities; any x402 v2 or MPP client pays it and retries.

Example response

{
  "emails": [
    "ada@x.com"
  ],
  "urls": [
    "https://x.com"
  ],
  "mentions": [
    "@ada"
  ],
  "hashtags": [
    "#news"
  ]
}
FieldTypeAlways presentIn the example
emailsarray of stringyes1 item in the example
urlsarray of stringyes1 item in the example
mentionsarray of stringyes1 item in the example
hashtagsarray of stringyes1 item in the example

From an MCP client

catalog.call {
  "slug": "extract-entities",
  "params": {
    "text": "ping @ada at ada@x.com see https://x.com #news"
  }
}

On the hosted connector at https://agent402.tools/mcp, catalog.call runs extract-entities free (rate-limited, no wallet). Local install: npx -y agent402-mcp.

Errors and behavior

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/extract-entities", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "text": "ping @ada at ada@x.com see https://x.com #news"
  }),
});

No wallet? Pay with compute

Fetch a challenge, solve the sha256 puzzle (16 leading zero bits, a fraction of a second of CPU), and resend with the X-Pow-Solution header:

import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=extract-entities")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/extract-entities", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"text":"ping @ada at ada@x.com see https://x.com #news"}) });

Part of these workflows

Extract entities is one step in these 3 skill packs, each sold as a single call:

Related tools

Keyword extraction

FREE w/ compute · or $0.002 · POST /api/keywords

Top keywords and two-word phrases by frequency (stopwords removed). Cheap, deterministic signal for routing, tagging, an…

Readability

FREE w/ compute · or $0.001 · POST /api/readability

Flesch Reading Ease score and Flesch–Kincaid grade level for English text, plus word/sentence/syllable counts.

Case convert

FREE w/ compute · or $0.001 · POST /api/case

Convert text between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, lower, UPPER.

Count

FREE w/ compute · or $0.001 · POST /api/count

Count characters, words, lines, and (optionally) occurrences of a substring in text.

Dedupe lines

FREE w/ compute · or $0.001 · POST /api/dedupe-lines

Remove duplicate lines, preserving first-seen order. Returns the deduped text and how many were removed.

Edit distance

FREE w/ compute · or $0.001 · POST /api/levenshtein

Levenshtein edit distance between two strings, plus a 0-1 similarity ratio.