Skill: Text hygiene
POST /api/skill/text-hygieneTurn a wall of dirty text - chat logs, scraped pages, user-generated content, log dumps - into something safe to store, search, and pipe into the next step. Send POST /api/skill/text-hygiene with the required field text and pay $0.009 per call over x402 or MPP, or call it free by solving a proof-of-work challenge. It returns a JSON object with pack, args, steps and summary.
Measure first, redact PII before anything else touches the data, then dedupe, sort, extract entities, surface keywords, and grade the readability of what's left. Text hygiene skill pack: one x402 payment runs 7 underlying tools (text-stats, redact, dedupe-lines, sort-lines, extract-entities, keywords, readability); partial-success per step.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
text | string | yes | The raw text dump to clean (max 500KB) Also accepted as content, str, string, input, body, data. |
Example request
curl -i -X POST https://agent402.tools/api/skill/text-hygiene \
-H "Content-Type: application/json" \
-d '{"text":"support log dump"}'
Without payment this returns HTTP 402 Payment Required with the exact price for skill-text-hygiene; any x402 v2 or MPP client pays it and retries.
Example response
{
"pack": "text-hygiene",
"args": {
"text": "support log dump"
},
"steps": [
{
"slug": "text-stats",
"ok": true,
"result": {}
},
{
"slug": "redact",
"ok": true,
"result": {}
},
{
"slug": "dedupe-lines",
"ok": true,
"result": {}
},
{
"slug": "sort-lines",
"ok": true,
"result": {}
},
{
"slug": "extract-entities",
"ok": true,
"result": {}
},
{
"slug": "keywords",
"ok": true,
"result": {}
},
{
"slug": "readability",
"ok": true,
"result": {}
}
],
"summary": "7/7 steps succeeded"
}
| Field | Type | Always present | In the example |
|---|---|---|---|
pack | string | yes | text-hygiene |
args | object | yes | 1 field: text |
steps | array of objects | yes | 7 items in the example |
summary | string | yes | 7/7 steps succeeded |
From an MCP client
catalog.call {
"slug": "skill-text-hygiene",
"params": {
"text": "support log dump"
}
}
On the hosted connector at https://agent402.tools/mcp, catalog.call runs skill-text-hygiene free (rate-limited, no wallet). Local install: npx -y agent402-mcp.
Errors and behavior
- Arguments left out fall back to the pack's own defaults. Each step reports on its own; the call succeeds when at least one step does, and a run where every step fails is refused (400 when the input caused it, 502 otherwise).
- A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Free tier: no outbound network call leaves the server for this tool, so proof-of-work (16 leading zero bits of sha256) pays for it.
- A
GETorHEADto /api/skill/text-hygiene returns the same 402 quote, so the price can be read without a body. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB is not replayed).
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/skill/text-hygiene", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"text": "support log dump"
}),
});
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=skill-text-hygiene")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/skill/text-hygiene", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"text":"support log dump"}) });
Related tools
Skill: Convert anything to markdown
POST /api/skill/any-to-markdownConvert anything at a URL - HTML, PDF, or an image - to clean markdown. The 'I have a URL but it might be any content-ty…
Skill: API health check
POST /api/skill/api-healthIs this API endpoint healthy? Liveness check, response headers, and TLS certificate status in one pass. API health check…
Skill: API investigation
POST /api/skill/api-investigationPoint at an unknown API endpoint and figure out how to use it: auth scheme, content type, version, rate limits, OpenAPI/…
Skill: Article digest
POST /api/skill/article-digestQuick research brief on any topic - web search results plus an AI-generated answer in one pass. Article digest skill pac…
Skill: Brand protection
POST /api/skill/brand-protectionIs this domain legitimate? WHOIS age, DNS resolution, scam/phishing search results, and HTTP headers for a quick trust a…
Skill: Cheapest rail right now
POST /api/skill/cheapest-railWhere should an agent transact this minute? Live gas on Ethereum + every major L2 side by side, Base gas tiers, a fee es…