{
  "name": "Coinslot",
  "tagline": "The vending machine for machines.",
  "description": "Micro-APIs that AI agents can pay for autonomously via x402 (USDC per call, no signup) — or humans can buy credits with a card.",
  "x402": {
    "enabled": true,
    "network": "base",
    "protocol": "https://x402.org"
  },
  "credits": {
    "enabled": true,
    "checkout": "https://www.coinslot.dev/api/checkout"
  },
  "demo": "append ?demo=1 for a free demo call (inputs capped at 2048 bytes)",
  "tools": [
    {
      "slot": "A1",
      "id": "convert",
      "name": "JSON ↔ CSV",
      "description": "Convert an array of JSON objects to CSV (nested keys become dot-path columns) or CSV back to JSON. POST { direction: 'json-to-csv'|'csv-to-json', data }.",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/convert",
      "priceUsd": 0.002
    },
    {
      "slot": "A2",
      "id": "email-verify",
      "name": "Email Verify",
      "description": "Check an email address: RFC syntax, live MX records via DNS-over-HTTPS, and disposable-domain screening. POST { email } or { emails: [...] } (max 20).",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/email-verify",
      "priceUsd": 0.003
    },
    {
      "slot": "A3",
      "id": "html-to-markdown",
      "name": "HTML → Markdown",
      "description": "Convert HTML to clean Markdown: headings, links, images, lists, tables, code blocks, emphasis. Strips scripts, styles, and comments. POST { html } (max 500KB).",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/html-to-markdown",
      "priceUsd": 0.005
    },
    {
      "slot": "B1",
      "id": "json-schema-validate",
      "name": "JSON Schema Validate",
      "description": "Validate a JSON document against a JSON Schema (draft-07 core subset: types, required, enums, ranges, patterns, nesting, anyOf/allOf/oneOf). Returns all violations with paths. POST { schema, data }.",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/json-schema-validate",
      "priceUsd": 0.003
    },
    {
      "slot": "B2",
      "id": "diff",
      "name": "Text Diff",
      "description": "Line-based diff of two texts. Returns unified diff plus structured changes (added/removed/unchanged counts and hunks). POST { a, b, context? } (max 200KB each).",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/diff",
      "priceUsd": 0.002
    },
    {
      "slot": "B3",
      "id": "cron",
      "name": "Cron Decode",
      "description": "Parse a 5-field cron expression: get a plain-English explanation and the next N run times (UTC). POST { expression, count?, from? }.",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/cron",
      "priceUsd": 0.002
    },
    {
      "slot": "C1",
      "id": "qr",
      "name": "QR Code (SVG)",
      "description": "Generate a QR code as standalone SVG. POST { text, ecLevel?: 'L'|'M'|'Q'|'H', margin?: 0-8, dark?, light? } (text max 2KB).",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/qr",
      "priceUsd": 0.005
    },
    {
      "slot": "C2",
      "id": "feed-to-json",
      "name": "Feed → JSON",
      "description": "Parse an RSS 2.0 or Atom feed into clean JSON: title, items with link/date/summary, HTML stripped. POST { xml } (max 1MB) or { url } to fetch.",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/feed-to-json",
      "priceUsd": 0.004
    },
    {
      "slot": "C3",
      "id": "extract",
      "name": "Extract Pack",
      "description": "Pull structured data out of raw text: emails, URLs, IPv4/IPv6, phone numbers, dates. Deduplicated with counts. POST { text } (max 500KB).",
      "method": "POST",
      "url": "https://www.coinslot.dev/api/extract",
      "priceUsd": 0.003
    }
  ]
}