Textokit x402 tools
payment-ready until 2026-11-03
17 pay-per-call endpoints on Base (USDC, x402 v2, Coinbase facilitator): web page to Markdown reader, FX and crypto rates, Argentine CUIT/CUIL validation, addresses, official gazette search and BCRA indicators, Spanish translation, formal letters and evidence-bound summaries, plus an x402 ping and x402 adoption stats.
Compare: all exchange rate APIs
Call it x402 v2
x402 v2
- Base URL
- https://tienda.textokit.store
- Payment
- x402 v2, header channel
$ curl -i -X POST -H 'Content-Type: application/json' -d '"{}"' 'https://tienda.textokit.store/api/bcra-indicadores' An unpaid request returns HTTP 402 with the payment terms. Sign a payment authorization, then retry with the PAYMENT-SIGNATURE header.
Endpoints 17 paid routes on tienda.textokit.store
9 more in Example 402 response
Prices as captured in the 402 response: median $0.002 across the 17 endpoints, unchanged since first capture.
Example 402 response
Endpoints and prices
| Method | Path | Description | Price | Network | Asset | 402 channel | Captured |
|---|---|---|---|---|---|---|---|
| POST | / | Argentina central bank (BCRA) statistics: one page of monetary variables or dated observations of a series (interest rates, reserves, exchange rate, inflation indicators) from BCRA's public API v4.0, with source URL and read time. Use this when an agent needs official Argentine macro data with provenance. JSON, no model inference. Free sample at /api/bcra-indicadores/sample. | $0.002 | Base | USDC | header | since 10-27 |
| POST | / | Formal letter in Argentine Spanish drafted from the facts you supply: claim, demand or request to a company or person, with sender, recipient, subject, facts, what you ask for and an optional response deadline in days. Use this when an agent must produce a firm, courteous letter for an Argentine consumer or business dispute. Returns the letter as text; it does not verify facts or give legal advice. Free sample at /api/cartas-ar/sample. | $0.005 | Base | USDC | header | since 10-27 |
| POST | / | Compare two strings literally, with no normalization and no inference: equality, lengths, and the first difference with line, column, Unicode code point and UTF-16 offset. Up to 20,000 UTF-16 units each. Use this when an agent must check that a delivered text matches the agreed text exactly, or locate where two versions diverge. Deterministic JSON. Free sample at /api/comparar-textos/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Crypto price in USD for bitcoin, ethereum, solana and up to 20 coins per call by CoinGecko id: spot price, market cap, 24h change, provider update time and source URL. Use this when an agent needs a current BTC, ETH or token price before a quote, a conversion, a report or an alert, with a citation it can re-check. Live from CoinGecko's public API, no key, JSON, no model inference. Free sample at /api/crypto-prices/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Validate an Argentine CUIT or CUIL tax id: format and check-digit verification, normalized and formatted forms, declared type (CUIT or CUIL). Use this when an agent collects Argentine customer or supplier ids and must reject typos before invoicing, KYC or onboarding. Mathematical validation only: it does not confirm registration or ownership. JSON, no model inference. Free sample at /api/cuit-ar/sample. Also works as Argentina TIN or taxpayer ID validation. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Hash sha256, sha512, sha1 or md5, HMAC, JWT decode (header, payload, expiry, optional HS256 check), UUID v4, base64 encode and decode, URL parse, time zone convert and unix to ISO: one deterministic op per call. Use this when an agent needs a verifiable transform without shipping its own library. Pure Node, no upstream, no model inference, nothing stored, JSON out. Free sample at /api/dev-utils/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Argentine street address lookup: candidate matches from the official Georef API (street, number, locality, department, province, coordinates) with the source record, URL and read time; optional province id narrows the search. Use this when an agent must normalize or geocode an address in Argentina before shipping, invoicing or mapping. No uniqueness guarantee; JSON, no model inference. Free sample at /api/direcciones-ar/sample. | $0.002 | Base | USDC | header | since 10-27 |
| POST | / | Returns Argentine peso quotes for the official, blue, MEP and CCL dollar from DolarAPI, including buy and sell values, provider update timestamps, read time and source evidence. JSON response. Quotes may be delayed and are not independently verified. Free documentary example at /api/dolar-ar/sample. | $0.002 | Base | USDC | header | since 10-27 |
| POST | / | FX rates and currency conversion reference: daily exchange rates for up to 20 currencies against one base (USD, EUR, GBP, JPY, BRL, MXN, ARS and about 160 more) with rate, reference date and source URL from Frankfurter (central-bank data, MIT licence). Use this when an agent needs an official-style exchange rate to price, invoice or convert amounts and must cite where it came from. Daily rates, not intraday; JSON, no model inference. Free sample at /api/fx-rates/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Argentina official gazette (Boletin Oficial) keyword search returning literal excerpts of matching notices with dates and source URLs; an optional date limits the search to that day's notices. Use this when an agent needs primary-source evidence of an Argentine regulation, decree, resolution or notice. No completeness guarantee and no legal interpretation; if the official search cannot be verified the call fails and is not settled. Free sample at /api/normativa-ar/sample. | $0.005 | Base | USDC | header | since 10-27 |
| POST | / | Polymarket markets and prediction market odds: one page of public markets from the Gamma API (text and status filters, order by volume or liquidity, outcome prices) or a wallet's positions and activity from the Data API, with source URL and read time. Use this when an agent needs prediction-market odds, event lists or a trader's positions as evidence for a forecast or a report. JSON, no model inference. Free sample at /api/polymarket-markets/sample. | $0.002 | Base | USDC | header | since 10-27 |
| POST | / | Summarize text with evidence: send 1 to 4,000 characters in English or Spanish and get a short summary plus 1 to 3 supporting quotes verified as exact substrings of your text, with a limitations note. Use this when an agent must condense an article, email or document and needs citations it can check before putting them in a report. Works only on the supplied text, no web retrieval, JSON out. Free sample at /api/source-bounded-summary/sample. | $0.002 | Base | USDC | header | since 10-27 |
| POST | / | Translate or adapt text of up to 6,000 characters into natural Spanish as spoken in Argentina and the Rio de la Plata (voseo), keeping names, numbers, links and formatting. Use this when an agent needs Spanish copy for Argentine or Uruguayan users, such as support replies, product listings, notifications or marketing, instead of neutral or European Spanish. Optional tone: formal, neutral or casual. Any input language; JSON output. Free sample at /api/translate-es/sample. | $0.003 | Base | USDC | header | since 10-27 |
| POST | / | Read URL content: extract the readable plain text and title of any public web page, with scripts, styles and navigation removed, plus character count, truncation flags and read time. Use this when an agent needs the text of an article, doc or product page to quote, classify or summarize, without an API key. Static HTML only (no JavaScript, no login), up to 20,000 characters, JSON out. For Markdown output use /api/web-read. Free sample at /api/url-text/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Web page to Markdown or plain text: fetch one public URL and get its title and main content with scripts, styles, navigation and ads stripped, plus character count and truncation flags. Use this when an agent needs to read a URL for research, RAG, monitoring or summarization without an API key or a browser. One HTTPS fetch of static HTML (no JavaScript rendering, no login pages), up to 20,000 characters, JSON out. Free sample at /api/web-read/sample. | $0.001 | Base | USDC | header | since 10-27 |
| POST | / | Match receipt claims to individual Base USDC Transfer logs in RPC records you supply. Returns unmatched or ambiguous claims, duplicate event counts and declared-wallet exclusions. No live RPC verification or purchase attribution. Send a JSON-string bundle containing tape and evidence. Historical Bazaar snapshots remain available with operation=market_stats. | $0.01 | Base | USDC | header | since 10-27 |
| POST | / | x402 payment test and ping: one call with no required parameters returns server time (ISO 8601 and Unix ms), a request id, the seller payTo, chain id and an echo of your optional text, only after a real settlement. Use this when an agent needs to prove its payment flow works, measure round-trip latency or run a cheap scheduled canary against a live seller. No upstream, no model inference; paid round trip 1 to 2 s. Free sample at /api/x402-ping/sample. | $0.001 | Base | USDC | header | since 10-27 |
Payment evidence
402 payload captured at . Check evidence JSON · Measurement methodology.
First of 17 payloads captured by the monitor.
114 lines, scroll inside
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "3000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/translate-es",
"tags": [],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Translate or adapt text of up to 6,000 characters into natural Spanish as spoken in Argentina and the Rio de la Plata (voseo), keeping names, numbers, links and formatting. Use this when an agent needs Spanish copy for Argentine or Uruguayan users, such as support replies, product listings, notifications or marketing, instead of neutral or European Spanish. Optional tone: formal, neutral or casual. Any input language; JSON output. Free sample at /api/translate-es/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"text": "Hello! Your order ships tomorrow.",
"tone": "neutral"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"model": "gpt-6-sol",
"translation": "¡Hola! Tu pedido sale mañana."
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 6000,
"minLength": 1,
"description": "Text to translate into Rioplatense Spanish"
},
"tone": {
"enum": [
"formal",
"neutral",
"casual"
],
"type": "string",
"description": "Tone of the translation: formal, neutral (default) or casual"
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"translation": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
} Other captured 402 responses (16)
Captured payload 2 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "2000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/bcra-indicadores",
"tags": [
"argentina",
"central-bank",
"macro",
"interest-rates",
"data"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Argentina central bank (BCRA) statistics: one page of monetary variables or dated observations of a series (interest rates, reserves, exchange rate, inflation indicators) from BCRA's public API v4.0, with source URL and read time. Use this when an agent needs official Argentine macro data with provenance. JSON, no model inference. Free sample at /api/bcra-indicadores/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"limit": 3,
"resource": "serie",
"idVariable": 1
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"items": [
{
"fecha": "2025-12-31",
"valor": 123,
"idVariable": 1
}
],
"scope": "Illustrative fixture with simulated values, pagination and timestamp; not a live BCRA reading.",
"readAt": "2026-01-01T00:00:00.000Z",
"source": "Banco Central de la República Argentina, public statistics API v4.0",
"resource": "serie",
"returned": 1,
"sourceUrl": "https://api.bcra.gob.ar/estadisticas/v4.0/monetarias/1?limit=3&offset=0",
"requestedLimit": 3,
"sourceReturned": 1,
"requestedOffset": 0,
"sourcePagination": {
"count": 1,
"limit": 3,
"offset": 0
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"resource"
],
"properties": {
"desde": {
"type": "string",
"maxLength": 10,
"minLength": 10,
"description": "Optional serie-only start date, YYYY-MM-DD; must not exceed hasta."
},
"hasta": {
"type": "string",
"maxLength": 10,
"minLength": 10,
"description": "Optional serie-only end date, YYYY-MM-DD."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Requested page size, 1–20; defaults to 5."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Optional lista-only text filter within the received page; matches ID, description and category without case or accent distinctions."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Requested page offset; defaults to 0."
},
"resource": {
"enum": [
"lista",
"serie"
],
"type": "string",
"description": "lista returns variables; serie returns observations for one variable."
},
"idVariable": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Required for serie; forbidden for lista. Positive BCRA variable ID."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"scope": {
"type": "string"
},
"readAt": {
"type": "string"
},
"source": {
"type": "string"
},
"resource": {
"type": "string"
},
"returned": {
"type": "number"
},
"sourceUrl": {
"type": "string"
},
"requestedLimit": {
"type": "number"
},
"sourceReturned": {
"type": "number"
},
"requestedOffset": {
"type": "number"
},
"sourcePagination": {
"type": "object"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 3 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "5000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/cartas-ar",
"tags": [
"argentina",
"letter",
"legal",
"spanish",
"consumer"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Formal letter in Argentine Spanish drafted from the facts you supply: claim, demand or request to a company or person, with sender, recipient, subject, facts, what you ask for and an optional response deadline in days. Use this when an agent must produce a firm, courteous letter for an Argentine consumer or business dispute. Returns the letter as text; it does not verify facts or give legal advice. Free sample at /api/cartas-ar/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"asunto": "Reclamo por entrega pendiente",
"hechos": "El 8 de octubre de 2026 consulté por la entrega y no recibí respuesta. El 2 de octubre de 2026 compré una mesa por $85.000. La entrega acordada era el 7 de octubre de 2026 y ese día no recibí la mesa.",
"plazoDias": 5,
"remitente": "Ana Pérez",
"solicitud": "Solicito que informen una fecha concreta de entrega de la mesa.",
"lugarYFecha": "Rosario, 13 de octubre de 2026",
"destinatario": "Comercio Los Aromos"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"carta": "Rosario, 13 de octubre de 2026\n\nComercio Los Aromos\n\nReferencia: Reclamo por entrega pendiente\n\nMe dirijo a ustedes para presentar un reclamo por la entrega pendiente de una mesa.\n\nEl 2 de octubre de 2026 compré una mesa por $85.000. La entrega acordada era el 7 de octubre de 2026 y ese día no recibí la mesa. El 8 de octubre de 2026 consulté por la entrega y no recibí respuesta.\n\nSolicito que informen una fecha concreta de entrega de la mesa. Solicito una respuesta en un plazo de 5 días.\n\nAtentamente,\n\nAna Pérez",
"model": "gpt-6-sol",
"alcance": "Borrador redactado con un modelo a partir de los datos suministrados. No verifica hechos ni determina derechos, plazos legales o efectos jurídicos. Revisá el texto antes de usarlo."
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"remitente",
"destinatario",
"lugarYFecha",
"asunto",
"hechos",
"solicitud"
],
"properties": {
"tipo": {
"enum": [
"reclamo",
"intimacion",
"solicitud"
],
"type": "string",
"description": "Tipo de carta; si se omite, se usa reclamo. No determina efectos jurídicos."
},
"asunto": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Asunto que debe figurar en la referencia de la carta"
},
"hechos": {
"type": "string",
"maxLength": 6000,
"minLength": 1,
"description": "Hechos aportados para redactar el cuerpo; se ordenan cronológicamente cuando los datos lo permiten"
},
"plazoDias": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Plazo solicitado de respuesta en días. No determina un plazo legal ni una fecha de vencimiento."
},
"remitente": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Nombre o identificación que debe figurar en la firma"
},
"solicitud": {
"type": "string",
"maxLength": 3000,
"minLength": 1,
"description": "Petición concreta y condiciones aportadas por el comprador"
},
"lugarYFecha": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Lugar y fecha suministrados por el comprador"
},
"destinatario": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Persona u organización destinataria"
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"carta": {
"type": "string"
},
"model": {
"type": "string"
},
"alcance": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 4 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/comparar-textos",
"tags": [
"diff",
"text",
"compare",
"qa",
"deterministic"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Compare two strings literally, with no normalization and no inference: equality, lengths, and the first difference with line, column, Unicode code point and UTF-16 offset. Up to 20,000 UTF-16 units each. Use this when an agent must check that a delivered text matches the agreed text exactly, or locate where two versions diverge. Deterministic JSON. Free sample at /api/comparar-textos/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"entrega": "😀b",
"original": "😀a"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"equal": false,
"scope": "Compara literalmente las cadenas recibidas, sin normalización ni inferencia. No verifica bytes de archivos, hechos ni aceptación de una entrega.",
"lengths": {
"entrega": {
"utf16": 3,
"codePoints": 2
},
"original": {
"utf16": 3,
"codePoints": 2
}
},
"firstDifference": {
"line": 1,
"column": 2,
"entrega": {
"character": "b",
"codePoint": "U+0062"
},
"original": {
"character": "a",
"codePoint": "U+0061"
},
"utf16Offset": 2,
"codePointIndex": 1
},
"positionConvention": {
"lineBase": 1,
"columnBase": 1,
"columnUnit": "Unicode code points",
"lineSeparator": "LF",
"utf16OffsetBase": 0,
"codePointIndexBase": 0
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"original",
"entrega"
],
"properties": {
"entrega": {
"type": "string",
"maxLength": 20000,
"description": "Delivered text; handler limit: 20000 UTF-16 units"
},
"original": {
"type": "string",
"maxLength": 20000,
"description": "Original text; handler limit: 20000 UTF-16 units"
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"equal": {
"type": "boolean"
},
"scope": {
"type": "string"
},
"lengths": {
"type": "object"
},
"firstDifference": {
"type": "object"
},
"positionConvention": {
"type": "object"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 5 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/crypto-prices",
"tags": [
"crypto",
"prices",
"spot-price",
"coingecko",
"market-data"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Crypto price in USD for bitcoin, ethereum, solana and up to 20 coins per call by CoinGecko id: spot price, market cap, 24h change, provider update time and source URL. Use this when an agent needs a current BTC, ETH or token price before a quote, a conversion, a report or an alert, with a citation it can re-check. Live from CoinGecko's public API, no key, JSON, no model inference. Free sample at /api/crypto-prices/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"coins": "bitcoin,ethereum"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"items": [
{
"id": "bitcoin",
"priceUsd": 123,
"marketCapUsd": 456,
"sourceUpdatedAt": null,
"change24hPercent": -2
}
],
"scope": "Illustrative fixture with simulated values and timestamp; not a live market reading.",
"readAt": "2026-01-01T00:00:00.000Z",
"source": "CoinGecko public API",
"currency": "usd",
"sourceUrl": "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_market_cap=true&include_24hr_change=true&include_last_updated_at=true"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"coins"
],
"properties": {
"coins": {
"type": "string",
"maxLength": 1619,
"minLength": 1,
"description": "Comma-separated list of 1–20 distinct lowercase CoinGecko IDs, such as bitcoin,ethereum. Symbols are not supported."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"scope": {
"type": "string"
},
"readAt": {
"type": "string"
},
"source": {
"type": "string"
},
"currency": {
"type": "string"
},
"sourceUrl": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 6 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/cuit-ar",
"tags": [
"argentina",
"cuit",
"tax-id",
"validation",
"kyc"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Validate an Argentine CUIT or CUIL tax id: format and check-digit verification, normalized and formatted forms, declared type (CUIT or CUIL). Use this when an agent collects Argentine customer or supplier ids and must reject typos before invoicing, KYC or onboarding. Mathematical validation only: it does not confirm registration or ownership. JSON, no model inference. Free sample at /api/cuit-ar/sample. Also works as Argentina TIN or taxpayer ID validation.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"type": "CUIT",
"identifier": "20-12345678-6"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"type": "CUIT",
"scope": "La comprobación de formato y dígito no acredita asignación, titularidad, inscripción ni vigencia. CUIT y CUIL comparten formato y algoritmo; el tipo declarado no está confirmado.",
"errors": [],
"formatted": "20-12345678-6",
"typeBasis": "callerDeclaration",
"normalized": "20123456786",
"formatValid": true,
"checksumValid": true,
"requestedType": "CUIT",
"typeConfirmed": false,
"providedCheckDigit": 6,
"publicVerification": {
"sources": [],
"performed": false
},
"mathematicallyValid": true,
"calculatedCheckDigit": 6
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"identifier"
],
"properties": {
"type": {
"enum": [
"auto",
"CUIT",
"CUIL"
],
"type": "string",
"description": "Tipo declarado; auto deja el tipo sin determinar."
},
"identifier": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Once dígitos o formato XX-XXXXXXXX-X."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"scope": {
"type": "string"
},
"errors": {
"type": "array"
},
"formatted": {
"type": "string"
},
"typeBasis": {
"type": "string"
},
"normalized": {
"type": "string"
},
"formatValid": {
"type": "boolean"
},
"checksumValid": {
"type": "boolean"
},
"requestedType": {
"type": "string"
},
"typeConfirmed": {
"type": "boolean"
},
"providedCheckDigit": {
"type": "number"
},
"publicVerification": {
"type": "object"
},
"mathematicallyValid": {
"type": "boolean"
},
"calculatedCheckDigit": {
"type": "number"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 7 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "2000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/dolar-ar",
"tags": [
"argentina",
"dolar",
"exchange-rate",
"fx",
"latam"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Returns Argentine peso quotes for the official, blue, MEP and CCL dollar from DolarAPI, including buy and sell values, provider update timestamps, read time and source evidence. JSON response. Quotes may be delayed and are not independently verified. Free documentary example at /api/dolar-ar/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"scope": "Cotizaciones publicadas por DolarAPI. La hora de lectura y la fecha de actualización de cada registro son distintas; no garantiza precios en tiempo real ni confirma datos con otra fuente.",
"quotes": [
{
"casa": "oficial",
"venta": 1535,
"compra": 1485,
"moneda": "USD",
"nombre": "Oficial",
"fechaActualizacion": "2026-10-09T18:55:00.000Z"
},
{
"casa": "blue",
"venta": 1540,
"compra": 1520,
"moneda": "USD",
"nombre": "Blue",
"fechaActualizacion": "2026-10-11T21:00:00.000Z"
},
{
"casa": "bolsa",
"venta": 1542.9,
"compra": 1535.9,
"moneda": "USD",
"nombre": "Bolsa",
"fechaActualizacion": "2026-10-11T21:00:00.000Z"
},
{
"casa": "contadoconliqui",
"venta": 1606.6,
"compra": 1605.5,
"moneda": "USD",
"nombre": "Contado con liquidación",
"fechaActualizacion": "2026-10-11T21:00:00.000Z"
}
],
"readAt": "2026-10-12T04:58:37.706831+00:00",
"source": "DolarAPI",
"evidence": {
"response": "evidence/source-20261012T045837356753Z/response.body",
"responseBytes": 1227,
"responseSha256": "828b819ac929a1e8e262107e4f16243f1c1877ab8cc1b2df94cf6b4923761d04"
},
"quoteAges": {
"scope": "Tiempo entre la actualización declarada por el proveedor y la lectura. No confirma vigencia del precio ni mide la demora posterior a esa lectura.",
"quotes": [
{
"casa": "oficial",
"sourceUpdatedAt": "2026-10-09T18:55:00.000Z",
"ageAtReadSeconds": 209017.706
},
{
"casa": "blue",
"sourceUpdatedAt": "2026-10-11T21:00:00.000Z",
"ageAtReadSeconds": 28717.706
},
{
"casa": "bolsa",
"sourceUpdatedAt": "2026-10-11T21:00:00.000Z",
"ageAtReadSeconds": 28717.706
},
{
"casa": "contadoconliqui",
"sourceUpdatedAt": "2026-10-11T21:00:00.000Z",
"ageAtReadSeconds": 28717.706
}
],
"readAt": "2026-10-12T04:58:37.706831+00:00"
},
"sourceUrl": "https://dolarapi.com/v1/dolares"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"scope": {
"type": "string"
},
"quotes": {
"type": "array"
},
"readAt": {
"type": "string"
},
"source": {
"type": "string"
},
"evidence": {
"type": "object"
},
"quoteAges": {
"type": "object"
},
"sourceUrl": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 8 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/dev-utils",
"tags": [
"hash",
"hmac",
"jwt",
"uuid",
"developer-tools"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Hash sha256, sha512, sha1 or md5, HMAC, JWT decode (header, payload, expiry, optional HS256 check), UUID v4, base64 encode and decode, URL parse, time zone convert and unix to ISO: one deterministic op per call. Use this when an agent needs a verifiable transform without shipping its own library. Pure Node, no upstream, no model inference, nothing stored, JSON out. Free sample at /api/dev-utils/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"op": "hash",
"value": "hello world",
"algorithm": "sha256"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"op": "hash",
"hex": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
"base64": "uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=",
"readAt": "2026-10-16T06:29:30.955Z",
"algorithm": "sha256",
"inputLength": 11
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"enum": [
"hash",
"hmac",
"jwt_decode",
"uuid4",
"base64_encode",
"base64_decode",
"url_parse",
"tz_convert",
"unix_to_iso"
],
"type": "string",
"description": "Operation to run."
},
"to": {
"type": "string",
"maxLength": 64,
"description": "IANA target time zone for tz_convert (default UTC)."
},
"from": {
"type": "string",
"maxLength": 64,
"description": "IANA source time zone for tz_convert (default UTC)."
},
"value": {
"type": "string",
"maxLength": 20000,
"description": "Input text, token, URL, timestamp or local datetime (depends on op)."
},
"secret": {
"type": "string",
"maxLength": 4096,
"description": "Secret for hmac or for optional HS256 verification in jwt_decode."
},
"algorithm": {
"enum": [
"md5",
"sha1",
"sha256",
"sha512",
"sha3-256"
],
"type": "string",
"description": "Hash algorithm for hash and hmac (default sha256)."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"op": {
"type": "string"
},
"hex": {
"type": "string"
},
"base64": {
"type": "string"
},
"readAt": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"inputLength": {
"type": "number"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 9 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "2000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/direcciones-ar",
"tags": [
"argentina",
"address",
"geocoding",
"georef",
"latam"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Argentine street address lookup: candidate matches from the official Georef API (street, number, locality, department, province, coordinates) with the source record, URL and read time; optional province id narrows the search. Use this when an agent must normalize or geocode an address in Argentina before shipping, invoicing or mapping. No uniqueness guarantee; JSON, no model inference. Free sample at /api/direcciones-ar/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"limit": 3,
"direccion": "Av. Corrientes 1234",
"provinciaId": "02"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"fuente": {
"url": "https://apis.datos.gob.ar/georef/api/direcciones?direccion=Av.+Corrientes+1234&max=3&provincia=02",
"consultadoEn": "2026-10-12T10:46:35.433934+00:00"
},
"direcciones": [
{
"piso": null,
"calle": {
"id": "0200701001185",
"nombre": "AV CORRIENTES",
"categoria": "AV"
},
"altura": {
"valor": 1234,
"unidad": null
},
"provincia": {
"id": "02",
"nombre": "Ciudad Autónoma de Buenos Aires"
},
"ubicacion": {
"lat": -34.60385632930893,
"lon": -58.38419018127011
},
"departamento": {
"id": "02007",
"nombre": "Comuna 1"
},
"nomenclatura": "AV CORRIENTES 1234, Comuna 1, Ciudad Autónoma de Buenos Aires",
"calle_cruce_1": {
"id": null,
"nombre": null,
"categoria": null
},
"calle_cruce_2": {
"id": null,
"nombre": null,
"categoria": null
},
"localidad_censal": {
"id": "02000010",
"nombre": "Ciudad Autónoma de Buenos Aires"
}
}
]
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"direccion"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "Maximum returned candidates, from 1 to 10; defaults to 5."
},
"direccion": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Address text, from 3 to 200 characters. Locality text alone may not restrict results."
},
"provinciaId": {
"type": "string",
"pattern": "^[0-9]{2}$",
"maxLength": 2,
"minLength": 2,
"description": "Optional two-digit province identifier, preserving leading zeros. Example: 02 for CABA."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"fuente": {
"type": "object"
},
"direcciones": {
"type": "array"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 10 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/fx-rates",
"tags": [
"fx",
"forex",
"exchange-rate",
"currency",
"frankfurter"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "FX rates and currency conversion reference: daily exchange rates for up to 20 currencies against one base (USD, EUR, GBP, JPY, BRL, MXN, ARS and about 160 more) with rate, reference date and source URL from Frankfurter (central-bank data, MIT licence). Use this when an agent needs an official-style exchange rate to price, invoice or convert amounts and must cite where it came from. Daily rates, not intraday; JSON, no model inference. Free sample at /api/fx-rates/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"base": "USD",
"quotes": "EUR,GBP,BRL,ARS,MXN,JPY"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"base": "USD",
"dates": {
"ARS": "2026-10-15",
"BRL": "2026-10-15",
"EUR": "2026-10-16",
"GBP": "2026-10-16",
"JPY": "2026-10-16",
"MXN": "2026-10-16"
},
"rates": {
"ARS": 1512.47,
"BRL": 5.0379,
"EUR": 0.89273,
"GBP": 0.75433,
"JPY": 158.22,
"MXN": 18.471
},
"scope": "Daily reference rates, not intraday quotes; each rate carries its own reference date.",
"readAt": "2026-10-16T06:29:31.190Z",
"sources": [
{
"url": "https://api.frankfurter.dev/v2/rates?base=USD",
"date": "2026-10-16",
"name": "Frankfurter v2 (central-bank reference rates)",
"license": "MIT"
}
],
"degraded": false,
"unavailable": []
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"properties": {
"base": {
"type": "string",
"default": "USD",
"maxLength": 3,
"description": "Base currency, ISO 4217 (default USD)."
},
"quotes": {
"type": "string",
"default": "EUR,GBP,BRL,ARS,MXN,JPY",
"maxLength": 120,
"description": "Comma-separated quote currencies, 1 to 20 ISO 4217 codes."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"base": {
"type": "string"
},
"dates": {
"type": "object"
},
"rates": {
"type": "object"
},
"scope": {
"type": "string"
},
"readAt": {
"type": "string"
},
"sources": {
"type": "array"
},
"degraded": {
"type": "boolean"
},
"unavailable": {
"type": "array"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 11 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "5000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/normativa-ar",
"tags": [
"argentina",
"regulation",
"official-gazette",
"legal",
"search"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Argentina official gazette (Boletin Oficial) keyword search returning literal excerpts of matching notices with dates and source URLs; an optional date limits the search to that day's notices. Use this when an agent needs primary-source evidence of an Argentine regulation, decree, resolution or notice. No completeness guarantee and no legal interpretation; if the official search cannot be verified the call fails and is not settled. Free sample at /api/normativa-ar/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"limit": 2,
"query": "monotributo"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"note": "Real output of this route for the input example, trimmed to one notice (captured 2026-10-21).",
"query": "monotributo",
"scope": "Resultados de la primera respuesta de búsqueda avanzada oficial, en su orden original. Cada fragmento es literal del texto extraído de una página leída. No acredita exhaustividad ni vigencia normativa.",
"search": {
"url": "https://www.boletinoficial.gob.ar/busquedaAvanzada/realizarBusqueda",
"type": "Avanzada",
"method": "POST",
"readAt": "2026-10-21T04:19:03.507094+00:00",
"sections": [
1,
2,
3
]
},
"partial": false,
"results": [
{
"url": "https://www.boletinoficial.gob.ar/detalleAviso/primera/5217865/20200320?busqueda=1&suplemento=1",
"date": "2020-03-20",
"title": "MINISTERIO DE DESARROLLO SOCIAL — Resolución 121/2020",
"readAt": "2026-10-21T04:19:03.805640+00:00",
"section": "Primera sección",
"evidence": {
"html": "evidence/detail-20261021T041903509965Z/response.html",
"text": "evidence/detail-20261021T041903509965Z/extracted.txt",
"htmlSha256": "fd716bfe8fdb7f96ba6b9e4d2f48b35d89b3427e140bf325d177d01ded16af4e",
"offsetUnit": "Unicode code points",
"textSha256": "3dafb61fffa22142c1a4bcb2dff414da596229caba038d374e6fda8cc23eeab0",
"fragmentEnd": 16053,
"fragmentStart": 15827
},
"fragment": "• Trabajadores independientes que se encuentren inscriptos en el Monotributo Social, Monotributo autónomo categoría A, Trabajador independiente promovido (Ley 25.656, Decreto No 1/2010, y Resolución General AFIP No 4309/2018)."
}
],
"failedReadings": [],
"requestedLimit": 1
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"type": "string",
"maxLength": 10,
"minLength": 10,
"description": "Opcional: fecha de publicación YYYY-MM-DD para activar el modo diario; debe ser una fecha real. Omitir para buscar por palabra clave sin fecha."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Máximo de avisos a leer; predeterminado: 3"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Palabra clave o texto de búsqueda no vacío"
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"note": {
"type": "string"
},
"query": {
"type": "string"
},
"scope": {
"type": "string"
},
"search": {
"type": "object"
},
"partial": {
"type": "boolean"
},
"results": {
"type": "array"
},
"failedReadings": {
"type": "array"
},
"requestedLimit": {
"type": "number"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 12 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "2000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/polymarket-markets",
"tags": [
"polymarket",
"prediction-markets",
"odds",
"market-data",
"base"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Polymarket markets and prediction market odds: one page of public markets from the Gamma API (text and status filters, order by volume or liquidity, outcome prices) or a wallet's positions and activity from the Data API, with source URL and read time. Use this when an agent needs prediction-market odds, event lists or a trader's positions as evidence for a forecast or a report. JSON, no model inference. Free sample at /api/polymarket-markets/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"limit": 1,
"offset": 0,
"resource": "markets"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"items": [
{
"id": "559651",
"slug": "xi-jinping-out-before-2027",
"active": true,
"closed": false,
"volume": "14770807.421027988",
"endDate": "2027-01-01T04:59:00Z",
"archived": false,
"outcomes": "[\"Yes\", \"No\"]",
"question": "Xi Jinping out before 2027?",
"liquidity": "626904.29825",
"volumeNum": 14770807.421027988,
"conditionId": "0xa467b14d51f01b957109d9cbb1d6c124fab2a089d52ed8f471d23c2812e743b7",
"clobTokenIds": "[\"32338220190071351435772801779725302244575775216413325951443816017994629993401\", \"25659310674993675562345759665114759892400026242514633218387667107987341231962\"]",
"liquidityNum": 626904.29825,
"outcomePrices": "[\"0.0285\", \"0.9715\"]"
}
],
"scope": "Text and status filters and ordering apply only to this source page. Results do not establish global matches or global ranking; an empty selection does not establish absence of matching markets.",
"readAt": "2026-10-12T19:12:18.241Z",
"resource": "markets",
"selection": {
"order": "volume",
"scope": "received_page_only",
"status": "all",
"direction": "descending",
"queryFields": [
"question",
"slug"
],
"missingOrderValues": "last"
},
"sourceUrl": "https://gamma-api.polymarket.com/markets?limit=1&offset=0",
"pagination": {
"limit": 1,
"offset": 0,
"returned": 1,
"totalKnown": false,
"offsetScope": "upstream_page",
"sourceReturned": 1
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"allOf": [
{
"if": {
"required": [
"resource"
],
"properties": {
"resource": {
"enum": [
"positions",
"activity"
]
}
}
},
"else": {
"not": {
"required": [
"user"
]
}
},
"then": {
"not": {
"anyOf": [
{
"required": [
"query"
]
},
{
"required": [
"status"
]
},
{
"required": [
"order"
]
}
]
},
"required": [
"user"
]
}
}
],
"properties": {
"user": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Public wallet address required for positions and activity; rejected for markets."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Upstream page size before local filtering; defaults to 5. A filtered page may return fewer records or none."
},
"order": {
"enum": [
"volume",
"liquidity"
],
"type": "string",
"description": "Descending ordering within the received market page; missing numeric values sort last. Defaults to volume. Markets only."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Case-insensitive substring search in question and slug within the received market page. Whitespace-only values are rejected. Markets only."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset passed to the upstream endpoint before local filtering; defaults to 0. Endpoint-specific restrictions may cause an upstream error."
},
"status": {
"enum": [
"all",
"active",
"closed"
],
"type": "string",
"description": "Filter the received market page. Active requires active=true and closed=false; closed requires closed=true. Defaults to all. Markets only."
},
"resource": {
"enum": [
"markets",
"positions",
"activity"
],
"type": "string",
"description": "Defaults to markets. Positions and activity require user."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"items": {
"type": "array"
},
"scope": {
"type": "string"
},
"readAt": {
"type": "string"
},
"resource": {
"type": "string"
},
"selection": {
"type": "object"
},
"sourceUrl": {
"type": "string"
},
"pagination": {
"type": "object"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 13 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "2000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/source-bounded-summary",
"tags": [
"summarization",
"evidence",
"nlp",
"spanish",
"text"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Summarize text with evidence: send 1 to 4,000 characters in English or Spanish and get a short summary plus 1 to 3 supporting quotes verified as exact substrings of your text, with a limitations note. Use this when an agent must condense an article, email or document and needs citations it can check before putting them in a report. Works only on the supplied text, no web retrieval, JSON out. Free sample at /api/source-bounded-summary/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"text": "Ana entregó el informe el lunes. Luis lo revisó el martes.",
"language": "es"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"summary": "Ana entregó el informe el lunes y Luis lo revisó el martes.",
"evidence": [
{
"quote": "Ana entregó el informe el lunes."
},
{
"quote": "Luis lo revisó el martes."
}
],
"limitations": "Citas comprobadas como fragmentos literales del texto proporcionado; no se verificaron hechos ni fuentes externas. El resumen generado puede contener errores de interpretación."
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "Source text; no secrets or sensitive data"
},
"language": {
"enum": [
"es",
"en"
],
"type": "string",
"description": "Summary language; defaults to es"
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"evidence": {
"type": "array"
},
"limitations": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 14 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/url-text",
"tags": [
"web-reader",
"url-to-text",
"markdown",
"scraping",
"rag"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Read URL content: extract the readable plain text and title of any public web page, with scripts, styles and navigation removed, plus character count, truncation flags and read time. Use this when an agent needs the text of an article, doc or product page to quote, classify or summarize, without an API key. Static HTML only (no JavaScript, no login), up to 20,000 characters, JSON out. For Markdown output use /api/web-read. Free sample at /api/url-text/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://example.com/",
"format": "text",
"maxChars": 10000
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"url": "https://example.com/",
"text": "Example text.",
"scope": "Simulated documentation example, not a live reading.",
"title": "Illustrative page",
"format": "text",
"readAt": "2026-01-01T00:00:00.000Z",
"truncated": false,
"characters": 13,
"sourceTruncated": false
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"minLength": 9,
"description": "Public HTTPS page URL. Private addresses and pages requiring authentication are unsupported."
},
"format": {
"enum": [
"text",
"markdown"
],
"type": "string",
"default": "text",
"description": "Output format: plain text or simple Markdown. Defaults to text."
},
"maxChars": {
"type": "integer",
"default": 10000,
"maximum": 20000,
"minimum": 1000,
"description": "Maximum returned text length in UTF-16 code units, from 1000 to 20000. Defaults to 10000."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"scope": {
"type": "string"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"readAt": {
"type": "string"
},
"truncated": {
"type": "boolean"
},
"characters": {
"type": "number"
},
"sourceTruncated": {
"type": "boolean"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 15 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/web-read",
"tags": [
"web-reader",
"url-to-text",
"markdown",
"scraping",
"rag"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Web page to Markdown or plain text: fetch one public URL and get its title and main content with scripts, styles, navigation and ads stripped, plus character count and truncation flags. Use this when an agent needs to read a URL for research, RAG, monitoring or summarization without an API key or a browser. One HTTPS fetch of static HTML (no JavaScript rendering, no login pages), up to 20,000 characters, JSON out. Free sample at /api/web-read/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://example.com/",
"format": "markdown",
"maxChars": 10000
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"url": "https://example.com/",
"text": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
"scope": "Best-effort extraction from one received HTML response using structural heuristics. No JavaScript execution or authenticated access. CSS and generic navigation may not be recognized. Common HTML entities are decoded; other named entities are retained. Source completeness is unknown because the reader supplied no usable truncation flag. Extracted content fits within maxChars. Title is extracted from the received title element and limited to 1000 UTF-16 units. The storefront reader limits received raw HTML to 20,000 UTF-16 code units before extraction; this limit includes markup and omitted content.",
"title": "Example Domain",
"format": "markdown",
"readAt": "2026-10-16T06:29:31.115Z",
"truncated": null,
"characters": 156,
"sourceTruncated": null
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"minLength": 9,
"description": "Public HTTPS page URL. Private addresses and pages requiring authentication are unsupported."
},
"format": {
"enum": [
"text",
"markdown"
],
"type": "string",
"default": "text",
"description": "Output format: plain text or simple Markdown. Defaults to text."
},
"maxChars": {
"type": "integer",
"default": 10000,
"maximum": 20000,
"minimum": 1000,
"description": "Maximum returned text length in UTF-16 code units, from 1000 to 20000. Defaults to 10000."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"scope": {
"type": "string"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"readAt": {
"type": "string"
},
"truncated": {
"type": "null"
},
"characters": {
"type": "number"
},
"sourceTruncated": {
"type": "null"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 16 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/x402-adoption",
"tags": [
"base",
"usdc",
"receipt-reconciliation",
"onchain",
"x402"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "Match receipt claims to individual Base USDC Transfer logs in RPC records you supply. Returns unmatched or ambiguous claims, duplicate event counts and declared-wallet exclusions. No live RPC verification or purchase attribution. Send a JSON-string bundle containing tape and evidence. Historical Bazaar snapshots remain available with operation=market_stats.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"bundle": "{\"tape\":{\"network\":\"eip155:8453\",\"seller\":\"0x1111111111111111111111111111111111111111\",\"sales\":[{\"transaction\":\"0x3333333333333333333333333333333333333333333333333333333333333333\",\"payer\":\"0x2222222222222222222222222222222222222222\",\"amountAtomic\":\"10000\"}],\"declaredOperatorWallets\":[]},\"evidence\":{\"transactions\":[]}}",
"operation": "audit"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"scope": "Illustrative example with no supplied RPC records; no transfer or purchase is established.",
"analysis": {
"pairs": [],
"chainId": 8453,
"version": 1,
"uniqueEvents": 0,
"suppliedEvents": 0,
"duplicatesExcluded": 0,
"externalPayerCount": 0,
"externalPayersMeetingRepeatThreshold": 0
},
"outcomes": [
{
"outcome": "evidence_not_supplied",
"sourceReceiptIndexes": [
0
]
}
],
"operation": "audit",
"liveRpcVerified": false,
"rejectedReceipts": [],
"suppliedReceipts": 1,
"allReceiptsMatched": false,
"evidenceAuthenticityVerified": false
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"properties": {
"bundle": {
"type": "string",
"maxLength": 120000,
"description": "JSON string, at most 120000 UTF-8 bytes: {tape:{network:eip155:8453,seller,sales:[{transaction,payer,amountAtomic}],declaredOperatorWallets:[]},evidence:{transactions:[{transactionHash,chainId:0x2105,receipt,block}]}}. Supply standard eth_getTransactionReceipt and eth_getBlockByHash result objects. At most 50 sales and 10 transaction records. Amounts are positive atomic-unit strings."
},
"section": {
"enum": [
"overview",
"bazaar",
"sellers",
"payers",
"prices",
"categories",
"demand",
"all"
],
"type": "string",
"default": "overview",
"description": "Which part of the report to return. overview: headline counts and conclusions; bazaar: network, asset and version shares; sellers: host and wallet concentration plus the Agent402 leaderboard; payers: how many resources have 1, 2, 5 or 10+ unique payers in 30 days; prices: USDC price percentiles; categories: keyword categories; demand: the paid demand radar; all: everything."
},
"operation": {
"enum": [
"audit",
"market_stats"
],
"type": "string",
"description": "audit reconciles the supplied bundle; market_stats returns a stored Bazaar snapshot. Without operation, a bundle selects audit; otherwise market_stats."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"scope": {
"type": "string"
},
"analysis": {
"type": "object"
},
"outcomes": {
"type": "array"
},
"operation": {
"type": "string"
},
"liveRpcVerified": {
"type": "boolean"
},
"rejectedReceipts": {
"type": "array"
},
"suppliedReceipts": {
"type": "number"
},
"allReceiptsMatched": {
"type": "boolean"
},
"evidenceAuthenticityVerified": {
"type": "boolean"
}
}
}
}
}
}
},
"x402Version": 2
}Captured payload 17 of 17
{
"error": "PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://tienda.textokit.store/api/x402-ping",
"tags": [
"x402",
"ping",
"test",
"timestamp",
"canary"
],
"iconUrl": "https://tienda.textokit.store/icon.png",
"mimeType": "application/json",
"description": "x402 payment test and ping: one call with no required parameters returns server time (ISO 8601 and Unix ms), a request id, the seller payTo, chain id and an echo of your optional text, only after a real settlement. Use this when an agent needs to prove its payment flow works, measure round-trip latency or run a cheap scheduled canary against a live seller. No upstream, no model inference; paid round trip 1 to 2 s. Free sample at /api/x402-ping/sample.",
"serviceName": "Textokit"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"echo": "hello"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"ok": true,
"echo": "hello",
"payer": "0xf9D7D09F50d8d216D9a4D6B5ec93b176c10f87e9",
"policy": "settled only after a successful response; paid round trip 1 to 2 s (verify and settle first)",
"seller": {
"payTo": "0x6b5aF9924f4CD35643c11a9fd1C983f77261A6E1",
"chainId": 8453,
"erc8004AgentId": 98748
},
"unixMs": 1792132170883,
"requestId": "8a10db38-8f01-43ff-ab3e-721d1a068375",
"serverTime": "2026-10-16T06:29:30.883Z"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"body"
],
"properties": {
"body": {
"type": "object",
"properties": {
"echo": {
"type": "string",
"maxLength": 200,
"description": "Optional text echoed back (up to 200 characters)."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "json"
}
}
},
"output": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"echo": {
"type": "string"
},
"payer": {
"type": "string"
},
"policy": {
"type": "string"
},
"seller": {
"type": "object"
},
"unixMs": {
"type": "number"
},
"requestId": {
"type": "string"
},
"serverTime": {
"type": "string"
}
}
}
}
}
}
},
"x402Version": 2
}Can I trust it score from our own monitoring
score from our own monitoring
#59 of 436 in Data. Bands: strong 93+, solid 75+, mixed 55+, weak below 55.
- Reliability
- 100% uptime since 10-27
- Compliance
- A 14/14 checks pass
- Price
- $0.001 to $0.01 p9 in Data
- Risk
- clean no risk flag
- Traction
- $0.00 30d 0 buyers
14/14 compliance checks
- 402 payload captured
- accepts[] array present
- payTo address recoverable
- payTo at accepts[0].payTo (conformant shape)
- payTo is a valid on-chain address
- atomic price declared
- atomic price in a sane range
- asset (token) address declared
- network resolves to CAIP-2
- payment scheme declared
- served over HTTPS
- declares the current x402 version (2)
- EIP-712 domain parameters present on every EVM entry
- x402 v2 envelope delivered in the payment-required header
402 terms unchanged since 2026-10-27. Last up 2026-10-27.
── Site signals
- homepage reachable
- openapi doc
- pricing page
- llms.txt
- robots.txt
- terms page
How the score works
What the score read on this service: status online, 100% uptime, latest daily rollup (no 30d window yet), 402ms response p95, x402 compliance 14 of 14, $0.001 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.
The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.
Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.
It is a score inside Data, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 436 listings, this one among them: the same 436 the position above is counted against. When the two differ, the field is the wider one, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.
Traction is a conservative undercount.
All measured facts
What it does
17 pay-per-call endpoints on Base (USDC, x402 v2, Coinbase facilitator): web page to Markdown reader, FX and crypto rates, Argentine CUIT/CUIL validation, addresses, official gazette search and BCRA indicators, Spanish translation, formal letters and evidence-bound summaries, plus an x402 ping and x402 adoption stats. Free samples at /api/<route>/sample; every settlement is public at /receipts.json with its Base transaction hash.
Textokit x402 tools is a listed x402 Data API. Captured payment terms name Base. Monitoring and settlement figures below describe the observations available to this directory; an unpaid HTTP 402 check does not prove that a paid call will deliver.
Assessment computed at . Latest service check observed at . Service data JSON · Measurement methodology.
Page rendered at . This response time is separate from the observation and computation times attached to each measurement.
Latest endpoint observation: . Latest price capture: . Prices are recorded quotes, not a promise of availability. Token assets and payment terms are listed separately. Endpoint data JSON · Price history JSON · Measurement methodology.
Assessment computed at . Uptime uses the stated daily-rollup window; response times are in milliseconds, compliance is passed/evaluated checks, and traction is a measured settlement floor. The comparison score is out of 100 within this category. Assessment JSON · Measurement methodology.
Observed daily coverage: 2026-09-28 to 2026-10-27 UTC. Daily monitoring and settlement rollups do not expose their computation time; a bucket date is not an update timestamp. Uptime and response JSON · Volume JSON · Buyers JSON · Measurement methodology.
Ranked from the measured category pool, refreshed at most once a minute. The comparison has no persisted computation timestamp; the assessment time above belongs to this service only. Ranking API documentation · Ranking methodology.
x402 List home · Services · Data
- uptime · latest daily rollup
- -
- uptime 7d
- -
- uptime 30d
- -
- uptime 90d
- -
- response p95
- 402ms
- avg response
- 402ms
- total checks
- 1
Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.
- price (min)
- $0.001
- price (max)
- $0.01
- category percentile (min)
- p9 in Data
- category percentile (max)
- p26 in Data
- endpoints / prices
- 17 / 5
- model
- tiered
- stability
- 0%
No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.
- domain age
- 16d
- registrar
- NameCheap, Inc.
- hosting
- custom
- domain created
- 2026-10-11
Identity facts, not a risk score.
- assessment volume 30d
- $0.00
- exact assessment volume 30d (USD)
- 0
- assessment recorded at (UTC)
- 2026-10-27T11:33:52.389Z
- buyers 30d
- 0
- settlements 30d
- 0
- measured since
- --- (start of our harvest window)
- last settlement
- ---
- top buyer share
- -
- top 3 buyers share
- -
- concentrated volume
- no
- trend 7d vs 30d
- -
- networks
- eip155:8453
- volume all-time
- $0
- settlements all-time
- 0
- median settlement 30d
- -
- max settlement 30d
- -
Assessment volume uses the latest 30d assessment. Over time sums daily address snapshots, rounded to cents and refreshed separately. The two sources can differ in timing, precision and shared-address attribution. Amounts use cents for comparison; known sub-cent values keep up to 12 significant digits. The exact stored assessment value is shown above.
Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.
Top buyer share lowers the on-chain traction part of the ranking score behind this page's verdict and /best, by up to half when one address holds all 30d volume. The Recommended and Highest volume sorts of the services list do not use it; they use the Concentrated volume rule instead.
- member since
- 2026-10-27
Recent checks
| Checked at (UTC) | Status | HTTP | Response | Endpoints |
|---|---|---|---|---|
| Online | 402 | 324ms | 17 | |
| Online | 402 | 243ms | 17 | |
| Online | 402 | 320ms | 17 | |
| Online | 402 | 338ms | 17 | |
| Online | 402 | 387ms | 17 | |
| Online | 402 | 287ms | 17 | |
| Online | 402 | 269ms | 17 | |
| Online | 402 | 366ms | 17 | |
| Online | 402 | 402ms | 17 |
Changes0 in 30d
No changes recorded in the last 30 days.
Over time
- Volume 30d
- $0.00
- Uptime
- no completed-day data
More charts
09-28 to 10-27* UTC
Each series spans only the dates it has data for. Every series is also served as JSON at /api, /scores, /volume and /buyers.
Values
* today so far, partial (UTC).
The uptime summary counts completed UTC days only. The strip, readouts and table retain today's partial reading.
Daily snapshot total, 30d: $0.61, peak $0.17 on 10-25. The visible 30d total in Traction comes from the latest assessment. These sources can differ in their window, refresh time, cent rounding and shared-address attribution.
Daily address snapshots: 2026-09-28 to 2026-10-27 UTC; * today so far, partial (UTC). Daily snapshots store cents. A recorded $0.00 with settlements cannot distinguish exact zero from volume rounded away. Lost precision is unavailable here. † marks a recorded $0.00 with settlements.
Settlement volume uses the stored USD valuation of tracked payments; it is distinct from token quantities. USD-pegged assets are valued at 1 USD per token in these rollups. The measured settlement floor does not cover all payments to this service.
Assessment history last recorded at . Each UTC day uses its last recorded run; missing readings stay unmeasured. Assessment history JSON · Measurement methodology.
| Day | Volume | Buyers | Settlements | Uptime | Response | Compliance | Price percentile | Site signals |
|---|---|---|---|---|---|---|---|---|
| 2026-10-10 | $0.05 | 1 | 1 | no data | no data | no data | no data | no data |
| 2026-10-11 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-12 | $0.14 | 1 | 12 | no data | no data | no data | no data | no data |
| 2026-10-13 | $0.01 | 2 | 2 | no data | no data | no data | no data | no data |
| 2026-10-14 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-15 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-16 | $0.13 | 1 | 27 | no data | no data | no data | no data | no data |
| 2026-10-17 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-18 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-19 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-20 | $0.05 | 4 | 22 | no data | no data | no data | no data | no data |
| 2026-10-21 | $0.03 | 2 | 13 | no data | no data | no data | no data | no data |
| 2026-10-22 | no data | no data | no data | no data | no data | no data | no data | no data |
| 2026-10-23 | $0.00 recorded† | 1 | 1 | no data | no data | no data | no data | no data |
| 2026-10-24 | $0.01 | 1 | 2 | no data | no data | no data | no data | no data |
| 2026-10-25 | $0.17 | 5 | 144 | no data | no data | no data | no data | no data |
| 2026-10-26 | $0.01 | 2 | 4 | no data | no data | no data | no data | no data |
| 2026-10-27* | $0.01 | 2 | 4 | 100% | 341.50ms | 14/14 | p9 | 4/6 |
Alternatives in Data
5 of 435 other ranked services in Data, ordered by the same measured score.
Own this service?
Keep this listing accurate. Ownership is proven with a domain check and every change is reviewed by hand.
Update this listingEarn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.
Verify this service ($0.25)Embed a badge
HTML
<a href="https://x402-list.com/services/ textokit-x402-tools? utm_source=badge& utm_medium=referral& utm_campaign=embed"> <img src="https://x402-list.com/ badge/ textokit-x402-tools.svg" alt="Textokit x402 tools listed on x402-list" height="28"> </a>
Markdown
[](https://x402-list.com/ services/ textokit-x402-tools? utm_source=badge& utm_medium=referral& utm_campaign=embed)
HTML, live uptime variant
<a href="https://x402-list.com/services/ textokit-x402-tools? utm_source=badge& utm_medium=referral& utm_campaign=embed"> <img src="https://x402-list.com/ badge/ textokit-x402-tools.svg? data=uptime" alt="Textokit x402 tools uptime on x402-list" height="28"> </a>
Delisting
To request delisting, email info@x402-list.com with the service name, slug, or URL. Removal is free and does not require proof of ownership. Contact.