x402AgentTools

๐ŸงฒText Extractor

Scan unstructured text and extract structured entities: email addresses, URLs, IPv4 addresses, phone numbers and domains. Deduplicated, categorized, machine-ready.

Worked examples

URLs only

GET /api/v1/dev/text-extract?text=Docs%20at%20https%3A%2F%2Fdocs.example.com%2Fapi%20and%20http%3A%2F%2Fblog.example.org%3Fv%3D2%23section&what=urls

Result: 2 entities extracted

IPs in a log line

GET /api/v1/dev/text-extract?text=Connected%20to%208.8.8.8%2C%20then%20192.168.1.1%20(local)%2C%20then%202606%3Afalse%20fallback%201.1.1.1&what=ips

Result: 3 entities extracted

Machine API (x402)

$0.002 / call

This tool is also a JSON API for AI agents. Requests without payment receive 402 Payment Required plus instructions; agents pay USDC on Base via the x402 protocol โ€” no accounts, no API keys.

GET /api/v1/dev/text-extract?text=Reach%20Jane%20at%20jane.doe%40acme-corp.io%2C%20sales%40acme-corp.io%20or%20%2B49%2030%201234567.%20Site%3A%20https%3A%2F%2Facme-corp.io%2Fpricing%20and%20CDN%20151.101.1.140.%20Backup%20mail%20host%3A%20mail.acme-corp.io HTTP/1.1
Host: agenttools-hub.vercel.app

โ†’ 402 (payment required, instructions in headers)
โ†’ 200 (after X-PAYMENT header; JSON body below)

{
  "tool": "dev/text-extract",
  "input": {"text":"Reach Jane at jane.doe@acme-corp.io, sales@acme-corp.io or +49 30 1234567. Site: https://acme-corp.io/pricing and CDN 151.101.1.140. Backup mail host: mail.acme-corp.io"},
  "result": { "value": null, "answer": "" }
}

Agent docs: /llms.txt ยท OpenAPI spec ยท integration guide

About this tool

Feed it a messy email, a log file or a scraped page and get back clean, deduplicated lists of emails, URLs, IP addresses, phone numbers and domains โ€” in the response body and as JSON arrays in `result.artifacts`.

Frequently asked questions

How reliable is phone extraction?

Phones are the loosest pattern (formats vary wildly worldwide). Results are 'candidates' โ€” for decision-grade phone validation, combine with a libphonenumber-based service.

Does URL extraction catch domains without protocol?

Bare domains are matched by the separate `domains` pattern with a curated TLD list; full URLs require http/https prefixes.

Related tools