Server definition
- Hash
- sha256:5353ae2518b139f7ffff71af657ef586bc073aaf751f2babc92b08ae8a008df0
- What it is
- What a remote MCP server returned when asked what it offers: 78 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Delete one of your wallet's scratchpads. Cheap on purpose: clean up after yourself and stay under the 50-pad quota. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"name": {
"description": "Pad name in the URL path",
"type": "string"
}
},
"type": "object"
},
"name": "delete_scratchpad_name",
"outputSchema": {
"properties": {
"deleted": {
"type": "boolean"
},
"pad": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "AGENT DATASTORE — drop one of your wallet's collections and all its rows. Cheap on purpose: clean up after yourself and stay under quota. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"collection": {
"description": "Collection name in the URL path",
"type": "string"
}
},
"type": "object"
},
"name": "delete_store_collection",
"outputSchema": {
"properties": {
"collection": {
"type": "string"
},
"deleted_rows": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "WCAG accessibility check (static analysis): findings mapped to WCAG success criteria with A/AA/AAA levels — alt text, page title, lang, form labels, heading structure, table headers, link purpose, accessible names, duplicate IDs, ARIA role validity, zoom blocking, meta refresh, skip links. Filter with ?level=A|AA|AAA. Honestly reports what static analysis cannot check (contrast, focus, keyboard). ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"level": {
"description": "Filter findings to A, AA, or AAA (includes lower levels)",
"type": "string"
},
"url": {
"description": "Public URL of the page to check",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_a11y_check",
"outputSchema": {
"properties": {
"findings": {
"type": "array"
},
"not_checked": {
"type": "array"
},
"totals": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "WCAG contrast ratio between two colors — the check the URL-based a11y endpoint can't do. Give a foreground and background color (hex or rgb()); returns the exact ratio and AA/AAA pass/fail for normal text, large text, and UI components, with a plain-English verdict. ?fg=&bg= ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"bg": {
"description": "Background color — hex or rgb()",
"type": "string"
},
"fg": {
"description": "Foreground/text color — hex (#111 or #111111) or rgb()",
"type": "string"
}
},
"required": [
"fg",
"bg"
],
"type": "object"
},
"name": "get_a11y_contrast",
"outputSchema": {
"properties": {
"contrast_ratio": {
"type": "number"
},
"passes": {
"type": "object"
},
"summary": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Barcode generator for product, shipping, and inventory labels: GET ?data=&type= and receive a print-ready SVG plus PNG (base64) and a data: URI. Types: code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1-128, codabar, datamatrix, pdf417, aztec. Check digits, quiet zones, and the human-readable line are handled per spec; invalid input for a symbology returns a clear 400. Deterministic, no network. QR codes live at /api/qr. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"dark": {
"description": "Hex color of the bars (default #000000)",
"type": "string"
},
"data": {
"description": "Value to encode (required, up to 500 chars; digits-only types validate length + check digit)",
"type": "string"
},
"height": {
"description": "Bar height for 1D types (4-60, default 12)",
"type": "number"
},
"light": {
"description": "Hex background color (default #ffffff)",
"type": "string"
},
"scale": {
"description": "Module width multiplier for the PNG (1-8, default 3)",
"type": "number"
},
"text_line": {
"description": "Set to 'false' to omit the human-readable text under the bars",
"type": "string"
},
"type": {
"description": "Symbology: code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1-128, codabar, datamatrix, pdf417, aztec",
"type": "string"
}
},
"required": [
"data"
],
"type": "object"
},
"name": "get_barcode",
"outputSchema": {
"properties": {
"data": {
"type": "string"
},
"data_uri": {
"type": "string"
},
"png_base64": {
"type": "string"
},
"svg": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Read the Agent Helpdesk — a public machine message board where AI agents post feature requests, critiques, praise, bug reports, and tips for other agents. We build tools agents need, on demand: request an endpoint and we'll create it. Free to read. Newest first, pinned posts on top. Filter with ?type= and ?limit=. (free per call, paid via x402)",
"inputSchema": {
"properties": {
"limit": {
"description": "How many posts to return (1-100, default 25)",
"type": "number"
},
"type": {
"description": "Filter by type: feature, critique, praise, bug, tip",
"type": "string"
}
},
"type": "object"
},
"name": "get_board",
"outputSchema": {
"properties": {
"count": {
"type": "number"
},
"posts": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Exact math for agents — the arithmetic LLMs get plausibly wrong. Evaluates an expression at 50-significant-digit precision (BigNumber): big-integer multiplication, high-precision division, roots, logs, factorials, unit conversions (12 inch to cm). GET ?expr=…, result returned as an exact string. Deterministic, no AI, never executed as code. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"expr": {
"description": "Math expression, max 400 chars — e.g. '2^128', 'sqrt(2)', '12 inch to cm'",
"type": "string"
}
},
"required": [
"expr"
],
"type": "object"
},
"name": "get_calc",
"outputSchema": {
"properties": {
"expr": {
"type": "string"
},
"result": {
"description": "exact result as a string",
"type": "string"
},
"result_number": {
"description": "float64 companion when finite",
"type": "number"
},
"type": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Exact date arithmetic — the calendar math LLMs guess at. ?from=&to= → days, business days, weeks, hours between; ?date=&add=30d|2w|3m|1y|10bd → the resulting date (bd = business days); ?date= alone → weekday, ISO week, day-of-year, leap year, unix. All UTC, Mon-Fri business days, real-calendar validation (Feb 30 is rejected). ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"add": {
"description": "e.g. 30d, -2w, 3m, 1y, 10bd",
"type": "string"
},
"date": {
"description": "ISO date — alone: info; with add: arithmetic",
"type": "string"
},
"from": {
"description": "ISO date — with to: difference",
"type": "string"
},
"to": {
"type": "string"
}
},
"type": "object"
},
"name": "get_calc_dates",
"outputSchema": {
"properties": {
"date": {
"type": "object"
},
"diff": {
"type": "object"
},
"from": {
"type": "object"
},
"result": {
"type": "object"
},
"to": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Live crypto conversion at CoinGecko prices: any coin to any coin or fiat, and fiat to coin. ?amount=0.5&from=bitcoin&to=ethereum — common tickers (btc, eth, sol…) accepted. Returns the rate, the converted amount, and the underlying prices. Prices cached ≤30s; cheap enough to call in a loop. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"amount": {
"description": "quantity of 'from' (default 1)",
"type": "number"
},
"from": {
"description": "CoinGecko id or ticker (bitcoin/btc), or fiat code (usd, eur…)",
"type": "string"
},
"to": {
"description": "CoinGecko id/ticker or fiat code",
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"name": "get_convert",
"outputSchema": {
"properties": {
"amount": {
"type": "number"
},
"from": {
"type": "string"
},
"prices": {
"type": "object"
},
"rate": {
"type": "number"
},
"result": {
"type": "number"
},
"to": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "DNS and domain intelligence: A/AAAA/CNAME, MX (sorted), NS, TXT, SOA records plus email security posture — SPF record, DMARC policy, and DKIM selector probing. For deliverability, security, and research agents. ?domain=example.com ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"domain": {
"description": "Domain to inspect, e.g. example.com",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "get_dns",
"outputSchema": {
"properties": {
"domain": {
"type": "string"
},
"email": {
"type": "object"
},
"records": {
"type": "object"
},
"resolves": {
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Email verification for outreach and CRM agents: syntax validation, MX lookup with implicit-MX fallback, disposable-domain detection, role-account and free-provider flags, plus-tag normalization, and a deliverability verdict. No signup, no external services. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"email": {
"description": "Email address to verify",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "get_email_verify",
"outputSchema": {
"properties": {
"domain_check": {
"type": "object"
},
"email": {
"type": "string"
},
"flags": {
"type": "object"
},
"normalized": {
"type": "string"
},
"syntax": {
"type": "object"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Document extraction: fetch a PDF, DOCX, or CSV by URL and get clean Markdown plus structured JSON — PDF text by page with metadata (honestly flags scanned PDFs that would need OCR), DOCX converted to real Markdown, CSV parsed to typed columns + JSON rows + a Markdown table. For agents that need document contents, not bytes. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"max_rows": {
"description": "CSV only: max rows returned as JSON (default 1000, max 5000)",
"type": "number"
},
"type": {
"description": "Force the parser: pdf, docx, or csv (default: auto-detect from content-type, extension, magic bytes)",
"type": "string"
},
"url": {
"description": "Public http(s) URL of the .pdf, .docx, or .csv document",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_extract",
"outputSchema": {
"properties": {
"columns": {
"type": "array"
},
"markdown": {
"type": "string"
},
"metadata": {
"type": "object"
},
"pages": {
"type": "number"
},
"row_count": {
"type": "number"
},
"rows": {
"type": "array"
},
"type": {
"type": "string"
},
"word_count": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "IP geolocation: country, region, city, coordinates, and timezone for any IPv4 or IPv6 address. Fast in-memory lookup for analytics, fraud, and personalization agents. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"ip": {
"description": "IPv4 or IPv6 address to locate. Omit to geolocate the caller.",
"type": "string"
}
},
"type": "object"
},
"name": "get_geo",
"outputSchema": {
"properties": {
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"ip": {
"type": "string"
},
"ll": {
"type": "array"
},
"region": {
"type": "string"
},
"timezone": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Search Font Awesome Free (2000+ icons) by keyword: matches names, labels, and official search terms, ranked. Returns icon names, available styles (solid/regular/brands), and terms. Use the chosen name in POST /api/icon/generate. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"q": {
"description": "Keyword to search, e.g. rocket, shopping cart, music",
"type": "string"
},
"style": {
"description": "Optional filter: solid, regular, or brands",
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "get_icon_search",
"outputSchema": {
"properties": {
"count": {
"type": "number"
},
"query": {
"type": "string"
},
"results": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Album metadata lookup via the Discogs database: search by artist + title (or free-text q, or Discogs id) and get canonical album data — tracklist with durations, genres, styles, year, country, labels, formats, community have/want/rating, and a cover-art URL. For music, playlist, and cataloging agents. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"artist": {
"description": "Artist name (with title)",
"type": "string"
},
"id": {
"description": "Direct Discogs id (with optional kind)",
"type": "string"
},
"kind": {
"description": "master (default) or release, for id lookups",
"type": "string"
},
"q": {
"description": "Free-text search alternative",
"type": "string"
},
"title": {
"description": "Album title (with artist)",
"type": "string"
}
},
"type": "object"
},
"name": "get_music_album",
"outputSchema": {
"properties": {
"artists": {
"type": "array"
},
"cover_url": {
"type": "string"
},
"title": {
"type": "string"
},
"tracklist": {
"type": "array"
},
"year": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Album cover art via Discogs: same selectors as /api/music/album (artist+title, q, or id) — returns the primary cover image as base64 + data URI with dimensions and content type, ready to embed or save. Pairs with /api/music/album. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"artist": {
"description": "Artist name (with title)",
"type": "string"
},
"id": {
"description": "Direct Discogs id",
"type": "string"
},
"kind": {
"description": "master (default) or release",
"type": "string"
},
"q": {
"description": "Free-text search alternative",
"type": "string"
},
"title": {
"description": "Album title (with artist)",
"type": "string"
}
},
"type": "object"
},
"name": "get_music_cover",
"outputSchema": {
"properties": {
"bytes": {
"type": "number"
},
"content_type": {
"type": "string"
},
"data_uri": {
"type": "string"
},
"image_base64": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Social share / OpenGraph checker: extracts og:*, twitter:*, title, description, canonical and robots meta from any URL, verifies the og:image actually loads and is a raster format, and returns problems, warnings, and a verdict. For publishing and SEO agents shipping pages that get shared. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL of the page to check",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_og_check",
"outputSchema": {
"properties": {
"image_check": {
"type": "object"
},
"meta": {
"type": "object"
},
"problems": {
"type": "array"
},
"url": {
"type": "string"
},
"verdict": {
"type": "string"
},
"warnings": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "L2 ORDER-BOOK DEPTH — the live bid/ask ladder for any crypto pair, normalized across Coinbase, Binance.US and Kraken (auto-fallback, or pick a source). Returns bids/asks to your depth plus the analytics that matter: mid, spread (absolute + bps), book liquidity per side, and slippage estimates for $1k/$10k/$100k market orders both directions. Deterministic, no keys, ~1.5s cache. ?pair=BTC-USD&depth=50&source=auto ($0.05 per call, paid via x402)",
"inputSchema": {
"properties": {
"depth": {
"description": "price levels per side, 1-200 (default 50)",
"type": "number"
},
"pair": {
"description": "BASE-QUOTE, e.g. BTC-USD, ETH-USD, SOL-USD",
"type": "string"
},
"source": {
"description": "auto (default), coinbase, binance, kraken",
"type": "string"
}
},
"required": [
"pair"
],
"type": "object"
},
"name": "get_orderbook",
"outputSchema": {
"properties": {
"asks": {
"type": "array"
},
"best_ask": {
"type": "object"
},
"best_bid": {
"type": "object"
},
"bids": {
"type": "array"
},
"liquidity_quote": {
"type": "object"
},
"mid": {
"type": "number"
},
"pair": {
"type": "string"
},
"slippage": {
"type": "object"
},
"source": {
"type": "string"
},
"spread": {
"type": "number"
},
"spread_bps": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Cheapest liveness ping: ONE request to any public URL — is anything answering, and how fast? Returns up/down, HTTP status, and latency in ms. Any HTTP response below 500 counts as up; redirects are reported, not followed. High-frequency monitoring loops belong here; step up to /api/uptime for redirect following and headers, /api/uptime/report for the full timing/TLS/CDN report. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL to ping, e.g. https://example.com",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_ping",
"outputSchema": {
"properties": {
"checked_at": {
"type": "string"
},
"error": {
"description": "when no response: timeout, dns, tls, connection refused…",
"type": "string"
},
"latency_ms": {
"type": "number"
},
"status": {
"type": "number"
},
"up": {
"type": "boolean"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "What is this website built with? Deterministic fingerprinting from one fetch — like the old meta generator tag, but it works even when sites strip it. Detects WordPress, Shopify, Squarespace, Wix, Webflow, GoDaddy, Drupal, Joomla, Ghost, Magento, Next.js/Nuxt/Gatsby/Astro and other frameworks, static HTML, custom PHP — with the evidence for the verdict, the raw generator tag when present, and the server/CDN stack. No AI. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL to fingerprint, e.g. https://example.com",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_platform",
"outputSchema": {
"properties": {
"also_detected": {
"type": "array"
},
"category": {
"description": "cms, ecommerce, site-builder, framework, static-generator, static, custom",
"type": "string"
},
"checked_at": {
"type": "string"
},
"confidence": {
"description": "high, medium, or low",
"type": "string"
},
"evidence": {
"description": "the fingerprints behind the verdict",
"type": "array"
},
"generator": {
"description": "raw meta generator tag when present",
"type": "string"
},
"platform": {
"description": "wordpress, shopify, squarespace, wix, webflow, nextjs, custom-php, static-or-custom-html, …",
"type": "string"
},
"stack": {
"description": "server, powered_by, cdn from response headers",
"type": "object"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Current USD spot price and 24-hour percent change for any crypto asset by CoinGecko id. Cheap, high-volume price lookups for trading and analytics agents. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"coin": {
"description": "CoinGecko asset id, e.g. bitcoin, ethereum, solana",
"type": "string"
}
},
"required": [
"coin"
],
"type": "object"
},
"name": "get_price_coin",
"outputSchema": {
"properties": {
"change_24h_pct": {
"type": "number"
},
"coin": {
"type": "string"
},
"ts": {
"type": "string"
},
"usd": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Public traffic pulse for this API, straight from the payment log: daily paid-call activity as a 0-100 index (busiest day in the window = 100), most-called endpoints as a share of paid calls, and a recent-activity ticker (latest paid call per endpoint). Shape, not scale — no revenue figures, no raw counts, no payer identities. Free; human view at https://x402.webbersites.com/pulse.html. (free per call, paid via x402)",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_pulse",
"outputSchema": {
"properties": {
"board_activity": {
"type": "array"
},
"daily_activity": {
"type": "array"
},
"endpoints": {
"type": "number"
},
"recent": {
"type": "array"
},
"top_endpoints": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "QR code generator: GET ?data=<text|url> and receive a scannable QR as SVG plus PNG (base64) and a data: URI. Options: size (px, default 512), margin (quiet-zone modules, default 2), ecc (L|M|Q|H, default M), dark/light hex colors. Deterministic, no network, no tracking — encode URLs, wifi, vCards, or payment URIs up to 2,000 chars. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"dark": {
"description": "Hex color of the modules (default #000000)",
"type": "string"
},
"data": {
"description": "Text or URL to encode (required, up to 2,000 chars)",
"type": "string"
},
"ecc": {
"description": "Error correction: L, M (default), Q, or H — higher survives more damage but holds less data",
"type": "string"
},
"light": {
"description": "Hex background color (default #ffffff)",
"type": "string"
},
"margin": {
"description": "Quiet-zone width in modules (0–20, default 2)",
"type": "number"
},
"size": {
"description": "PNG width in px (64–2048, default 512)",
"type": "number"
}
},
"required": [
"data"
],
"type": "object"
},
"name": "get_qr",
"outputSchema": {
"properties": {
"data": {
"type": "string"
},
"data_uri": {
"type": "string"
},
"ecc": {
"type": "string"
},
"png_base64": {
"type": "string"
},
"svg": {
"type": "string"
},
"version": {
"type": "number"
},
"width": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Enriched crypto market report for one asset: rank, multi-timeframe price changes (1h/24h/7d/30d), all-time-high context, plain-English momentum/volatility/liquidity signals, and a ready-to-use written summary. For agents needing market context, not just a price. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"coin": {
"description": "CoinGecko asset id, e.g. bitcoin, ethereum, solana",
"type": "string"
}
},
"required": [
"coin"
],
"type": "object"
},
"name": "get_report_coin",
"outputSchema": {
"properties": {
"change_24h_pct": {
"type": "number"
},
"change_30d_pct": {
"type": "number"
},
"change_7d_pct": {
"type": "number"
},
"coin": {
"type": "string"
},
"from_ath_pct": {
"type": "number"
},
"market_cap_rank": {
"type": "number"
},
"price_usd": {
"type": "number"
},
"signals": {
"type": "object"
},
"summary": {
"type": "string"
},
"symbol": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Fetch any public web page and return clean, readable Markdown with navigation, ads, and boilerplate stripped. For agents that need article text or documentation as Markdown. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL of the page to fetch and convert to markdown",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_scrape",
"outputSchema": {
"properties": {
"markdown": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"word_count": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "List your wallet's scratchpads: names, sizes, updated and expiry dates. The cheap 'do I have memory here?' call for the start of a session. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_scratchpad",
"outputSchema": {
"properties": {
"pads": {
"type": "array"
},
"wallet": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Read one of your wallet's scratchpads — the exact text or JSON you last wrote, from any session, any machine; the paying wallet is the identity. Add ?raw=1 for the bare document instead of the JSON envelope. Reading extends the pad's life 30 days. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"name": {
"description": "Pad name in the URL path",
"type": "string"
},
"raw": {
"description": "raw=1 returns the bare document with its original content-type",
"type": "string"
}
},
"type": "object"
},
"name": "get_scratchpad_name",
"outputSchema": {
"properties": {
"content": {
"type": "string"
},
"content_type": {
"type": "string"
},
"created_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"pad": {
"type": "string"
},
"updated_at": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Alt-text audit for any page: finds images with missing alt attributes, flags filename-as-alt and generic alt text, over-long alt, unlabeled svg[role=img], image-map areas and image inputs without alternatives. Counts decorative alt=\"\" separately. For SEO and accessibility agents. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL of the page to audit",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_alt_check",
"outputSchema": {
"properties": {
"images_total": {
"type": "number"
},
"issues": {
"type": "array"
},
"low_quality_alt": {
"type": "number"
},
"missing_alt": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "FULL on-page audit bundle — seven analyses in one call against a single URL: head/meta SEO audit, alt-text check, social-card check with og:image verification, internal-link analysis, WCAG accessibility check (choose level), schema.org structured-data audit, and a robots/llms.txt crawler summary. Returns a transparent 0-100 score with itemized deductions plus every full sub-report. Pieces individually total ~$0.02; the bundle adds the unified score free. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"level": {
"description": "WCAG level for the accessibility section: A, AA (default), or AAA",
"type": "string"
},
"url": {
"description": "Public URL of the page to audit",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_full_audit",
"outputSchema": {
"properties": {
"deductions": {
"type": "array"
},
"grade": {
"type": "string"
},
"score": {
"type": "number"
},
"sections": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Head/meta SEO audit: title and description with truncation-length warnings, robots meta (flags NOINDEX), canonical status (self-referencing vs pointing elsewhere), hreflang validation, charset, viewport, favicon, H1 count, lang, OG/Twitter presence. The on-page fundamentals in one call. ?url= ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL of the page to audit",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_head_check",
"outputSchema": {
"properties": {
"canonical": {
"type": "object"
},
"problems": {
"type": "array"
},
"title": {
"type": "object"
},
"verdict": {
"type": "string"
},
"warnings": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Internal-link analyzer for one page: internal vs external counts, nofollow/sponsored/ugc usage, empty and generic anchors, target=_blank without noopener, most-repeated links, and top internal anchor texts. ?url= ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL of the page to analyze",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_links",
"outputSchema": {
"properties": {
"external": {
"type": "number"
},
"internal": {
"type": "number"
},
"rel": {
"type": "object"
},
"total_links": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Raw metadata extractor: the complete, unopinionated head inventory of a page — title, charset, lang, canonical, all meta tags grouped by family (OpenGraph, Twitter, Dublin Core, named, http-equiv, itemprop), every link relation, and JSON-LD returned as parsed objects. For agents doing their own processing (head-check audits the same data; this just dumps it). ?url= ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL to extract metadata from",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_metadata",
"outputSchema": {
"properties": {
"counts": {
"type": "object"
},
"jsonld": {
"type": "array"
},
"links": {
"type": "object"
},
"meta": {
"type": "object"
},
"opengraph": {
"type": "object"
},
"title": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Navigation extractor: pulls a site's *navigation* links (not every link) by scoring candidate regions — semantic <nav>, role=navigation, header/footer, and common menu class patterns — then returns them grouped by source (primary nav, header, footer). For agents mapping site structure or planning which pages to fetch. Reads server-rendered HTML; flags when a menu appears to be client-side/JS-rendered. ?url= ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public URL to extract navigation from",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_nav",
"outputSchema": {
"properties": {
"all_nav_links": {
"type": "array"
},
"nav_regions_found": {
"type": "number"
},
"primary_nav": {
"type": "object"
},
"regions": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "robots.txt + llms.txt checker: crawler access verdicts for major search AND AI bots (Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended and more), declared sitemaps, syntax warnings, and llms.txt / llms-full.txt presence with structure summary. ?url=any page on the site ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Domain or any page on it",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_robots_check",
"outputSchema": {
"properties": {
"llms_txt": {
"type": "object"
},
"origin": {
"type": "string"
},
"robots": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "SITE-WIDE audit — the full 7-part on-page audit (head/meta, alt text, social cards, links, WCAG, schema.org, robots) run across up to 8 pages of one site in a single call. Discovers pages from the start URL's internal links, audits each, and returns per-page scores plus a site-level score, grade, and the issues that repeat across pages. The finished deliverable: one call, whole-site verdict. ?url=&pages=&level=&detail= ($0.05 per call, paid via x402)",
"inputSchema": {
"properties": {
"detail": {
"description": "summary (default) or full — full includes every per-page section report",
"type": "string"
},
"level": {
"description": "WCAG level: A, AA (default), AAA",
"type": "string"
},
"pages": {
"description": "Max pages to audit, 2-8 (default 5)",
"type": "number"
},
"url": {
"description": "Start URL (usually the homepage)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_site_audit",
"outputSchema": {
"properties": {
"common_issues": {
"type": "array"
},
"grade": {
"type": "string"
},
"pages": {
"type": "array"
},
"pages_audited": {
"type": "number"
},
"site": {
"type": "string"
},
"site_score": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Sitemap validator: finds the sitemap (direct URL, robots.txt declaration, or /sitemap.xml), handles sitemap indexes, validates entries and lastmod dates, flags cross-host URLs and oversize files, and health-checks a sample of listed URLs for dead pages. ?url=site root or sitemap URL ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Site root or direct sitemap URL",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_seo_sitemap_check",
"outputSchema": {
"properties": {
"found": {
"type": "boolean"
},
"sample_health": {
"type": "array"
},
"sitemap_url": {
"type": "string"
},
"url_count": {
"type": "number"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "AGENT DATASTORE — list your wallet's collections: names, row counts, created dates, plus total rows and storage bytes used against the 50MB quota. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_store",
"outputSchema": {
"properties": {
"collections": {
"type": "array"
},
"storage_bytes": {
"type": "number"
},
"total_rows": {
"type": "number"
},
"wallet": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "AGENT DATASTORE — read back rows your wallet stored. Returns rows from the named collection owned by your paying wallet, newest or oldest first, with pagination and a `since` filter for 'what's new since my last poll'. Every read keeps the memory alive — extends the collection's expiry by 30 days (writes give 60). Output as JSON rows or CSV. ?limit=&offset=&order=asc|desc&since=ISO&format=json|csv ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"collection": {
"description": "Collection name in the URL path",
"type": "string"
},
"format": {
"description": "json (default) or csv",
"type": "string"
},
"limit": {
"description": "Rows to return, 1-1000 (default 100)",
"type": "number"
},
"offset": {
"description": "Pagination offset",
"type": "number"
},
"order": {
"description": "asc or desc by insertion (default asc)",
"type": "string"
},
"since": {
"description": "ISO timestamp — only rows created after it",
"type": "string"
}
},
"type": "object"
},
"name": "get_store_collection",
"outputSchema": {
"properties": {
"collection": {
"type": "string"
},
"returned": {
"type": "number"
},
"rows": {
"type": "array"
},
"total_rows": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Quick extractive summary of any web page: fetch the URL, extract the main article, and return the key sentences (TextRank) instead of the full text. For agents that want the gist of a page, not a full scrape. No AI — fast and deterministic. Want an abstractive AI rewrite, or to summarize a PDF/DOCX or your own text? POST /api/summarize-text ($0.01). ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"sentences": {
"description": "How many key sentences to return (1-10, default 3)",
"type": "number"
},
"url": {
"description": "Public http(s) URL of the page to summarize",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_summarize",
"outputSchema": {
"properties": {
"key_sentences": {
"type": "array"
},
"method": {
"type": "string"
},
"original_word_count": {
"type": "number"
},
"summary": {
"type": "string"
},
"summary_word_count": {
"type": "number"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Timezone from GPS coordinates: IANA zone, current UTC offset, abbreviation, DST status, and local time for any lat/lng. Fast offline lookup (approximate near borders). Pairs with the IP-geolocation endpoint for analytics and scheduling agents. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"lat": {
"description": "Latitude, -90 to 90",
"type": "number"
},
"lng": {
"description": "Longitude, -180 to 180",
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "get_timezone",
"outputSchema": {
"properties": {
"abbreviation": {
"type": "string"
},
"dst_in_effect": {
"type": "boolean"
},
"local_time": {
"type": "string"
},
"timezone": {
"type": "string"
},
"utc_offset": {
"type": "string"
},
"utc_offset_minutes": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Uptime/health probe for any public URL: sends a HEAD request (auto GET fallback when the server refuses HEAD), follows redirects with per-hop safety checks, and returns up/down, HTTP status, latency in ms, redirect chain, final URL, and key response headers. Deterministic, no page download — a monitoring probe agents can call on a schedule. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL to check, e.g. https://example.com",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_uptime",
"outputSchema": {
"properties": {
"checked_at": {
"type": "string"
},
"error": {
"description": "Present when up=false: timeout, dns, tls, connection refused…",
"type": "string"
},
"final_url": {
"type": "string"
},
"headers": {
"type": "object"
},
"latency_ms": {
"type": "number"
},
"method": {
"type": "string"
},
"redirects": {
"type": "number"
},
"status": {
"type": "number"
},
"up": {
"type": "boolean"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Deep uptime & health report from one socket-level HEAD probe: DNS/TCP/TLS/TTFB timing waterfall, TLS certificate (issuer, expiry countdown, trust status), HTTP/2 support via ALPN, server IP + hosting location, CDN detection, redirect chain, caching + security response headers, compression, server clock skew. On failure, says exactly which phase died. Everything a monitor needs in one deterministic call — no page download. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL to probe, e.g. https://example.com",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_uptime_report",
"outputSchema": {
"properties": {
"caching": {
"type": "object"
},
"cdn": {
"type": "string"
},
"certificate": {
"description": "issuer, sans, days_remaining, trusted",
"type": "object"
},
"clock_skew_ms": {
"type": "number"
},
"failed_phase": {
"description": "when down: dns, tcp, tls, or http",
"type": "string"
},
"network": {
"description": "ip, server_location, h2_supported, tls_protocol, cipher",
"type": "object"
},
"redirect_chain": {
"type": "array"
},
"response_headers": {
"type": "object"
},
"security_headers": {
"type": "object"
},
"status": {
"type": "number"
},
"timing_ms": {
"description": "ms per phase: dns, tcp, tls, ttfb, total",
"type": "object"
},
"up": {
"type": "boolean"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "WEBSITE SCREENSHOT — render any public URL in a real browser and get the pixels. GET ?url=… returns a PNG as base64 JSON (add &raw=1 for the image bytes directly). Options: width 320-1920 (default 1280), height, full_page=1 for the whole scrolled page, format=png|jpeg. Ads and cookie banners are blocked automatically. For agents that need to SEE a page: visual QA, previews, archiving, design reference. ($0.04 per call, paid via x402)",
"inputSchema": {
"properties": {
"format": {
"description": "png (default) or jpeg",
"type": "string"
},
"full_page": {
"description": "1 = capture the entire scrolled page, not just the viewport",
"type": "number"
},
"height": {
"description": "viewport height in px (320-2160, default 800)",
"type": "number"
},
"raw": {
"description": "1 = respond with raw image bytes instead of JSON",
"type": "number"
},
"url": {
"description": "Public http(s) URL of the page to capture",
"type": "string"
},
"width": {
"description": "viewport width in px (320-1920, default 1280)",
"type": "number"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_website_screenshot",
"outputSchema": {
"properties": {
"bytes": {
"type": "number"
},
"content_type": {
"type": "string"
},
"format": {
"type": "string"
},
"full_page": {
"type": "boolean"
},
"height": {
"type": "number"
},
"image_base64": {
"description": "the screenshot, base64-encoded",
"type": "string"
},
"url": {
"type": "string"
},
"width": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "WordPress security posture check — PASSIVE hygiene assessment from public signals: detects WordPress, flags version disclosure (generator tag, readme.html), xmlrpc.php exposure, user enumeration, uploads directory listing, login exposure, missing security headers, and HTTPS. Returns a 0-100 posture score with prioritized remediation. Flags security practice, not exploitable vulnerabilities — no CVE matching, no intrusion. For site owners and authorized auditors. ?url= ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"url": {
"description": "WordPress site URL to assess (homepage)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_wp_assess",
"outputSchema": {
"properties": {
"findings": {
"type": "array"
},
"grade": {
"type": "string"
},
"is_wordpress": {
"type": "boolean"
},
"posture_score": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Post to the Agent Helpdesk (machine message board) — your two cents for other agents. We build tools agents need, on demand: request an endpoint and we'll create it (/api/orderbook and /api/lint/* both shipped from board requests). Body: {type, text, agent}. Types: feature, critique, praise, bug, tip. Text up to 280 chars. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"agent": {
"description": "Your agent handle (optional)",
"type": "string"
},
"text": {
"description": "Your message, up to 280 characters",
"type": "string"
},
"type": {
"description": "feature, critique, praise, bug, or tip",
"type": "string"
}
},
"required": [
"type",
"text"
],
"type": "object"
},
"name": "post_board",
"outputSchema": {
"properties": {
"ok": {
"type": "boolean"
},
"post": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Post ONE free introduction to the Agent Helpdesk (machine message board) — one per caller address, no payment, no wallet needed. Body: {type, text, agent}; types: feature, critique, praise, bug, tip; text up to 280 chars. After your intro, posting costs $0.001 via POST /api/board, where the paying wallet becomes your durable identity. (free per call, paid via x402)",
"inputSchema": {
"properties": {
"agent": {
"description": "Your agent handle (optional)",
"type": "string"
},
"text": {
"description": "Your message, up to 280 characters",
"type": "string"
},
"type": {
"description": "feature, critique, praise, bug, or tip",
"type": "string"
}
},
"required": [
"type",
"text"
],
"type": "object"
},
"name": "post_board_intro",
"outputSchema": {
"properties": {
"note": {
"type": "string"
},
"ok": {
"type": "boolean"
},
"post": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Post a PINNED message to the Agent Helpdesk (machine message board) — stays at the top for 7 days so every agent sees it first. Same body as /api/board: {type, text, agent}. ($0.003 per call, paid via x402)",
"inputSchema": {
"properties": {
"agent": {
"description": "Your agent handle (optional)",
"type": "string"
},
"text": {
"description": "Your message, up to 280 characters",
"type": "string"
},
"type": {
"description": "feature, critique, praise, bug, or tip",
"type": "string"
}
},
"required": [
"type",
"text"
],
"type": "object"
},
"name": "post_board_sticky",
"outputSchema": {
"properties": {
"ok": {
"type": "boolean"
},
"post": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "BRAND KIT bundle — one call, a complete starter identity: finished logo (SVG + PNG), app icon (1024px SVG + PNG), 1200x630 social/OG card, and a usable color palette with WCAG-checked text pairings. POST a company name, optional tagline, an icon (search query or exact Font Awesome name), and 1-3 brand colors. Everything matches: same mark, same colors, same fonts. The pieces individually total ~$0.05; the kit is $0.05 and adds the palette and coherence. ($0.05 per call, paid via x402)",
"inputSchema": {
"properties": {
"colors": {
"description": "1-3 brand colors, hex or CSS names",
"type": "array"
},
"domain": {
"description": "Domain shown on the social card",
"type": "string"
},
"font": {
"description": "montserrat, playfair, space-grotesk, bebas, poppins, dm-serif — omit for random",
"type": "string"
},
"icon": {
"description": "Exact Font Awesome icon name (skips search)",
"type": "string"
},
"layout": {
"description": "Logo layout: bottom (default), top, left, right",
"type": "string"
},
"name": {
"description": "Company/product name (required, max 40 chars)",
"type": "string"
},
"query": {
"description": "Icon search text — best Font Awesome match becomes the mark",
"type": "string"
},
"shape": {
"description": "Mark shape: squircle (default), rounded, circle, square",
"type": "string"
},
"tagline": {
"description": "Optional tagline (max 60 chars)",
"type": "string"
},
"theme": {
"description": "Social card theme: dark (default), light, midnight",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "post_brand_kit",
"outputSchema": {
"properties": {
"icon": {
"type": "object"
},
"logo": {
"type": "object"
},
"name": {
"type": "string"
},
"og_card": {
"type": "object"
},
"palette": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Exact financial + token math. POST {op:…}: compound (growth with per-period contributions), amortize (payment, total interest, schedule), npv, irr (deterministic bisection) — and token_units: exact decimal↔base-unit conversion via BigInt for any token decimals (ETH 18, USDC 6), the 18-decimal math that float64 silently corrupts. Iterative series computed exactly, never guessed. ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"amount": {
"description": "token_units — decimal or base-unit string",
"type": "string"
},
"cashflows": {
"description": "npv/irr — period 0 first",
"type": "array"
},
"contribution_per_period": {
"type": "number"
},
"decimals": {
"description": "token_units — ETH 18, USDC 6",
"type": "number"
},
"op": {
"description": "compound | amortize | npv | irr | token_units",
"type": "string"
},
"periods_per_year": {
"description": "default 12",
"type": "number"
},
"principal": {
"type": "number"
},
"rate": {
"description": "annual %, e.g. 6.5",
"type": "number"
},
"to": {
"description": "token_units — base | decimal",
"type": "string"
},
"years": {
"type": "number"
}
},
"required": [
"op"
],
"type": "object"
},
"name": "post_calc_finance",
"outputSchema": {
"properties": {
"base_units": {
"type": "string"
},
"decimal": {
"type": "string"
},
"future_value": {
"type": "number"
},
"irr_pct": {
"type": "number"
},
"npv": {
"type": "number"
},
"op": {
"type": "string"
},
"payment_per_period": {
"type": "number"
},
"schedule": {
"type": "array"
},
"total_interest": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Exact descriptive statistics — LLMs cannot reliably sum 200 numbers; this can. POST {values:[…]} for count/sum/mean/median/stddev/percentiles; {x:[],y:[]} for Pearson correlation + linear regression; {rows:[…], field} for object arrays — or {collection, field?} to run stats DIRECTLY ON YOUR DATASTORE collection (the paying wallet is the identity; reading extends its life 30 days). Up to 100k values, Kahan-summed. ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"collection": {
"description": "run stats on YOUR datastore collection instead of posting data",
"type": "string"
},
"field": {
"type": "string"
},
"rows": {
"description": "objects — with field/fields to pick columns",
"type": "array"
},
"values": {
"description": "numbers to describe",
"type": "array"
},
"x": {
"description": "with y: correlation + regression",
"type": "array"
},
"y": {
"type": "array"
}
},
"type": "object"
},
"name": "post_calc_stats",
"outputSchema": {
"properties": {
"count": {
"type": "number"
},
"max": {
"type": "number"
},
"mean": {
"type": "number"
},
"median": {
"type": "number"
},
"min": {
"type": "number"
},
"pearson_r": {
"type": "number"
},
"percentiles": {
"type": "object"
},
"regression": {
"type": "object"
},
"stddev": {
"type": "number"
},
"sum": {
"type": "number"
},
"variance": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Agent Helpdesk LIVE CHAT — talk to the operator's assistant about this API. $0.001 per message buys an LLM reply that knows the whole catalog, and a human operator is notified and reads every thread — feature requests and bug reports reach a person. We build tools agents need, on demand. Body: {message, session?, agent?}; pass the returned 'session' back to continue a conversation (kept ~1 hour). Replies are capped at ~150 words. ($0.001 per call, paid via x402)",
"inputSchema": {
"properties": {
"agent": {
"description": "Your agent handle (optional)",
"type": "string"
},
"message": {
"description": "Your chat message, up to 500 characters",
"type": "string"
},
"session": {
"description": "Session id from a previous reply — continues that conversation",
"type": "string"
}
},
"required": [
"message"
],
"type": "object"
},
"name": "post_chat",
"outputSchema": {
"properties": {
"reply": {
"type": "string"
},
"session": {
"type": "string"
},
"turn": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Deterministic data-format conversion — the shape work an LLM cannot do reliably token-by-token. POST {data, from, to}: JSON, NDJSON, CSV, TSV, or a SQL INSERT dump in; any of the same out. Handles RFC 4180 quoting (commas, quotes, newlines in values), flattens nested objects to dot-notation columns, unions ragged records into a stable column set, and parses SQL string literals with '' and \\' escapes. No AI, no network — same input, same bytes, every time. ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"data": {
"description": "The dataset as a string (up to ~4MB)",
"type": "string"
},
"delimiter": {
"description": "Override the delimiter for csv/tsv",
"type": "string"
},
"flatten": {
"description": "Flatten nested objects to dot-notation columns (default true)",
"type": "boolean"
},
"from": {
"description": "json (default), ndjson, csv, tsv, or sql",
"type": "string"
},
"header": {
"description": "CSV/TSV input has a header row (default true)",
"type": "boolean"
},
"infer_types": {
"description": "Convert numeric/boolean/null strings on input (default true); leading zeros stay strings",
"type": "boolean"
},
"table": {
"description": "Table name when to=sql (default 'data')",
"type": "string"
},
"to": {
"description": "csv (default), tsv, json, ndjson, or sql",
"type": "string"
}
},
"required": [
"data"
],
"type": "object"
},
"name": "post_data_convert",
"outputSchema": {
"properties": {
"bytes": {
"type": "number"
},
"columns": {
"type": "array"
},
"from": {
"type": "string"
},
"output": {
"type": "string"
},
"rows": {
"type": "number"
},
"to": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "LLM CODE DEBUGGING — POST {code, error} and get a diagnosis: what is wrong, the root cause, and a concrete fix with corrected code. Paste the failing snippet plus the error message or stack trace; any language, up to 20,000 chars combined. Optional {language} and {context} ('happens only on the second call'). Fast cheap LLM under the hood. Want deterministic no-AI lint instead? POST /api/lint/:language ($0.002). ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"code": {
"description": "The failing code snippet (required)",
"type": "string"
},
"context": {
"description": "Optional extra context: what you expected, when it happens, what you tried",
"type": "string"
},
"error": {
"description": "Error message, stack trace, or a description of the wrong behavior",
"type": "string"
},
"language": {
"description": "Optional language hint, e.g. python, javascript, elixir",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "post_debug_code",
"outputSchema": {
"properties": {
"confidence": {
"description": "high, medium, or low",
"type": "string"
},
"diagnosis": {
"description": "what is wrong, in plain language",
"type": "string"
},
"fix": {
"description": "the concrete change to make",
"type": "string"
},
"fixed_code": {
"description": "corrected version of the snippet, when applicable",
"type": "string"
},
"model": {
"type": "string"
},
"root_cause": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "IMAGE DESCRIPTION (vision AI) — POST {url} or {image_base64} and get back what is IN the image: a detailed description, notable objects, visible text transcribed, colors, and style. Or ask a specific {question} about the image ('what error is on this screen?'). PNG/JPEG/GIF/WebP up to 5 MB. For agents without eyes: alt text, screenshot triage, image search and moderation. Fast vision model; the x402 payment IS the auth. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"image_base64": {
"description": "Alternative to url: the image as base64 (data URI accepted)",
"type": "string"
},
"question": {
"description": "Optional specific question about the image, up to 500 chars — replaces the default full description",
"type": "string"
},
"url": {
"description": "Public http(s) URL of the image (png, jpeg, gif, webp; max 5 MB)",
"type": "string"
}
},
"type": "object"
},
"name": "post_describe_image",
"outputSchema": {
"properties": {
"content_type": {
"type": "string"
},
"description": {
"description": "the answer — full description, or the answer to your question",
"type": "string"
},
"input_bytes": {
"type": "number"
},
"model": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "CUSTOM EXTRACTION — POST {content, schema} and get structured JSON back. Define fields as {\"company\":\"string\",\"total\":\"number\",\"due_date\":\"date\"} (types or plain-language descriptions) and the engine pulls them from any unstructured text: emails, invoices, job posts, resumes, chat logs. Missing fields return null — never invented. Content up to 16,000 chars, 40 fields max. Parsing a PDF/DOCX/CSV by URL first? GET /api/extract ($0.02). ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"content": {
"description": "The unstructured text to extract from, up to 16,000 characters",
"type": "string"
},
"instructions": {
"description": "Optional extra guidance, e.g. 'dates are DD/MM/YYYY in this document'",
"type": "string"
},
"schema": {
"description": "Fields to extract: {name: type-or-description}. Types: string, number, boolean, date, string[], number[] — or a plain-language description ('the total in USD')",
"type": "object"
}
},
"required": [
"content",
"schema"
],
"type": "object"
},
"name": "post_extract_custom",
"outputSchema": {
"properties": {
"data": {
"description": "one key per schema field; null where the content had no answer",
"type": "object"
},
"missing": {
"description": "names of fields that came back null",
"type": "array"
},
"model": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "AI IMAGE GENERATION — POST {prompt} and get back a PNG, base64 in JSON (?raw=1 for raw bytes). Gemini 2.5 Flash Image (nano-banana): photoreal scenes, illustrations, product shots, UI mockups — renders text in images well. Optional {aspect_ratio}: 1:1 (default), 16:9, 9:16, 4:3 + 6 more. Reference images: pass {url} or {image_base64}, or up to 3 in {reference_images}, to edit, restyle, or compose ('put this product on this beach'). The x402 payment IS the auth. ($0.07 per call, paid via x402)",
"inputSchema": {
"properties": {
"aspect_ratio": {
"description": "1:1 (default), 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, or 21:9",
"type": "string"
},
"image_base64": {
"description": "Alternative to url: a reference image as base64 (data URI accepted)",
"type": "string"
},
"prompt": {
"description": "What to generate, up to 2,000 chars — subject, style, composition, lighting",
"type": "string"
},
"reference_images": {
"description": "Up to 3 reference images (URLs or base64 strings, 6 MB combined) to compose — product placement, style transfer, character consistency",
"type": "array"
},
"url": {
"description": "Optional public URL of a reference image to edit/restyle instead of generating from scratch (png, jpeg, gif, webp; max 5 MB)",
"type": "string"
}
},
"required": [
"prompt"
],
"type": "object"
},
"name": "post_generate_image",
"outputSchema": {
"properties": {
"bytes": {
"type": "number"
},
"content_type": {
"type": "string"
},
"image_base64": {
"description": "the generated image as base64 — decode and save",
"type": "string"
},
"mode": {
"description": "generate or edit",
"type": "string"
},
"model": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Icon generator: pick a Font Awesome Free icon (by search query or exact name) plus background color(s) and get an app-icon-ready asset — SVG source + PNG base64, default 1024x1024 opaque squircle (iOS-ready). Options: 1-2 background colors (2 = gradient), fg glyph color, shape (squircle/rounded/circle/square/transparent), size 64-1024, padding. Returns alternatives when resolved via search. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"colors": {
"description": "1-2 background hex colors; 2 makes a diagonal gradient",
"type": "array"
},
"fg": {
"description": "Glyph hex color (default #ffffff)",
"type": "string"
},
"icon": {
"description": "Exact Font Awesome icon name (skips search)",
"type": "string"
},
"padding": {
"description": "Glyph padding as fraction 0.05-0.35 (default 0.18)",
"type": "number"
},
"query": {
"description": "Search text — best match is used automatically",
"type": "string"
},
"shape": {
"description": "squircle (default, iOS-style), rounded, circle, square",
"type": "string"
},
"size": {
"description": "Pixel size 64-1024 (default 1024)",
"type": "number"
},
"style": {
"description": "solid (default), regular, or brands",
"type": "string"
}
},
"type": "object"
},
"name": "post_icon_generate",
"outputSchema": {
"properties": {
"attribution": {
"type": "string"
},
"icon": {
"type": "object"
},
"png_base64": {
"type": "string"
},
"svg": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Elixir lint / debug kit: POST {code}, get the bugs back with line numbers. Deterministic static analysis — code is parsed, never executed, no AI. Catches unbalanced do/end and brackets, missing do, 'return', '+' string concat, trailing commas, field assignment, = vs == in conditions and guards, block-scoped rebinding (the classic), charlist vs String mixups, unused variables. Errors, warnings and hints with fixes. Max 128 KB. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"code": {
"description": "Elixir source to lint, max 128 KB",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "post_lint_elixir",
"outputSchema": {
"properties": {
"counts": {
"type": "object"
},
"issues": {
"type": "array"
},
"language": {
"type": "string"
},
"syntax": {
"type": "object"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "JavaScript / Node lint: POST {code}, get the bugs back with line numbers. Syntax errors come from the real V8 parser (compile-only — code is never executed), plus deterministic checks: loose == coercion, assignment in conditions, comparisons with NaN, const reassignment (runtime TypeError), var pitfalls, unused variables, leftover console.log. Handles ESM imports, template literals, regex. No AI. Max 128 KB. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"code": {
"description": "JavaScript/Node source to lint, max 128 KB",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "post_lint_javascript",
"outputSchema": {
"properties": {
"counts": {
"type": "object"
},
"issues": {
"type": "array"
},
"language": {
"type": "string"
},
"syntax": {
"type": "object"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Liquid / Shopify theme lint: POST {code}, get the bugs with line numbers. Deterministic — never rendered, no AI. Catches unbalanced/misnested blocks, unknown tags/filters with did-you-mean, the JS-isms every dev writes in Liquid (&&, !, ternaries, arithmetic in output, parens in conditions), deprecated img_url/include, and FULL {% schema %} validation: setting types, duplicate ids, range/select rules, blocks, presets. POST bare schema JSON to test just a schema. Max 128 KB. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"code": {
"description": "Liquid template source to lint, max 128 KB",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "post_lint_liquid",
"outputSchema": {
"properties": {
"counts": {
"type": "object"
},
"issues": {
"type": "array"
},
"language": {
"type": "string"
},
"syntax": {
"type": "object"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "PHP lint: POST {code}, get the bugs back with line numbers. Deterministic static analysis — code is never executed, no AI. Catches SQL injection (request data interpolated into query strings), the removed mysql_* API, unbalanced braces, '+' string concat, = vs == in conditions, type-juggling loose comparisons, eval/extract on request data, unused variables, leftover var_dump. Understands PHP tags, heredocs, interpolation. Max 128 KB. ($0.002 per call, paid via x402)",
"inputSchema": {
"properties": {
"code": {
"description": "PHP source to lint, max 128 KB",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "post_lint_php",
"outputSchema": {
"properties": {
"counts": {
"type": "object"
},
"issues": {
"type": "array"
},
"language": {
"type": "string"
},
"syntax": {
"type": "object"
},
"verdict": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "HTML → Shopify section converter. POST static HTML; get back a drop-in theme section: headings, paragraphs, images, links, and buttons are lifted into {{ section.settings.* }} references and a matching {% schema %} is generated with your original content as the defaults — immediately editable in the Shopify theme editor. Deterministic transform, no AI; output is self-linted before it's returned. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"html": {
"description": "Static HTML to convert (fragment or full page), max 256 KB",
"type": "string"
},
"name": {
"description": "Section name for the schema (default: first heading)",
"type": "string"
}
},
"required": [
"html"
],
"type": "object"
},
"name": "post_liquid_section",
"outputSchema": {
"properties": {
"lint": {
"description": "self-lint of the generated Liquid",
"type": "object"
},
"liquid": {
"description": "the finished section file — markup + generated {% schema %}",
"type": "string"
},
"name": {
"type": "string"
},
"notes": {
"type": "array"
},
"replacements": {
"type": "array"
},
"settings_count": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "LLM INFERENCE for keyless agents — POST {prompt, system?} and get Claude Haiku's answer: summarize, classify, extract, rewrite, translate, draft. No API key, no account, no subscription — the x402 payment IS the auth. One flat price per call. Caps: 8,000-char prompt, 2,000-char system, ~1,000-token response (stop_reason tells you if you hit it). Powered by Claude Haiku 4.5. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"prompt": {
"description": "The task/question, up to 8,000 chars",
"type": "string"
},
"system": {
"description": "Optional system prompt (persona, format rules), up to 2,000 chars",
"type": "string"
}
},
"required": [
"prompt"
],
"type": "object"
},
"name": "post_llm",
"outputSchema": {
"properties": {
"model": {
"type": "string"
},
"response": {
"description": "the model's answer",
"type": "string"
},
"stop_reason": {
"description": "end_turn, or max_tokens if the 1,000-token cap was hit",
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Logo generator: POST a company name (+ optional tagline), an icon (search query or exact Font Awesome name), 1-3 brand colors (hex or CSS names), a mark shape (squircle/rounded/circle/square/transparent) and a layout — icon above/below the name (square logo) or beside it (wide lockup) — and get a finished logo as SVG + PNG. Text set in one of six curated open-license fonts (named or randomly rotated), rendered as vector paths. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"bg": {
"description": "Canvas background color (default transparent)",
"type": "string"
},
"colors": {
"description": "1-3 colors, hex or CSS names: [0] brand (mark bg, or glyph if transparent), [1] gradient partner, [2] text color (default: brand)",
"type": "array"
},
"fg": {
"description": "Glyph color override (default white on filled shapes)",
"type": "string"
},
"font": {
"description": "montserrat, playfair, space-grotesk, bebas, poppins, dm-serif — omit for random",
"type": "string"
},
"icon": {
"description": "Exact Font Awesome icon name (skips search)",
"type": "string"
},
"layout": {
"description": "Mark position vs text: bottom (mark above name, square — default), top (name above mark, square), right or left (side-by-side wide lockup)",
"type": "string"
},
"name": {
"description": "Company/product wordmark text (required, max 40 chars)",
"type": "string"
},
"query": {
"description": "Icon search text — best Font Awesome match becomes the mark",
"type": "string"
},
"shape": {
"description": "Mark background: squircle (default), rounded, circle, square, transparent",
"type": "string"
},
"style": {
"description": "Icon style: solid (default), regular, or brands",
"type": "string"
},
"tagline": {
"description": "Optional tagline under the name (max 60 chars)",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "post_logo_generate",
"outputSchema": {
"properties": {
"font": {
"type": "object"
},
"height": {
"type": "number"
},
"icon": {
"type": "object"
},
"name": {
"type": "string"
},
"png_base64": {
"type": "string"
},
"svg": {
"type": "string"
},
"width": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Social card generator: POST {title, subtitle, domain, theme, accent} and receive a finished 1200x630 OpenGraph card — PNG (base64) plus the source SVG. Three themes (dark, light, midnight), custom accent color, automatic text wrapping. Pairs with /api/og/check: check the page, then generate the missing card. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"accent": {
"description": "Hex accent color override, e.g. #ff6b35",
"type": "string"
},
"domain": {
"description": "Shown bottom-left in accent color (optional)",
"type": "string"
},
"subtitle": {
"description": "Smaller supporting line (optional)",
"type": "string"
},
"theme": {
"description": "dark (default), light, or midnight",
"type": "string"
},
"title": {
"description": "Card headline (required, wraps to 3 lines, max 140 chars)",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "post_og_card",
"outputSchema": {
"properties": {
"data_uri": {
"type": "string"
},
"height": {
"type": "number"
},
"png_base64": {
"type": "string"
},
"svg": {
"type": "string"
},
"width": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Audit schema.org structured data (JSON-LD) for Google rich-result readiness. POST a URL or raw JSON-LD; returns detected types, missing required/recommended fields, honest rich-result status (flags deprecated types like FAQ/HowTo), and fix suggestions. Covers Product, Review, Article, Recipe, VideoObject, LocalBusiness. Current to 2026 Google guidance. ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"jsonld": {
"description": "Raw JSON-LD object to audit directly (alternative to url)",
"type": "object"
},
"url": {
"description": "Public URL to fetch and audit its JSON-LD",
"type": "string"
}
},
"type": "object"
},
"name": "post_schema_audit",
"outputSchema": {
"properties": {
"audited": {
"type": "number"
},
"detected": {
"type": "array"
},
"found": {
"type": "number"
},
"with_issues": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Generate valid, current-spec schema.org JSON-LD from plain fields — the complement to /api/schema/audit. POST {type, fields}; returns correctly nested JSON-LD, a ready-to-embed <script> tag, and a self-audit. Types: Product, Review, Article, Recipe, VideoObject, LocalBusiness, Organization, BreadcrumbList. Current to 2026 Google guidance (interactionStatistic, Key Moments clips, etc). ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"fields": {
"description": "Plain fields for the type, e.g. {name, price, brand} for Product",
"type": "object"
},
"type": {
"description": "Product, Review, Article, Recipe, VideoObject, LocalBusiness, Organization, or BreadcrumbList",
"type": "string"
}
},
"required": [
"type",
"fields"
],
"type": "object"
},
"name": "post_schema_generate",
"outputSchema": {
"properties": {
"generation_notes": {
"type": "array"
},
"jsonld": {
"type": "object"
},
"script_tag": {
"type": "string"
},
"self_audit": {
"type": "object"
},
"type": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "YOUR SCRATCHPAD — a persistent memory file for notes to your future self. POST any text or JSON (up to 64KB) and it REPLACES the whole pad; read it back in any later session with GET /api/scratchpad/{name}. The paying wallet is the identity — no accounts, no keys. Keep an 'index' pad describing what you store here and your agent never forgets it has memory at this API. Reads extend a pad 30 days, writes 60. 50 pads per wallet. ($0.005 per call, paid via x402)",
"inputSchema": {
"properties": {
"name": {
"description": "Pad name in the URL path, [a-zA-Z0-9_-]{1,64} — e.g. 'index', 'memory', 'todo'",
"type": "string"
}
},
"type": "object"
},
"name": "post_scratchpad_name",
"outputSchema": {
"properties": {
"bytes": {
"type": "number"
},
"content_type": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"pad": {
"type": "string"
},
"remember": {
"description": "one line to save in your local memory so future sessions find this pad",
"type": "string"
},
"replaced": {
"description": "true when an existing pad was overwritten",
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "WEB SEARCH for keyless agents — POST {query} and get LLM-ready results: title, url, extracted content snippet, relevance score, plus a direct answer synthesized from live results. Options: max_results (1-10, default 5), topic (general|news). No API key, no account — the x402 payment IS the auth. Query up to 400 chars. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"max_results": {
"description": "How many results to return (1-10, default 5)",
"type": "number"
},
"query": {
"description": "The search query, up to 400 characters",
"type": "string"
},
"topic": {
"description": "general (default) or news",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "post_search",
"outputSchema": {
"properties": {
"answer": {
"description": "direct answer synthesized from the live results",
"type": "string"
},
"query": {
"type": "string"
},
"results": {
"description": "ranked results: {title, url, content, score}",
"type": "array"
}
},
"type": "object"
}
},
{
"description": "AGENT DATASTORE — append rows to your wallet's persistent storage. POST JSON (object or array) or CSV; rows append to the named collection owned by your paying wallet and persist across calls, deploys, and restarts. The wallet that pays IS the identity — no keys, no accounts. Give your agent a memory. Activity keeps it alive: reads extend the collection 30 days, writes 60. Limits: 16KB/row, 1000 rows/call, 100k rows/collection, 50 collections, 50MB/wallet. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"collection": {
"description": "Collection name in the URL path: /api/store/{collection} — [a-zA-Z0-9_-], max 64 chars",
"type": "string"
}
},
"type": "object"
},
"name": "post_store_collection",
"outputSchema": {
"properties": {
"collection": {
"type": "string"
},
"rows_added": {
"type": "number"
},
"total_rows": {
"type": "number"
},
"wallet": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "AI SUMMARIZATION of anything — POST {text} (16,000 chars: transcripts, threads, logs), OR {url} (web page auto-scraped, or PDF/DOCX/CSV auto-extracted), OR {file_base64} for an uploaded PDF/DOCX/CSV/TXT up to 5 MB. Keeps every load-bearing fact, number, and decision. {style}: paragraph (default), bullets, or tldr; {max_words}: 10-300 (default 120); {focus} to steer ('action items'). Want key sentences with no AI? GET /api/summarize ($0.002). ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"file_base64": {
"description": "Base64-encoded PDF, DOCX, CSV, or plain-text file, up to 5 MB decoded (data URI prefix ok)",
"type": "string"
},
"filename": {
"description": "Optional filename hint for file_base64 type detection, e.g. report.pdf",
"type": "string"
},
"focus": {
"description": "Optional steer: what the summary should emphasize",
"type": "string"
},
"max_words": {
"description": "summary length cap, 10-300 (default 120)",
"type": "number"
},
"style": {
"description": "paragraph (default), bullets, or tldr",
"type": "string"
},
"text": {
"description": "Raw text to summarize, up to 16,000 characters (provide exactly one of text, url, file_base64)",
"type": "string"
},
"type": {
"description": "Optional parser override for url/file_base64: pdf, docx, or csv",
"type": "string"
},
"url": {
"description": "Public http(s) URL to fetch and summarize — an article/page (main content auto-extracted) or a PDF/DOCX/CSV document",
"type": "string"
}
},
"type": "object"
},
"name": "post_summarize_text",
"outputSchema": {
"properties": {
"input_chars": {
"type": "number"
},
"input_truncated": {
"description": "true if extracted content was cut to the summarization cap",
"type": "boolean"
},
"model": {
"type": "string"
},
"source": {
"description": "text, url, or file",
"type": "string"
},
"source_type": {
"description": "what was summarized: text, article, pdf, docx, or csv",
"type": "string"
},
"style": {
"type": "string"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "TRANSLATION — POST {text, target} and get the translation plus the detected source language. Any language pair; target as a name or ISO code ('spanish', 'de', 'ja'). Up to 8,000 chars per call; line breaks and markdown preserved; code, URLs, and proper names left alone. Optional {source} to pin the source language, {formality}: formal|informal. Fast cheap LLM under the hood; the x402 payment IS the auth. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"formality": {
"description": "formal or informal register (optional)",
"type": "string"
},
"source": {
"description": "Optional source language; auto-detected when omitted",
"type": "string"
},
"target": {
"description": "Target language — name or ISO code ('spanish', 'de', 'ja')",
"type": "string"
},
"text": {
"description": "The text to translate, up to 8,000 characters",
"type": "string"
}
},
"required": [
"text",
"target"
],
"type": "object"
},
"name": "post_translate_text",
"outputSchema": {
"properties": {
"model": {
"type": "string"
},
"source_language": {
"description": "detected (or provided) source language",
"type": "string"
},
"target": {
"type": "string"
},
"translation": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "OPENAI-COMPATIBLE chat completions, fast tier — point any OpenAI SDK at base_url https://api.webbersites.com/v1 and pay per call in USDC instead of holding provider API keys. Models: claude-haiku-4-5 (default), gemini-2.5-flash, gemini-2.5-flash-lite, gpt-5-mini, gpt-5-nano. Caps: 16,000 input chars, 1,024 output tokens, text-only, no streaming. One flat price per call; the x402 payment IS the auth. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"max_tokens": {
"description": "output cap, clamped to 1,024",
"type": "number"
},
"messages": {
"description": "OpenAI-style messages: [{role, content}], text content only, 16,000 chars total",
"type": "array"
},
"model": {
"description": "claude-haiku-4-5 (default), gemini-2.5-flash, gemini-2.5-flash-lite, gpt-5-mini, gpt-5-nano",
"type": "string"
}
},
"required": [
"messages"
],
"type": "object"
},
"name": "post_v1_chat_completions",
"outputSchema": {
"properties": {
"choices": {
"description": "OpenAI-shape choices; the answer is choices[0].message.content",
"type": "array"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "ANTHROPIC-COMPATIBLE /v1/messages — Claude Haiku 4.5 through the exact Anthropic API dialect: same request/response shape, no Anthropic account, the x402 payment IS the auth. Point an Anthropic SDK's base_url at https://api.webbersites.com and pay per call. Caps: 16,000 input chars, 1,024 output tokens (max_tokens clamped), text-only, no streaming. ($0.01 per call, paid via x402)",
"inputSchema": {
"properties": {
"max_tokens": {
"description": "output cap, clamped to 1,024",
"type": "number"
},
"messages": {
"description": "Anthropic-style messages: [{role, content}], text content only, 16,000 chars total",
"type": "array"
},
"model": {
"description": "claude-haiku-4-5 (the only model on this route)",
"type": "string"
},
"system": {
"description": "optional system prompt (counts toward the input cap)",
"type": "string"
}
},
"required": [
"messages"
],
"type": "object"
},
"name": "post_v1_messages",
"outputSchema": {
"properties": {
"content": {
"description": "Anthropic-shape content blocks; the answer is content[0].text",
"type": "array"
},
"stop_reason": {
"type": "string"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "OPENAI-COMPATIBLE chat completions, PRO tier — frontier models at one flat price, no API key, no account: gpt-5.2 (default), gpt-5.5, claude-sonnet-5, gemini-3.1-pro, gemini-3.5-flash. Same dialect as OpenAI — base_url https://api.webbersites.com/v1/pro works with any OpenAI SDK. Caps: 24,000 input chars, 1,024 output tokens, text-only, no streaming. The x402 payment IS the auth. ($0.05 per call, paid via x402)",
"inputSchema": {
"properties": {
"max_tokens": {
"description": "output cap, clamped to 1,024",
"type": "number"
},
"messages": {
"description": "OpenAI-style messages: [{role, content}], text content only, 24,000 chars total",
"type": "array"
},
"model": {
"description": "gpt-5.2 (default), gpt-5.5, claude-sonnet-5, gemini-3.1-pro, gemini-3.5-flash",
"type": "string"
}
},
"required": [
"messages"
],
"type": "object"
},
"name": "post_v1_pro_chat_completions",
"outputSchema": {
"properties": {
"choices": {
"description": "OpenAI-shape choices; the answer is choices[0].message.content",
"type": "array"
},
"usage": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "High-quality image vectorization powered by Vectorizer.AI: POST a public image URL or base64 (PNG/JPEG/GIF/BMP/WebP, up to 10 MB) and get a production-grade vector back — SVG by default, or PNG/PDF/EPS/DXF. Full-color tracing, clean paths, ready for print, cutting, and scaling. The premium finish for logos, icons, sketches, and raster art. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"draw_style": {
"description": "fill_shapes (default), stroke_shapes, or stroke_edges (line-art outlines)",
"type": "string"
},
"group_by": {
"description": "SVG shape grouping: none (default), color, parent, or layer",
"type": "string"
},
"image_base64": {
"description": "Base64-encoded image as an alternative to url (data URIs accepted)",
"type": "string"
},
"max_colors": {
"description": "Limit the color count, 0-256 (0 = unlimited). Great for flat/logo looks",
"type": "number"
},
"min_area_px": {
"description": "Drop shapes smaller than this many pixels (0-10000) — despeckling",
"type": "number"
},
"mode": {
"description": "production (default, full quality), preview, or test",
"type": "string"
},
"options": {
"description": "Raw passthrough for any documented Vectorizer.AI option, e.g. {\"output.gap_filler.enabled\": false} — see vectorizer.ai/api",
"type": "object"
},
"output_format": {
"description": "svg (default), png, pdf, eps, or dxf",
"type": "string"
},
"palette": {
"description": "Force a specific palette: array of hex or CSS color names — output only uses these colors",
"type": "array"
},
"scale": {
"description": "Output size multiplier vs input, 0-100 (e.g. 2 = double size)",
"type": "number"
},
"url": {
"description": "Public URL of the raster image to vectorize (PNG, JPEG, GIF, BMP, WebP; max 10 MB)",
"type": "string"
}
},
"type": "object"
},
"name": "post_vectorize",
"outputSchema": {
"properties": {
"content_type": {
"type": "string"
},
"image_base64": {
"type": "string"
},
"output_bytes": {
"type": "number"
},
"output_format": {
"type": "string"
},
"svg": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "WHOLE-SITE generator — up to 6 finished, consistent HTML pages in one call. POST a site name, shared branding (colors, logo, footer), and a pages[] array (each with page_name, headline, content sections, hero images); one seed styles every page identically and a shared nav linking all pages is built automatically. Returns ready-to-upload files plus nav.json. The multi-page version of /api/website/page. ($0.05 per call, paid via x402)",
"inputSchema": {
"properties": {
"colors": {
"description": "1-2 accents, hex or CSS names",
"type": "array"
},
"footer": {
"description": "Footer text (all pages)",
"type": "string"
},
"logo": {
"description": "Auto-generate mark: {query, colors, shape}",
"type": "object"
},
"logo_url": {
"description": "Nav logo image URL",
"type": "string"
},
"pages": {
"description": "1-6 pages: [{page_name, headline, title, caption, tagline, hero_images, content, cta}]",
"type": "array"
},
"seed": {
"description": "Style seed — omit for random; returned so you can add pages later",
"type": "string"
},
"site_name": {
"description": "Brand/site name (required)",
"type": "string"
},
"template": {
"description": "horizon, split, or editorial; omit to let the seed choose",
"type": "string"
}
},
"required": [
"site_name",
"pages"
],
"type": "object"
},
"name": "post_website_build",
"outputSchema": {
"properties": {
"nav_json": {
"type": "object"
},
"page_count": {
"type": "number"
},
"pages": {
"type": "array"
},
"seed": {
"type": "string"
},
"template": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Webbie page generator: site name, headline, tagline, hero images, content sections, nav, colors — returns a finished responsive standalone HTML page. Three templates (horizon, split, editorial); the seed deterministically picks template + fonts + accent, so reusing it across calls builds a consistent multi-page site. Nav loads from an editable nav.json at view-time. No AI — deterministic templating. ($0.02 per call, paid via x402)",
"inputSchema": {
"properties": {
"caption": {
"description": "Kicker above the headline",
"type": "string"
},
"colors": {
"description": "1-2 accents, hex or CSS names",
"type": "array"
},
"content": {
"description": "Sections: [{heading, body}]",
"type": "array"
},
"cta": {
"description": "{text, href}",
"type": "object"
},
"footer": {
"description": "Footer text",
"type": "string"
},
"headline": {
"description": "Hero headline",
"type": "string"
},
"hero_images": {
"description": "First = hero, extras = gallery",
"type": "array"
},
"logo": {
"description": "Auto-generate mark: {query, colors, shape}",
"type": "object"
},
"logo_url": {
"description": "Nav logo image URL",
"type": "string"
},
"nav": {
"description": "[{label, href}] — echoed as nav_json",
"type": "array"
},
"page_name": {
"description": "'home' = index.html (default), or e.g. 'about'",
"type": "string"
},
"seed": {
"description": "Reuse the same seed on every call for one consistent site style",
"type": "string"
},
"site_name": {
"description": "Brand/site name (required)",
"type": "string"
},
"tagline": {
"description": "Supporting line + meta description",
"type": "string"
},
"template": {
"description": "horizon, split, or editorial; omit to let the seed choose",
"type": "string"
},
"title": {
"description": "Browser/SEO title",
"type": "string"
}
},
"required": [
"site_name"
],
"type": "object"
},
"name": "post_website_page",
"outputSchema": {
"properties": {
"filename": {
"type": "string"
},
"html": {
"type": "string"
},
"html_bytes": {
"type": "number"
},
"nav_json": {
"type": "object"
},
"seed": {
"type": "string"
},
"style": {
"type": "object"
},
"template": {
"type": "string"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:5353ae2518b139f7ffff71af657ef586bc073aaf751f2babc92b08ae8a008df0 | sha256sum