# io.github.webberdesign/webbersites-x402-data-api (remote · api.webbersites.com)

45 pay-per-call AI agent tools: scraping, SEO, crypto data, lint, agent memory. x402 USDC on Base.

- Trust score: 72/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.webbersites.com`: 72/100 (this document), [markdown](https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api.md), [page](https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api)

## Channel facts

- Endpoint: `https://api.webbersites.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 12957 tokens (~166/item across 78 items; 78 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http webberdesign-webbersites-x402-data-api https://api.webbersites.com/mcp
```

### Codex

```toml
[mcp_servers.webberdesign-webbersites-x402-data-api]
url = "https://api.webbersites.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "webberdesign-webbersites-x402-data-api": {
      "type": "remote",
      "url": "https://api.webbersites.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add webberdesign-webbersites-x402-data-api --url https://api.webbersites.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  webberdesign-webbersites-x402-data-api:
    url: "https://api.webbersites.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "webberdesign-webbersites-x402-data-api": {
      "type": "http",
      "url": "https://api.webbersites.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 70, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 65, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 65)

First indexed and scored.

## MCP tools (78)

### `get_price_coin` (~76 tokens)

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)

Input parameters:

- `coin` (string, required): CoinGecko asset id, e.g. bitcoin, ethereum, solana

Output parameters:

- `change_24h_pct` (number)
- `coin` (string)
- `ts` (string)
- `usd` (number)

### `get_report_coin` (~107 tokens)

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)

Input parameters:

- `coin` (string, required): CoinGecko asset id, e.g. bitcoin, ethereum, solana

Output parameters:

- `change_24h_pct` (number)
- `change_30d_pct` (number)
- `change_7d_pct` (number)
- `coin` (string)
- `from_ath_pct` (number)
- `market_cap_rank` (number)
- `price_usd` (number)
- `signals` (object)
- `summary` (string)
- `symbol` (string)

### `get_orderbook` (~196 tokens)

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)

Input parameters:

- `depth` (number): price levels per side, 1-200 (default 50)
- `pair` (string, required): BASE-QUOTE, e.g. BTC-USD, ETH-USD, SOL-USD
- `source` (string): auto (default), coinbase, binance, kraken

Output parameters:

- `asks` (array)
- `best_ask` (object)
- `best_bid` (object)
- `bids` (array)
- `liquidity_quote` (object)
- `mid` (number)
- `pair` (string)
- `slippage` (object)
- `source` (string)
- `spread` (number)
- `spread_bps` (number)

### `get_scrape` (~74 tokens)

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)

Input parameters:

- `url` (string, required): Public http(s) URL of the page to fetch and convert to markdown

Output parameters:

- `markdown` (string)
- `title` (string)
- `url` (string)
- `word_count` (number)

### `get_summarize` (~147 tokens)

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)

Input parameters:

- `sentences` (number): How many key sentences to return (1-10, default 3)
- `url` (string, required): Public http(s) URL of the page to summarize

Output parameters:

- `key_sentences` (array)
- `method` (string)
- `original_word_count` (number)
- `summary` (string)
- `summary_word_count` (number)
- `title` (string)
- `url` (string)

### `get_website_screenshot` (~236 tokens)

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)

Input parameters:

- `format` (string): png (default) or jpeg
- `full_page` (number): 1 = capture the entire scrolled page, not just the viewport
- `height` (number): viewport height in px (320-2160, default 800)
- `raw` (number): 1 = respond with raw image bytes instead of JSON
- `url` (string, required): Public http(s) URL of the page to capture
- `width` (number): viewport width in px (320-1920, default 1280)

Output parameters:

- `bytes` (number)
- `content_type` (string)
- `format` (string)
- `full_page` (boolean)
- `height` (number)
- `image_base64` (string): the screenshot, base64-encoded
- `url` (string)
- `width` (number)

### `get_timezone` (~99 tokens)

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)

Input parameters:

- `lat` (number, required): Latitude, -90 to 90
- `lng` (number, required): Longitude, -180 to 180

Output parameters:

- `abbreviation` (string)
- `dst_in_effect` (boolean)
- `local_time` (string)
- `timezone` (string)
- `utc_offset` (string)
- `utc_offset_minutes` (number)

### `post_llm` (~164 tokens)

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)

Input parameters:

- `prompt` (string, required): The task/question, up to 8,000 chars
- `system` (string): Optional system prompt (persona, format rules), up to 2,000 chars

Output parameters:

- `model` (string)
- `response` (string): the model's answer
- `stop_reason` (string): end_turn, or max_tokens if the 1,000-token cap was hit
- `usage` (object)

### `get_calc` (~132 tokens)

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)

Input parameters:

- `expr` (string, required): Math expression, max 400 chars — e.g. '2^128', 'sqrt(2)', '12 inch to cm'

Output parameters:

- `expr` (string)
- `result` (string): exact result as a string
- `result_number` (number): float64 companion when finite
- `type` (string)

### `post_calc_stats` (~198 tokens)

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)

Input parameters:

- `collection` (string): run stats on YOUR datastore collection instead of posting data
- `field` (string)
- `rows` (array): objects — with field/fields to pick columns
- `values` (array): numbers to describe
- `x` (array): with y: correlation + regression
- `y` (array)

Output parameters:

- `count` (number)
- `max` (number)
- `mean` (number)
- `median` (number)
- `min` (number)
- `pearson_r` (number)
- `percentiles` (object)
- `regression` (object)
- `stddev` (number)
- `sum` (number)
- `variance` (number)

### `get_calc_dates` (~185 tokens)

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)

Input parameters:

- `add` (string): e.g. 30d, -2w, 3m, 1y, 10bd
- `date` (string): ISO date — alone: info; with add: arithmetic
- `from` (string): ISO date — with to: difference
- `to` (string)

Output parameters:

- `date` (object)
- `diff` (object)
- `from` (object)
- `result` (object)
- `to` (object)

### `post_calc_finance` (~248 tokens)

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)

Input parameters:

- `amount` (string): token_units — decimal or base-unit string
- `cashflows` (array): npv/irr — period 0 first
- `contribution_per_period` (number)
- `decimals` (number): token_units — ETH 18, USDC 6
- `op` (string, required): compound | amortize | npv | irr | token_units
- `periods_per_year` (number): default 12
- `principal` (number)
- `rate` (number): annual %, e.g. 6.5
- `to` (string): token_units — base | decimal
- `years` (number)

Output parameters:

- `base_units` (string)
- `decimal` (string)
- `future_value` (number)
- `irr_pct` (number)
- `npv` (number)
- `op` (string)
- `payment_per_period` (number)
- `schedule` (array)
- `total_interest` (number)

### `get_convert` (~154 tokens)

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)

Input parameters:

- `amount` (number): quantity of 'from' (default 1)
- `from` (string, required): CoinGecko id or ticker (bitcoin/btc), or fiat code (usd, eur…)
- `to` (string, required): CoinGecko id/ticker or fiat code

Output parameters:

- `amount` (number)
- `from` (string)
- `prices` (object)
- `rate` (number)
- `result` (number)
- `to` (string)

### `get_geo` (~80 tokens)

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)

Input parameters:

- `ip` (string): IPv4 or IPv6 address to locate. Omit to geolocate the caller.

Output parameters:

- `city` (string)
- `country` (string)
- `ip` (string)
- `ll` (array)
- `region` (string)
- `timezone` (string)

### `get_ping` (~128 tokens)

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)

Input parameters:

- `url` (string, required): Public http(s) URL to ping, e.g. https://example.com

Output parameters:

- `checked_at` (string)
- `error` (string): when no response: timeout, dns, tls, connection refused…
- `latency_ms` (number)
- `status` (number)
- `up` (boolean)
- `url` (string)

### `get_uptime` (~116 tokens)

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)

Input parameters:

- `url` (string, required): Public http(s) URL to check, e.g. https://example.com

Output parameters:

- `checked_at` (string)
- `error` (string): Present when up=false: timeout, dns, tls, connection refused…
- `final_url` (string)
- `headers` (object)
- `latency_ms` (number)
- `method` (string)
- `redirects` (number)
- `status` (number)
- `up` (boolean)
- `url` (string)

### `get_uptime_report` (~132 tokens)

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)

Input parameters:

- `url` (string, required): Public http(s) URL to probe, e.g. https://example.com

Output parameters:

- `caching` (object)
- `cdn` (string)
- `certificate` (object): issuer, sans, days_remaining, trusted
- `clock_skew_ms` (number)
- `failed_phase` (string): when down: dns, tcp, tls, or http
- `network` (object): ip, server_location, h2_supported, tls_protocol, cipher
- `redirect_chain` (array)
- `response_headers` (object)
- `security_headers` (object)
- `status` (number)
- `timing_ms` (object): ms per phase: dns, tcp, tls, ttfb, total
- `up` (boolean)
- `url` (string)

### `get_platform` (~143 tokens)

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)

Input parameters:

- `url` (string, required): Public http(s) URL to fingerprint, e.g. https://example.com

Output parameters:

- `also_detected` (array)
- `category` (string): cms, ecommerce, site-builder, framework, static-generator, static, custom
- `checked_at` (string)
- `confidence` (string): high, medium, or low
- `evidence` (array): the fingerprints behind the verdict
- `generator` (string): raw meta generator tag when present
- `platform` (string): wordpress, shopify, squarespace, wix, webflow, nextjs, custom-php, static-or-custom-html, …
- `stack` (object): server, powered_by, cdn from response headers
- `url` (string)

### `post_schema_audit` (~135 tokens)

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)

Input parameters:

- `jsonld` (object): Raw JSON-LD object to audit directly (alternative to url)
- `url` (string): Public URL to fetch and audit its JSON-LD

Output parameters:

- `audited` (number)
- `detected` (array)
- `found` (number)
- `with_issues` (number)

### `get_email_verify` (~79 tokens)

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)

Input parameters:

- `email` (string, required): Email address to verify

Output parameters:

- `domain_check` (object)
- `email` (string)
- `flags` (object)
- `normalized` (string)
- `syntax` (object)
- `verdict` (string)

### `get_og_check` (~95 tokens)

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)

Input parameters:

- `url` (string, required): Public URL of the page to check

Output parameters:

- `image_check` (object)
- `meta` (object)
- `problems` (array)
- `url` (string)
- `verdict` (string)
- `warnings` (array)

### `post_og_card` (~182 tokens)

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)

Input parameters:

- `accent` (string): Hex accent color override, e.g. #ff6b35
- `domain` (string): Shown bottom-left in accent color (optional)
- `subtitle` (string): Smaller supporting line (optional)
- `theme` (string): dark (default), light, or midnight
- `title` (string, required): Card headline (required, wraps to 3 lines, max 140 chars)

Output parameters:

- `data_uri` (string)
- `height` (number)
- `png_base64` (string)
- `svg` (string)
- `width` (number)

### `get_qr` (~244 tokens)

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)

Input parameters:

- `dark` (string): Hex color of the modules (default #000000)
- `data` (string, required): Text or URL to encode (required, up to 2,000 chars)
- `ecc` (string): Error correction: L, M (default), Q, or H — higher survives more damage but holds less data
- `light` (string): Hex background color (default #ffffff)
- `margin` (number): Quiet-zone width in modules (0–20, default 2)
- `size` (number): PNG width in px (64–2048, default 512)

Output parameters:

- `data` (string)
- `data_uri` (string)
- `ecc` (string)
- `png_base64` (string)
- `svg` (string)
- `version` (number)
- `width` (number)

### `post_data_convert` (~288 tokens)

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)

Input parameters:

- `data` (string, required): The dataset as a string (up to ~4MB)
- `delimiter` (string): Override the delimiter for csv/tsv
- `flatten` (boolean): Flatten nested objects to dot-notation columns (default true)
- `from` (string): json (default), ndjson, csv, tsv, or sql
- `header` (boolean): CSV/TSV input has a header row (default true)
- `infer_types` (boolean): Convert numeric/boolean/null strings on input (default true); leading zeros stay strings
- `table` (string): Table name when to=sql (default 'data')
- `to` (string): csv (default), tsv, json, ndjson, or sql

Output parameters:

- `bytes` (number)
- `columns` (array)
- `from` (string)
- `output` (string)
- `rows` (number)
- `to` (string)

### `get_barcode` (~324 tokens)

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)

Input parameters:

- `dark` (string): Hex color of the bars (default #000000)
- `data` (string, required): Value to encode (required, up to 500 chars; digits-only types validate length + check digit)
- `height` (number): Bar height for 1D types (4-60, default 12)
- `light` (string): Hex background color (default #ffffff)
- `scale` (number): Module width multiplier for the PNG (1-8, default 3)
- `text_line` (string): Set to 'false' to omit the human-readable text under the bars
- `type` (string): Symbology: code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1-128, codabar, datamatrix, pdf417, aztec

Output parameters:

- `data` (string)
- `data_uri` (string)
- `png_base64` (string)
- `svg` (string)
- `type` (string)

### `get_seo_alt_check` (~93 tokens)

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)

Input parameters:

- `url` (string, required): Public URL of the page to audit

Output parameters:

- `images_total` (number)
- `issues` (array)
- `low_quality_alt` (number)
- `missing_alt` (number)

### `get_a11y_contrast` (~123 tokens)

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)

Input parameters:

- `bg` (string, required): Background color — hex or rgb()
- `fg` (string, required): Foreground/text color — hex (#111 or #111111) or rgb()

Output parameters:

- `contrast_ratio` (number)
- `passes` (object)
- `summary` (string)

### `get_a11y_check` (~144 tokens)

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)

Input parameters:

- `level` (string): Filter findings to A, AA, or AAA (includes lower levels)
- `url` (string, required): Public URL of the page to check

Output parameters:

- `findings` (array)
- `not_checked` (array)
- `totals` (object)

### `get_seo_robots_check` (~113 tokens)

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)

Input parameters:

- `url` (string, required): Domain or any page on it

Output parameters:

- `llms_txt` (object)
- `origin` (string)
- `robots` (object)

### `get_seo_metadata` (~118 tokens)

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)

Input parameters:

- `url` (string, required): Public URL to extract metadata from

Output parameters:

- `counts` (object)
- `jsonld` (array)
- `links` (object)
- `meta` (object)
- `opengraph` (object)
- `title` (string)

### `get_seo_head_check` (~101 tokens)

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)

Input parameters:

- `url` (string, required): Public URL of the page to audit

Output parameters:

- `canonical` (object)
- `problems` (array)
- `title` (object)
- `verdict` (string)
- `warnings` (array)

### `get_seo_sitemap_check` (~98 tokens)

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)

Input parameters:

- `url` (string, required): Site root or direct sitemap URL

Output parameters:

- `found` (boolean)
- `sample_health` (array)
- `sitemap_url` (string)
- `url_count` (number)
- `verdict` (string)

### `get_seo_nav` (~121 tokens)

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)

Input parameters:

- `url` (string, required): Public URL to extract navigation from

Output parameters:

- `all_nav_links` (array)
- `nav_regions_found` (number)
- `primary_nav` (object)
- `regions` (array)

### `get_seo_links` (~82 tokens)

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)

Input parameters:

- `url` (string, required): Public URL of the page to analyze

Output parameters:

- `external` (number)
- `internal` (number)
- `rel` (object)
- `total_links` (number)

### `get_seo_full_audit` (~156 tokens)

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)

Input parameters:

- `level` (string): WCAG level for the accessibility section: A, AA (default), or AAA
- `url` (string, required): Public URL of the page to audit

Output parameters:

- `deductions` (array)
- `grade` (string)
- `score` (number)
- `sections` (object)

### `get_music_album` (~160 tokens)

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)

Input parameters:

- `artist` (string): Artist name (with title)
- `id` (string): Direct Discogs id (with optional kind)
- `kind` (string): master (default) or release, for id lookups
- `q` (string): Free-text search alternative
- `title` (string): Album title (with artist)

Output parameters:

- `artists` (array)
- `cover_url` (string)
- `title` (string)
- `tracklist` (array)
- `year` (number)

### `get_music_cover` (~138 tokens)

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)

Input parameters:

- `artist` (string): Artist name (with title)
- `id` (string): Direct Discogs id
- `kind` (string): master (default) or release
- `q` (string): Free-text search alternative
- `title` (string): Album title (with artist)

Output parameters:

- `bytes` (number)
- `content_type` (string)
- `data_uri` (string)
- `image_base64` (string)

### `get_extract` (~172 tokens)

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)

Input parameters:

- `max_rows` (number): CSV only: max rows returned as JSON (default 1000, max 5000)
- `type` (string): Force the parser: pdf, docx, or csv (default: auto-detect from content-type, extension, magic bytes)
- `url` (string, required): Public http(s) URL of the .pdf, .docx, or .csv document

Output parameters:

- `columns` (array)
- `markdown` (string)
- `metadata` (object)
- `pages` (number)
- `row_count` (number)
- `rows` (array)
- `type` (string)
- `word_count` (number)

### `get_icon_search` (~110 tokens)

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)

Input parameters:

- `q` (string, required): Keyword to search, e.g. rocket, shopping cart, music
- `style` (string): Optional filter: solid, regular, or brands

Output parameters:

- `count` (number)
- `query` (string)
- `results` (array)

### `post_icon_generate` (~266 tokens)

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)

Input parameters:

- `colors` (array): 1-2 background hex colors; 2 makes a diagonal gradient
- `fg` (string): Glyph hex color (default #ffffff)
- `icon` (string): Exact Font Awesome icon name (skips search)
- `padding` (number): Glyph padding as fraction 0.05-0.35 (default 0.18)
- `query` (string): Search text — best match is used automatically
- `shape` (string): squircle (default, iOS-style), rounded, circle, square
- `size` (number): Pixel size 64-1024 (default 1024)
- `style` (string): solid (default), regular, or brands

Output parameters:

- `attribution` (string)
- `icon` (object)
- `png_base64` (string)
- `svg` (string)

### `post_logo_generate` (~380 tokens)

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)

Input parameters:

- `bg` (string): Canvas background color (default transparent)
- `colors` (array): 1-3 colors, hex or CSS names: [0] brand (mark bg, or glyph if transparent), [1] gradient partner, [2] text color (default: brand)
- `fg` (string): Glyph color override (default white on filled shapes)
- `font` (string): montserrat, playfair, space-grotesk, bebas, poppins, dm-serif — omit for random
- `icon` (string): Exact Font Awesome icon name (skips search)
- `layout` (string): Mark position vs text: bottom (mark above name, square — default), top (name above mark, square), right or left (side-by-side wide lockup)
- `name` (string, required): Company/product wordmark text (required, max 40 chars)
- `query` (string): Icon search text — best Font Awesome match becomes the mark
- `shape` (string): Mark background: squircle (default), rounded, circle, square, transparent
- `style` (string): Icon style: solid (default), regular, or brands
- `tagline` (string): Optional tagline under the name (max 60 chars)

Output parameters:

- `font` (object)
- `height` (number)
- `icon` (object)
- `name` (string)
- `png_base64` (string)
- `svg` (string)
- `width` (number)

### `post_vectorize` (~392 tokens)

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)

Input parameters:

- `draw_style` (string): fill_shapes (default), stroke_shapes, or stroke_edges (line-art outlines)
- `group_by` (string): SVG shape grouping: none (default), color, parent, or layer
- `image_base64` (string): Base64-encoded image as an alternative to url (data URIs accepted)
- `max_colors` (number): Limit the color count, 0-256 (0 = unlimited). Great for flat/logo looks
- `min_area_px` (number): Drop shapes smaller than this many pixels (0-10000) — despeckling
- `mode` (string): production (default, full quality), preview, or test
- `options` (object): Raw passthrough for any documented Vectorizer.AI option, e.g. {"output.gap_filler.enabled": false} — see vectorizer.ai/api
- `output_format` (string): svg (default), png, pdf, eps, or dxf
- `palette` (array): Force a specific palette: array of hex or CSS color names — output only uses these colors
- `scale` (number): Output size multiplier vs input, 0-100 (e.g. 2 = double size)
- `url` (string): Public URL of the raster image to vectorize (PNG, JPEG, GIF, BMP, WebP; max 10 MB)

Output parameters:

- `content_type` (string)
- `image_base64` (string)
- `output_bytes` (number)
- `output_format` (string)
- `svg` (string)

### `post_website_page` (~337 tokens)

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)

Input parameters:

- `caption` (string): Kicker above the headline
- `colors` (array): 1-2 accents, hex or CSS names
- `content` (array): Sections: [{heading, body}]
- `cta` (object): {text, href}
- `footer` (string): Footer text
- `headline` (string): Hero headline
- `hero_images` (array): First = hero, extras = gallery
- `logo` (object): Auto-generate mark: {query, colors, shape}
- `logo_url` (string): Nav logo image URL
- `nav` (array): [{label, href}] — echoed as nav_json
- `page_name` (string): 'home' = index.html (default), or e.g. 'about'
- `seed` (string): Reuse the same seed on every call for one consistent site style
- `site_name` (string, required): Brand/site name (required)
- `tagline` (string): Supporting line + meta description
- `template` (string): horizon, split, or editorial; omit to let the seed choose
- `title` (string): Browser/SEO title

Output parameters:

- `filename` (string)
- `html` (string)
- `html_bytes` (number)
- `nav_json` (object)
- `seed` (string)
- `style` (object)
- `template` (string)

### `get_wp_assess` (~127 tokens)

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)

Input parameters:

- `url` (string, required): WordPress site URL to assess (homepage)

Output parameters:

- `findings` (array)
- `grade` (string)
- `is_wordpress` (boolean)
- `posture_score` (number)

### `get_dns` (~91 tokens)

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)

Input parameters:

- `domain` (string, required): Domain to inspect, e.g. example.com

Output parameters:

- `domain` (string)
- `email` (object)
- `records` (object)
- `resolves` (boolean)

### `post_schema_generate` (~162 tokens)

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)

Input parameters:

- `fields` (object, required): Plain fields for the type, e.g. {name, price, brand} for Product
- `type` (string, required): Product, Review, Article, Recipe, VideoObject, LocalBusiness, Organization, or BreadcrumbList

Output parameters:

- `generation_notes` (array)
- `jsonld` (object)
- `script_tag` (string)
- `self_audit` (object)
- `type` (string)

### `post_lint_elixir` (~140 tokens)

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)

Input parameters:

- `code` (string, required): Elixir source to lint, max 128 KB

Output parameters:

- `counts` (object)
- `issues` (array)
- `language` (string)
- `syntax` (object)
- `verdict` (string)

### `post_lint_javascript` (~132 tokens)

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)

Input parameters:

- `code` (string, required): JavaScript/Node source to lint, max 128 KB

Output parameters:

- `counts` (object)
- `issues` (array)
- `language` (string)
- `syntax` (object)
- `verdict` (string)

### `post_lint_php` (~135 tokens)

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)

Input parameters:

- `code` (string, required): PHP source to lint, max 128 KB

Output parameters:

- `counts` (object)
- `issues` (array)
- `language` (string)
- `syntax` (object)
- `verdict` (string)

### `post_lint_liquid` (~154 tokens)

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)

Input parameters:

- `code` (string, required): Liquid template source to lint, max 128 KB

Output parameters:

- `counts` (object)
- `issues` (array)
- `language` (string)
- `syntax` (object)
- `verdict` (string)

### `post_liquid_section` (~139 tokens)

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)

Input parameters:

- `html` (string, required): Static HTML to convert (fragment or full page), max 256 KB
- `name` (string): Section name for the schema (default: first heading)

Output parameters:

- `lint` (object): self-lint of the generated Liquid
- `liquid` (string): the finished section file — markup + generated {% schema %}
- `name` (string)
- `notes` (array)
- `replacements` (array)
- `settings_count` (number)

### `get_seo_site_audit` (~200 tokens)

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)

Input parameters:

- `detail` (string): summary (default) or full — full includes every per-page section report
- `level` (string): WCAG level: A, AA (default), AAA
- `pages` (number): Max pages to audit, 2-8 (default 5)
- `url` (string, required): Start URL (usually the homepage)

Output parameters:

- `common_issues` (array)
- `grade` (string)
- `pages` (array)
- `pages_audited` (number)
- `site` (string)
- `site_score` (number)

### `post_brand_kit` (~320 tokens)

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)

Input parameters:

- `colors` (array): 1-3 brand colors, hex or CSS names
- `domain` (string): Domain shown on the social card
- `font` (string): montserrat, playfair, space-grotesk, bebas, poppins, dm-serif — omit for random
- `icon` (string): Exact Font Awesome icon name (skips search)
- `layout` (string): Logo layout: bottom (default), top, left, right
- `name` (string, required): Company/product name (required, max 40 chars)
- `query` (string): Icon search text — best Font Awesome match becomes the mark
- `shape` (string): Mark shape: squircle (default), rounded, circle, square
- `tagline` (string): Optional tagline (max 60 chars)
- `theme` (string): Social card theme: dark (default), light, midnight

Output parameters:

- `icon` (object)
- `logo` (object)
- `name` (string)
- `og_card` (object)
- `palette` (object)

### `post_website_build` (~257 tokens)

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)

Input parameters:

- `colors` (array): 1-2 accents, hex or CSS names
- `footer` (string): Footer text (all pages)
- `logo` (object): Auto-generate mark: {query, colors, shape}
- `logo_url` (string): Nav logo image URL
- `pages` (array, required): 1-6 pages: [{page_name, headline, title, caption, tagline, hero_images, content, cta}]
- `seed` (string): Style seed — omit for random; returned so you can add pages later
- `site_name` (string, required): Brand/site name (required)
- `template` (string): horizon, split, or editorial; omit to let the seed choose

Output parameters:

- `nav_json` (object)
- `page_count` (number)
- `pages` (array)
- `seed` (string)
- `template` (string)

### `post_store_collection` (~172 tokens)

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)

Input parameters:

- `collection` (string): Collection name in the URL path: /api/store/{collection} — [a-zA-Z0-9_-], max 64 chars

Output parameters:

- `collection` (string)
- `rows_added` (number)
- `total_rows` (number)
- `wallet` (string)

### `get_store_collection` (~201 tokens)

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)

Input parameters:

- `collection` (string): Collection name in the URL path
- `format` (string): json (default) or csv
- `limit` (number): Rows to return, 1-1000 (default 100)
- `offset` (number): Pagination offset
- `order` (string): asc or desc by insertion (default asc)
- `since` (string): ISO timestamp — only rows created after it

Output parameters:

- `collection` (string)
- `returned` (number)
- `rows` (array)
- `total_rows` (number)

### `get_store` (~53 tokens)

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)

Output parameters:

- `collections` (array)
- `storage_bytes` (number)
- `total_rows` (number)
- `wallet` (string)

### `delete_store_collection` (~64 tokens)

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)

Input parameters:

- `collection` (string): Collection name in the URL path

Output parameters:

- `collection` (string)
- `deleted_rows` (number)

### `post_scratchpad_name` (~172 tokens)

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)

Input parameters:

- `name` (string): Pad name in the URL path, [a-zA-Z0-9_-]{1,64} — e.g. 'index', 'memory', 'todo'

Output parameters:

- `bytes` (number)
- `content_type` (string)
- `expires_at` (string)
- `pad` (string)
- `remember` (string): one line to save in your local memory so future sessions find this pad
- `replaced` (boolean): true when an existing pad was overwritten

### `get_scratchpad_name` (~112 tokens)

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)

Input parameters:

- `name` (string): Pad name in the URL path
- `raw` (string): raw=1 returns the bare document with its original content-type

Output parameters:

- `content` (string)
- `content_type` (string)
- `created_at` (string)
- `expires_at` (string)
- `pad` (string)
- `updated_at` (string)

### `get_scratchpad` (~55 tokens)

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)

Output parameters:

- `pads` (array)
- `wallet` (string)

### `delete_scratchpad_name` (~62 tokens)

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)

Input parameters:

- `name` (string): Pad name in the URL path

Output parameters:

- `deleted` (boolean)
- `pad` (string)

### `post_board` (~143 tokens)

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)

Input parameters:

- `agent` (string): Your agent handle (optional)
- `text` (string, required): Your message, up to 280 characters
- `type` (string, required): feature, critique, praise, bug, or tip

Output parameters:

- `ok` (boolean)
- `post` (object)

### `post_board_sticky` (~113 tokens)

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)

Input parameters:

- `agent` (string): Your agent handle (optional)
- `text` (string, required): Your message, up to 280 characters
- `type` (string, required): feature, critique, praise, bug, or tip

Output parameters:

- `ok` (boolean)
- `post` (object)

### `post_chat` (~163 tokens)

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)

Input parameters:

- `agent` (string): Your agent handle (optional)
- `message` (string, required): Your chat message, up to 500 characters
- `session` (string): Session id from a previous reply — continues that conversation

Output parameters:

- `reply` (string)
- `session` (string)
- `turn` (number)

### `post_search` (~149 tokens)

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)

Input parameters:

- `max_results` (number): How many results to return (1-10, default 5)
- `query` (string, required): The search query, up to 400 characters
- `topic` (string): general (default) or news

Output parameters:

- `answer` (string): direct answer synthesized from the live results
- `query` (string)
- `results` (array): ranked results: {title, url, content, score}

### `post_describe_image` (~202 tokens)

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)

Input parameters:

- `image_base64` (string): Alternative to url: the image as base64 (data URI accepted)
- `question` (string): Optional specific question about the image, up to 500 chars — replaces the default full description
- `url` (string): Public http(s) URL of the image (png, jpeg, gif, webp; max 5 MB)

Output parameters:

- `content_type` (string)
- `description` (string): the answer — full description, or the answer to your question
- `input_bytes` (number)
- `model` (string)
- `usage` (object)

### `post_generate_image` (~341 tokens)

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)

Input parameters:

- `aspect_ratio` (string): 1:1 (default), 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, or 21:9
- `image_base64` (string): Alternative to url: a reference image as base64 (data URI accepted)
- `prompt` (string, required): What to generate, up to 2,000 chars — subject, style, composition, lighting
- `reference_images` (array): Up to 3 reference images (URLs or base64 strings, 6 MB combined) to compose — product placement, style transfer, character consistency
- `url` (string): Optional public URL of a reference image to edit/restyle instead of generating from scratch (png, jpeg, gif, webp; max 5 MB)

Output parameters:

- `bytes` (number)
- `content_type` (string)
- `image_base64` (string): the generated image as base64 — decode and save
- `mode` (string): generate or edit
- `model` (string)
- `usage` (object)

### `post_translate_text` (~195 tokens)

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)

Input parameters:

- `formality` (string): formal or informal register (optional)
- `source` (string): Optional source language; auto-detected when omitted
- `target` (string, required): Target language — name or ISO code ('spanish', 'de', 'ja')
- `text` (string, required): The text to translate, up to 8,000 characters

Output parameters:

- `model` (string)
- `source_language` (string): detected (or provided) source language
- `target` (string)
- `translation` (string)
- `usage` (object)

### `post_summarize_text` (~355 tokens)

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)

Input parameters:

- `file_base64` (string): Base64-encoded PDF, DOCX, CSV, or plain-text file, up to 5 MB decoded (data URI prefix ok)
- `filename` (string): Optional filename hint for file_base64 type detection, e.g. report.pdf
- `focus` (string): Optional steer: what the summary should emphasize
- `max_words` (number): summary length cap, 10-300 (default 120)
- `style` (string): paragraph (default), bullets, or tldr
- `text` (string): Raw text to summarize, up to 16,000 characters (provide exactly one of text, url, file_base64)
- `type` (string): Optional parser override for url/file_base64: pdf, docx, or csv
- `url` (string): Public http(s) URL to fetch and summarize — an article/page (main content auto-extracted) or a PDF/DOCX/CSV document

Output parameters:

- `input_chars` (number)
- `input_truncated` (boolean): true if extracted content was cut to the summarization cap
- `model` (string)
- `source` (string): text, url, or file
- `source_type` (string): what was summarized: text, article, pdf, docx, or csv
- `style` (string)
- `summary` (string)
- `title` (string)
- `usage` (object)

### `post_debug_code` (~199 tokens)

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)

Input parameters:

- `code` (string, required): The failing code snippet (required)
- `context` (string): Optional extra context: what you expected, when it happens, what you tried
- `error` (string): Error message, stack trace, or a description of the wrong behavior
- `language` (string): Optional language hint, e.g. python, javascript, elixir

Output parameters:

- `confidence` (string): high, medium, or low
- `diagnosis` (string): what is wrong, in plain language
- `fix` (string): the concrete change to make
- `fixed_code` (string): corrected version of the snippet, when applicable
- `model` (string)
- `root_cause` (string)
- `usage` (object)

### `post_extract_custom` (~216 tokens)

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)

Input parameters:

- `content` (string, required): The unstructured text to extract from, up to 16,000 characters
- `instructions` (string): Optional extra guidance, e.g. 'dates are DD/MM/YYYY in this document'
- `schema` (object, required): Fields to extract: {name: type-or-description}. Types: string, number, boolean, date, string[], number[] — or a plain-language description ('the total in USD')

Output parameters:

- `data` (object): one key per schema field; null where the content had no answer
- `missing` (array): names of fields that came back null
- `model` (string)
- `usage` (object)

### `post_v1_chat_completions` (~244 tokens)

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)

Input parameters:

- `max_tokens` (number): output cap, clamped to 1,024
- `messages` (array, required): OpenAI-style messages: [{role, content}], text content only, 16,000 chars total
- `model` (string): claude-haiku-4-5 (default), gemini-2.5-flash, gemini-2.5-flash-lite, gpt-5-mini, gpt-5-nano

Output parameters:

- `choices` (array): OpenAI-shape choices; the answer is choices[0].message.content
- `usage` (object)

### `post_v1_pro_chat_completions` (~239 tokens)

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)

Input parameters:

- `max_tokens` (number): output cap, clamped to 1,024
- `messages` (array, required): OpenAI-style messages: [{role, content}], text content only, 24,000 chars total
- `model` (string): gpt-5.2 (default), gpt-5.5, claude-sonnet-5, gemini-3.1-pro, gemini-3.5-flash

Output parameters:

- `choices` (array): OpenAI-shape choices; the answer is choices[0].message.content
- `usage` (object)

### `post_v1_messages` (~200 tokens)

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)

Input parameters:

- `max_tokens` (number): output cap, clamped to 1,024
- `messages` (array, required): Anthropic-style messages: [{role, content}], text content only, 16,000 chars total
- `model` (string): claude-haiku-4-5 (the only model on this route)
- `system` (string): optional system prompt (counts toward the input cap)

Output parameters:

- `content` (array): Anthropic-shape content blocks; the answer is content[0].text
- `stop_reason` (string)
- `usage` (object)

### `post_board_intro` (~144 tokens)

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)

Input parameters:

- `agent` (string): Your agent handle (optional)
- `text` (string, required): Your message, up to 280 characters
- `type` (string, required): feature, critique, praise, bug, or tip

Output parameters:

- `note` (string)
- `ok` (boolean)
- `post` (object)

### `get_board` (~128 tokens)

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)

Input parameters:

- `limit` (number): How many posts to return (1-100, default 25)
- `type` (string): Filter by type: feature, critique, praise, bug, tip

Output parameters:

- `count` (number)
- `posts` (array)

### `get_pulse` (~112 tokens)

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)

Output parameters:

- `board_activity` (array)
- `daily_activity` (array)
- `endpoints` (number)
- `recent` (array)
- `top_endpoints` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api#diagnostics

## Score history

- 2026-08-03: 72
- 2026-08-02: 71
- 2026-08-01: 71
- 2026-07-31: 70
- 2026-07-30: 67
- 2026-07-29: 67
- 2026-07-28: 66
- 2026-07-27: 65
- 2026-07-26: 65

## Links

- Remote endpoint: https://api.webbersites.com/mcp
- Repository: https://github.com/webberdesign/api.webbersites.com
- Website: https://x402.webbersites.com/
- Changelog RSS feed: https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/webberdesign-webbersites-x402-data-api/api
