# Payload Check (data-quality filter for agents) > Before your agent uses a tool result, a scraped page, an LLM answer, generated code or a JSON/CSV payload, send it here. You get a 0-100 quality score, pass / warn / fail, tags (invalid_json, truncated, schema_mismatch, scrape_failure, bot_challenge, llm_refusal, placeholder, repetitive, syntax_error, encoding, empty, clean...) and concrete issues with locations. Broken JSON comes back auto-repaired when that is safe. Deterministic, no LLM, nothing stored. ## Pricing - $0.03 USDC per call on Base mainnet. Status: LIVE: real USDC payments. - x402: $0.03 USDC on Base mainnet (asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, amount 30000 base units, payTo 0xeE6239F3E17bEBe5e89F21F29D74D68CAa0d78CE); send PAYMENT-SIGNATURE ## How to call - POST https://seenly-payload-check.vercel.app/api/check {"content":"","expect":"auto"} - Optional: "expect" (auto|json|code|text|html|csv), "language" (javascript, typescript, python, ...), "schema" (JSON Schema for JSON payloads), "min_chars", "min_score" (default 80), "repair" (default true). - Or POST the raw payload with content-type text/plain. Or GET https://seenly-payload-check.vercel.app/api/check?content=... for short payloads. - Unpaid call → HTTP 402 with PAYMENT-REQUIRED (x402 v2, exact, USDC on Base). Sign with an x402 client (e.g. @x402/fetch) and retry with PAYMENT-SIGNATURE. The payer needs USDC only; the Coinbase facilitator pays gas. - Missing content / bad options → 422 before payment. Over 256 KB → 413, not charged. - The 402 carries Coinbase x402 Bazaar discovery metadata (extensions.bazaar: input/output JSON Schemas and examples). ## Free daily allowance (opt-in) - 10 free calls per caller per UTC day (caller = client network: IPv4 /24, IPv6 /64), and at most 300 free calls per day across all callers. - Opt in per request with header "X-Free-Allowance: use" (or ?free=1). Without it you always get the normal x402 402, so registries and x402 clients are unaffected. - A granted free call returns 200 with header X-Free-Allowance (used, remaining, limit, resets) and a free_allowance block in the JSON. No payment is taken. - When your allowance (or the global cap) is used up, the same request returns the normal x402 402 with free_allowance.status (caller_limit / global_limit). Pay as usual. - Free calls are never sales: they create no settlement and never count toward Agentropolis trust, stats or badges. Calls through the Agentropolis relay always use x402. - Example: curl -s https://seenly-payload-check.vercel.app/api/check -H 'content-type: application/json' -H 'X-Free-Allowance: use' -d '{"content":"{\"a\": 1,}"}' ## Output quality_score, verdict (pass|warn|fail), usable, detected_type, tags[], issues[] {code, severity critical|major|minor|info, message, location}, action (what to do next), repaired {content, steps} for fixable JSON, stats, thresholds, check_version. ## What it checks - JSON: parse errors with line/col, truncation, conservative repair (code fences, text around the JSON, comments, trailing commas, bare keys, single quotes, Python literals, closing a cut-off document), JSON Schema validation, empty / null-heavy / placeholder values, duplicate keys, inconsistent or duplicate records. - Code: JavaScript/TypeScript/JSX/TSX real syntax parse; Python/Go/Rust/SQL/shell bracket, string and indentation checks; cut-off code, "... rest of code" elisions, TODO/unimplemented stubs, prose mixed with code, AI refusals. - Scraped text/HTML: Cloudflare/bot challenges, captchas, access denied, soft 404, login/paywalls, rate-limit and server-error pages, unrendered JavaScript shells, cookie banners, link dumps, HTML leftovers. - Text / LLM output: empty or too short, refusals, placeholders, repetition loops, truncation, mojibake, control characters. - CSV: ragged rows, header-only, blank rows, duplicate headers, mostly empty cells. ## Discovery - OpenAPI: https://seenly-payload-check.vercel.app/openapi.json · Kit manifest: https://seenly-payload-check.vercel.app/.well-known/kits.json · x402: https://seenly-payload-check.vercel.app/.well-known/x402 · A2A: https://seenly-payload-check.vercel.app/.well-known/agent-card.json - Samples: https://seenly-payload-check.vercel.app/samples/check-broken-json.json · https://seenly-payload-check.vercel.app/samples/check-scrape-blocked.json · https://seenly-payload-check.vercel.app/samples/check-schema.json · https://seenly-payload-check.vercel.app/samples/check-clean-code.json - Contact: hello@agentropolis.io - Also listed on Agentropolis: https://agentropolis.io ## Agentropolis listing & badge - Listing: https://agentropolis.io/listing/seenly.seenly-payload-check (first-party, affiliated with Agentropolis) - Badge SVG: https://agentropolis.io/badge/seenly.seenly-payload-check.svg (trust: no independent sales yet) - Tiers explained: https://agentropolis.io/badges