cputools logo cputools

Stop paying frontier-model prices to flatten a PDF.

cputools is where agents and devs offload the grunt work — and pay CPU prices, not token prices. Stateless utilities behind one endpoint: one call, a fraction of a cent, no server to babysit. PDF today, more landing weekly. One balance, pay per call.

Merge two PDFs, in five lines Read the docs →
curl -X POST https://api.relaystation.ai/v1/pdf/merge \
  -H 'X-Payment: <base64 EIP-3009 auth>' \
  -H 'Idempotency-Key: merge-invoices-20260605' \
  -H 'Content-Type: application/json' \
  -d '{"files":[{"inline":"<base64 pdf>"},{"inline":"<base64 pdf>"}]}'

Tools you could self-host.

PDF ops built on open-source pdf-lib and pdf.js. No Lambda layer to wrangle, no native binary to compile into your image, no cold-start tax on your own infra. One HTTPS call, a result back, done.

Learn more →

Fractions of a cent, no minimum.

From $0.0002 per call, pay per call. No subscription, no minimum, no commitment. One Relaystation balance funds cputools and every other Relaystation product.

Learn more →

Agent-native.

x402 per-call payment, OpenAPI 3.1, and llms.txt. Send a file inline (base64, ≤ 4 MB) or by storage reference for larger ones; get the result back the same way. Never created an account.

Learn more →
x402 OpenAPI 3.1 llms.txt

The tools, one endpoint

97 operations across nine categories — PDF, CSV, image, codes, utils, generate, archive, data, and text — plus a pipeline runtime that composes them, each a single POST to https://api.relaystation.ai/v1/<category>/<op>. Send a file inline (base64, ≤ 4 MB) or by storage reference for larger files (≤ 50 MB); get the result back the same way.

PDF /v1/pdf/<op>

Tool What it does Price
merge Combine PDFs into one $0.0010 / page
split Split by ranges or burst to single pages $0.0010 / page
rotate Rotate pages $0.0010 / page
pages Delete, reorder, or insert pages $0.0010 / page
watermark Stamp text on pages $0.0010 / page
form Fill or flatten PDF forms $0.0010 / page
extract-text Pull text + structure out of a PDF $0.0020 / page
metadata Read or set document metadata $0.0010 flat
encrypt Password-protect a PDF (256-bit AES) $0.0010 / page
decrypt Remove a PDF password $0.0010 / page
compress Recompress to shrink a PDF $0.0010 / page
repair Repair a damaged PDF (diagnose + rewrite) $0.0010 / page
render Rasterize pages to PNG/JPEG $0.0010 / page
ocr Extract text from a scanned PDF (Tesseract) $0.0030 / page
ocr-searchable Make a scanned PDF searchable (invisible OCR text layer) $0.0040 / page
from-html Render HTML → PDF (headless Chromium, sandboxed) $0.0030 flat
from-office Convert an Office file → PDF (LibreOffice) $0.0050 flat
images Extract embedded images → PNGs $0.0010 / page
diff Text-compare two PDFs (unified diff) $0.0010 / page
bookmarks Read the outline / bookmark tree $0.0010 flat
attachments List / extract embedded file attachments $0.0010 flat
verify-signatures Verify digital signatures (structural + digest; no CA store) $0.0010 flat

Office /v1/office/<op>

Tool What it does Price
rescue Best-effort convert an exotic/legacy office file → PDF (LibreOffice) $0.0080 flat

CSV /v1/csv/<op>

Tool What it does Price
convert Convert between csv / tsv / json / ndjson $0.0002 / MB
dedupe Drop duplicate rows (order-preserving) $0.0002 / MB
select Keep, drop, or reorder columns $0.0002 / MB

Image /v1/image/<op>

Tool What it does Price
resize Resize / fit an image (animated GIF/WebP preserved with animated:true) $0.0003 / MP
convert Convert image format (png/jpeg/webp/avif/…; animated frames preserved with animated:true) $0.0003 / MP
compress Re-encode at lower quality $0.0003 / MP
rotate Rotate / flip an image $0.0003 / MP
metadata Read dimensions / format / EXIF presence $0.0005 flat
crop Crop a region $0.0003 / MP
blur Gaussian blur $0.0003 / MP
sharpen Sharpen $0.0003 / MP
grayscale Convert to grayscale $0.0003 / MP
exif-strip Strip EXIF/metadata (auto-orient first) $0.0003 / MP
dominant-color Get the dominant color $0.0002 flat
composite Overlay / watermark one image onto another $0.0003 / MP
contact-sheet Tile images into a thumbnail-grid PNG $0.0003 / MP
ocr Extract text from an image (Tesseract, 10 languages) $0.0030 flat
from-html Render HTML → image (headless Chromium screenshot, sandboxed) $0.0030 flat
adjust Adjust brightness / saturation / hue / lightness / negate / tint $0.0003 / MP
trim Auto-crop uniform borders $0.0003 / MP
extend Pad / extend on any side $0.0003 / MP

Codes /v1/{qr,barcode,codes/<op>}

Tool What it does Price
qr Generate a QR code (PNG/SVG) $0.0002 flat
barcode Generate a 1D barcode (Code128/EAN/UPC/…) $0.0002 flat
qr-decode Read a QR code from an uploaded image $0.0002 flat
color-convert Convert a color between hex / rgb / hsl $0.0002 flat

Utils /v1/utils/<op>

Tool What it does Price
hash Hash bytes (sha256/sha512/sha1/md5) $0.0002 / MB
hmac Keyed HMAC (sha256/sha512/sha1/md5); key never logged $0.0002 / MB
base64 Base64 encode / decode a string $0.0002 / MB
uuid Generate v4 UUIDs $0.0001 flat
jwt-decode Decode a JWT header + payload (no verify) $0.0001 flat
jwt-verify Verify a JWT signature, alg-pinned; key never logged $0.0001 flat

Generate /v1/generate/<op>

Tool What it does Price
og-image Render a social-card PNG (satori → sharp) $0.0005 flat
mock-data Generate fake rows from a field→type schema (json/csv/ndjson) $0.0002 flat
invoice Render an invoice PDF from structured data (pdf-lib) $0.0002 flat
chart Render a bar / line / pie chart PNG (SVG → sharp) $0.0002 flat
qr-logo QR code with a logo composited in the center (ECC H) $0.0002 flat
favicon Favicon set (PNGs) from an image or initials text $0.0002 flat
placeholder Placeholder image (dimensions/label text; png or svg) $0.0002 flat
identicon Deterministic GitHub-style identicon PNG from a seed $0.0002 flat

Archive /v1/archive/<op>

Tool What it does Price
zip Zip 1+ files into one archive $0.0002 / MB
unzip Extract a zip to a manifest of entries $0.0002 / MB
gzip Gzip compress / decompress a file (transparent gzip handling for CSV inputs) $0.0002 / MB

Data /v1/data/<op>

Tool What it does Price
filter Keep rows matching a structured predicate (no formula eval) $0.0002 / MB
sort Sort rows by one or more columns $0.0002 / MB
groupby Group rows and aggregate (count/sum/avg/min/max) $0.0002 / MB
join Join two tables (inner/left/right/outer) $0.0002 / MB
union Concatenate tables (ordered key-union schema) $0.0002 / MB
profile Column stats: type, nulls, cardinality, min/max/mean $0.0002 / MB
cast Coerce column types (string/integer/number/boolean/date) $0.0002 / MB
pivot Reshape long↔wide (pivot / unpivot) $0.0002 / MB
schema-infer Infer a JSON Schema or SQL DDL from the data $0.0002 / MB
validate Check rows against a structured schema $0.0002 / MB
diff Row-level changeset between two tables $0.0002 / MB
from-xlsx Parse an Excel file → table (csv/json) $0.0002 / MB
to-xlsx Write a table → Excel (.xlsx), formula-injection-safe (multi-sheet + styling) $0.0002 / MB
derive Add computed columns (structured, no formula eval) $0.0002 / MB
fillna Fill empty cells (value / ffill / bfill / mean / median / mode) $0.0002 / MB
dropna Drop rows with empty cells $0.0002 / MB
rename Rename columns $0.0002 / MB
slice Row slicing / sampling (offset/limit/head/tail/sample) $0.0002 / MB
explode Unnest an array/list cell into multiple rows $0.0002 / MB
sample Sample rows (n or fraction; random/head/systematic; reproducible seed) $0.0002 / MB
sql Query your file with full SQL (sandboxed DuckDB, read-only; parquet in & out) $0.0005 / MB

Text /v1/text/<op>

Tool What it does Price
case Recase text (upper/lower/title/camel/snake/kebab) $0.0002 / MB
slugify URL-slugify text (strip diacritics, hyphenate) $0.0002 / MB
diff Unified diff of two strings $0.0002 / MB
apply-patch Apply a unified diff to a source string (422 on context mismatch) $0.0002 / MB
merge3 Three-way merge of two changes against a common base (conflict markers on overlap) $0.0002 / MB
count Count characters / words / lines + reading time $0.0002 / MB
regex-extract Extract regex matches (ReDoS-guarded; patterns + input bounded) $0.0002 / MB
template Render a logic-less mustache-subset template (no eval) $0.0002 / MB
markdown-to-html Markdown → HTML, always whitelist-sanitized $0.0002 / MB
html-to-text Convert HTML → plain text $0.0002 / MB
sanitize-html Sanitize HTML against a safe whitelist $0.0002 / MB

Per-page, per-MB, and per-megapixel pricing; QR, barcode, metadata, UUIDs, JWT, and generate are flat. OCR is synchronous (≤ 5 pages); render is capped at 40 pages; unzip is bomb-guarded (≤ 128 MiB uncompressed, rejected pre-charge). The data category adds dataframe verbs and full sandboxed SQL (DuckDB, read-only over your file). Office, web-render, and media tenants are next. See the docs for every op.

A transform platform, not just a catalog

The data/sql op runs full SQL over your file on a real DuckDB engine — locked read-only with no filesystem, network, or extension access, so your query sees only your data. And the pipeline runtime chains transforms into one call — filter → groupby → convert in a single request, billed as the sum of the steps, atomic. Compose the catalog instead of orchestrating it yourself.

Generate documents, not just transform them

HTML→PDF renders your HTML to a print-ready PDF on a sandboxed headless Chromium — invoices, reports, contracts, certificates, from a template and your data, no browser to host. And the data category now speaks Excel (from-xlsx / to-xlsx), the format every spreadsheet lives in. cputools makes the document, not just the bytes.

Pricing in one line

From $0.0002 per call. No subscription, no minimum, no commitment. Pay per call with x402, or top up with a card via Stripe — one Relaystation balance funds cputools and every other Relaystation product.

See the full pricing →

Discover the API