Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 2 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:5353ae2518b139f7ffff71af657ef586bc073aaf751f2babc92b08ae8a008df0 | sha256sum