Agent402 / tools / compress-compare

Compression compare

FREE with proof-of-work · or $0.001 in USDC · POST /api/compress-compare

Run the same input through gzip, brotli, and raw deflate at max settings and report each one's output size and ratio. Use this to decide which algorithm to actually use — the answer depends on your content (binary often resists compression entirely; English prose squeezes well with brotli; JSON sits in between).

Input

FieldTypeDescription
input *stringContent to test (max 10MB after decoding)
inputFormatstringHow `input` is encoded: utf8 (default), base64, or hex

Example output

{
  "inputBytes": 87,
  "results": [
    {
      "algorithm": "brotli",
      "outputBytes": 28,
      "ratio": 0.6782
    },
    {
      "algorithm": "gzip",
      "outputBytes": 41,
      "ratio": 0.5287
    },
    {
      "algorithm": "deflate",
      "outputBytes": 29,
      "ratio": 0.6667
    }
  ],
  "best": "brotli"
}

Try it — see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/compress-compare \
  -H "Content-Type: application/json" \
  -d '{"input":"the quick brown fox jumps over the lazy dog the quick brown fox jumps over the lazy dog","inputFormat":"utf8"}'

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";

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

const res = await payFetch("https://agent402.tools/api/compress-compare", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": "the quick brown fox jumps over the lazy dog the quick brown fox jumps over the lazy dog",
    "inputFormat": "utf8"
  }),
});

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=compress-compare")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/compress-compare", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"input":"the quick brown fox jumps over the lazy dog the quick brown fox jumps over the lazy dog","inputFormat":"utf8"}) });

Related tools

US gov dataset search

USDC $0.003 · GET /api/gov-data

Search 300,000+ US government datasets on catalog.data.gov (CKAN): titles, publishing org, formats, and direct resource …

US weather alerts

USDC $0.003 · GET /api/weather-alerts

Active National Weather Service alerts for a US state as clean JSON: event, severity, headline, affected areas, onset/ex…

Recent earthquakes (USGS)

USDC $0.003 · GET /api/earthquakes

Real-time USGS earthquake feed: magnitude, place, time, depth, coordinates. Live government data, no key. ?minMag=4.5&pe…