Agent402 / tools / text-chunk

Text chunk (RAG)

FREE with proof-of-work · or $0.001 in USDC · POST /api/text-chunk

Split text into overlapping chunks for RAG ingestion - by characters (default) or by exact LLM tokens. Returns the chunks plus offsets. Deterministic, no model needed.

TRY IN PLAYGROUND →

Input

FieldTypeDescription
text *stringText to split into chunks (max 500KB)
sizenumberchunk size (default 800)
overlapnumberoverlap between chunks (default 0)
unitstringchars (default) | tokens
modelstringtokenizer model when unit=tokens (default gpt-4o)

Example output

{
  "unit": "chars",
  "size": 120,
  "overlap": 20,
  "count": 4,
  "chunks": [
    "The x402 protocol lets an agent pay for a single request. A server answers with payment terms, the agent signs a stablec",
    "gent signs a stablecoin authorization, and the request is retried with the payment attached. Payment settles on chain, s"
  ]
}

Try it - see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/text-chunk \
  -H "Content-Type: application/json" \
  -d '{"text":"The x402 protocol lets an agent pay for a single request. A server answers with payment terms, the agent signs a stablecoin authorization, and the request is retried with the payment attached. Payment settles on chain, so the server needs no account and the agent needs no subscription. The x402 protocol prices each request on its own, and payment terms travel with the request itself.","size":120,"overlap":20,"unit":"chars"}'

The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:

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";
import { metaTitle, metaDescription } from "./seo-meta.js";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/text-chunk", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "text": "The x402 protocol lets an agent pay for a single request. A server answers with payment terms, the agent signs a stablecoin authorization, and the request is retried with the payment attached. Payment settles on chain, so the server needs no account and the agent needs no subscription. The x402 protocol prices each request on its own, and payment terms travel with the request itself.",
    "size": 120,
    "overlap": 20,
    "unit": "chars"
  }),
});

No wallet? Pay with compute

This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), 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=text-chunk")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/text-chunk", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"text":"The x402 protocol lets an agent pay for a single request. A server answers with payment terms, the agent signs a stablecoin authorization, and the request is retried with the payment attached. Payment settles on chain, so the server needs no account and the agent needs no subscription. The x402 protocol prices each request on its own, and payment terms travel with the request itself.","size":120,"overlap":20,"unit":"chars"}) });

Related tools

Slugify

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

Turn any text into a URL-safe slug (lowercase, hyphenated, diacritics stripped).

try in playground →

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.

try in playground →

Text statistics

FREE w/ compute · or $0.001 · POST /api/text-stats

Characters, words, sentences, paragraphs, average word length, reading time, and an LLM token estimate for any text.

try in playground →