{
  "openapi": "3.1.1",
  "info": {
    "title": "x.c00l.site — pay-per-call APIs for AI agents",
    "version": "1.0.0",
    "summary": "All 5 x402 services in one document.",
    "description": "A merged specification covering every endpoint across 5 independently deployed services, so a single generated client reaches all of them.\n\n**Payment.** Paid endpoints use [x402](https://x402.org) v2: call normally, receive 402 with a base64 `payment-required` header, sign an EIP-3009 USDC authorisation, replay with a `payment-signature` header. There is no account, no API key and no rate limit. Prices run $0.001-$0.25 per call and are on every operation under `x-402`.\n\n**Failed calls are free.** Any 4xx or 5xx response skips settlement.\n\n**Hosts.** Each path declares its own `servers`. The top-level `servers` list is a fallback only; always prefer the path-level entry.\n\n**Path keys.** `paths` keys must be unique, but two services genuinely expose the same path: readable and structura both have `/extract` and `/batch`. structura's are keyed with a trailing slash (`/extract/`, `/batch/`), which its router treats as the identical route — verified against the live service — so `server.url + key` is a working URL either way. `x-real-path` on those path items gives the canonical form.\n\n**Machine-readable catalogue.** https://x.c00l.site/index.json carries the same information with worked examples and per-field documentation.",
    "contact": {
      "name": "x.c00l.site",
      "url": "https://x.c00l.site/"
    },
    "license": {
      "name": "Proprietary",
      "identifier": "LicenseRef-Proprietary"
    }
  },
  "externalDocs": {
    "description": "Landing page and catalogue",
    "url": "https://x.c00l.site/"
  },
  "servers": [
    {
      "url": "https://readable.x.c00l.site",
      "description": "readable — Any URL to clean, LLM-ready Markdown"
    },
    {
      "url": "https://dataforge.x.c00l.site",
      "description": "dataforge — Deterministic data conversion, query, schema and diff"
    },
    {
      "url": "https://netintel.x.c00l.site",
      "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
    },
    {
      "url": "https://aisearch.x.c00l.site",
      "description": "aisearch — Web search with citations that cannot be invented"
    },
    {
      "url": "https://structura.x.c00l.site",
      "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
    }
  ],
  "tags": [
    {
      "name": "readable",
      "description": "Any URL to clean, LLM-ready Markdown. Fetches a page, strips nav, ads, cookie banners, comments and sidebars with a Readability-style density heuristic, then emits Markdown with correct headings, nested lists, GFM tables, fenced code and absolute links. The pre-processing step for RAG indexing and summarisation.",
      "externalDocs": {
        "url": "https://readable.x.c00l.site"
      }
    },
    {
      "name": "dataforge",
      "description": "Deterministic data conversion, query, schema and diff. Nine formats in, nine out — CSV, TSV, JSON, JSONL, YAML, TOML, XML, INI, Java properties — with RFC 4180 CSV, YAML anchors, TOML v1.0.0 and XML attributes/CDATA handled properly. Plus JSONPath querying, JSON Schema 2020-12 inference and validation, a declarative transform pipeline and RFC 6902 diff/patch. No model in the loop, so it is exact and repeatable.",
      "externalDocs": {
        "url": "https://dataforge.x.c00l.site"
      }
    },
    {
      "name": "netintel",
      "description": "DNS, email deliverability, TLS and IP intelligence. Network reconnaissance from inside the Cloudflare edge: DNS-over-HTTPS against eleven public resolvers, a raw TLS handshake over TCP sockets that can read certificates a normal HTTPS client refuses to look at (expired, self-signed, wrong host), and edge metadata. If a lookup fails the field is null and warnings[] says why — never a plausible guess.",
      "externalDocs": {
        "url": "https://netintel.x.c00l.site"
      }
    },
    {
      "name": "aisearch",
      "description": "Web search with citations that cannot be invented. Every endpoint returns Markdown with inline [n] markers plus a citations[] array. The markers are rendered from the search API's own source attribution rather than written by the model, so a fabricated citation is structurally impossible. Returns an explicit \"could not find a reliable source\" instead of guessing.",
      "externalDocs": {
        "url": "https://aisearch.x.c00l.site"
      }
    },
    {
      "name": "structura",
      "description": "Any source plus your JSON Schema, out comes conforming JSON. Give it a URL, raw HTML, plain text or a document blob and a JSON Schema; the output is validated against your exact schema locally before it is returned. If the model's first attempt does not conform, the per-pointer errors are fed back and it repairs; if it still fails after the attempt cap you get a 5xx and are not charged. Non-conforming data is never returned as a success, and an absent value comes back null rather than invented.",
      "externalDocs": {
        "url": "https://structura.x.c00l.site"
      }
    }
  ],
  "security": [],
  "paths": {
    "/": {
      "summary": "HTML documentation (all services)",
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable"
        },
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge"
        },
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel"
        },
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch"
        },
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura"
        }
      ],
      "get": {
        "operationId": "shared_root",
        "tags": [
          "readable",
          "dataforge",
          "netintel",
          "aisearch",
          "structura"
        ],
        "summary": "HTML documentation — free",
        "description": "HTML documentation. Free, no payment required. Available identically on all 5 service origins — pick one from `servers`.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/health": {
      "summary": "Liveness probe (all services)",
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable"
        },
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge"
        },
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel"
        },
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch"
        },
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura"
        }
      ],
      "get": {
        "operationId": "shared_health",
        "tags": [
          "readable",
          "dataforge",
          "netintel",
          "aisearch",
          "structura"
        ],
        "summary": "Liveness probe — free",
        "description": "Liveness probe. Free, no payment required. Available identically on all 5 service origins — pick one from `servers`.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/openapi.json": {
      "summary": "OpenAPI 3.1 spec (all services)",
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable"
        },
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge"
        },
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel"
        },
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch"
        },
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura"
        }
      ],
      "get": {
        "operationId": "shared_openapi_json",
        "tags": [
          "readable",
          "dataforge",
          "netintel",
          "aisearch",
          "structura"
        ],
        "summary": "OpenAPI 3.1 spec — free",
        "description": "OpenAPI 3.1 spec. Free, no payment required. Available identically on all 5 service origins — pick one from `servers`.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/extract": {
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable — Any URL to clean, LLM-ready Markdown"
        }
      ],
      "post": {
        "operationId": "readable_extract",
        "tags": [
          "readable"
        ],
        "summary": "Page to Markdown — $0.004",
        "description": "Fetch a URL, strip boilerplate, return the article body as Markdown (or text/HTML) plus title, byline, publish date, site name, language, excerpt, word count and reading time.\n\n**Price: $0.004**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, finalUrl, title, byline, publishedAt, siteName, lang, excerpt, content, wordCount, readingTimeMinutes, truncated, meta }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, finalUrl, title, byline, publishedAt, siteName, lang, excerpt, content, wordCount, readingTimeMinutes, truncated, meta }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.004",
          "atomicAmount": "4000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "string — absolute http(s) URL of the page."
                  },
                  "format": {
                    "type": "string",
                    "description": "enum markdown|text|html (default markdown).",
                    "enum": [
                      "markdown",
                      "text",
                      "html"
                    ]
                  },
                  "includeImages": {
                    "type": "boolean",
                    "description": "boolean (default true) — keep ![alt](src)."
                  },
                  "includeLinks": {
                    "type": "boolean",
                    "description": "boolean (default true) — keep [text](url)."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer 100..2000000 — truncate on a word boundary."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "url": "https://en.wikipedia.org/wiki/Markdown",
                "format": "markdown"
              }
            }
          }
        }
      },
      "get": {
        "operationId": "readable_extract_get",
        "tags": [
          "readable"
        ],
        "summary": "Page to Markdown — $0.004 (query-string form)",
        "description": "Fetch a URL, strip boilerplate, return the article body as Markdown (or text/HTML) plus title, byline, publish date, site name, language, excerpt, word count and reading time.\n\n**Price: $0.004**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, finalUrl, title, byline, publishedAt, siteName, lang, excerpt, content, wordCount, readingTimeMinutes, truncated, meta }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, finalUrl, title, byline, publishedAt, siteName, lang, excerpt, content, wordCount, readingTimeMinutes, truncated, meta }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.004",
          "atomicAmount": "4000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "string — absolute http(s) URL of the page."
            },
            "example": "https://en.wikipedia.org/wiki/Markdown"
          }
        ]
      }
    },
    "/unfurl": {
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable — Any URL to clean, LLM-ready Markdown"
        }
      ],
      "post": {
        "operationId": "readable_unfurl",
        "tags": [
          "readable"
        ],
        "summary": "Link-preview metadata — $0.001",
        "description": "Head-only metadata for a URL: title, description, OpenGraph image, favicon, canonical, site name, type, theme colour, author, date, feeds and oEmbed endpoints. Cheapest call in the catalogue.\n\n**Price: $0.001**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, title, description, image, favicon, canonical, siteName, type, themeColor, author, date, feeds, oembed }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, title, description, image, favicon, canonical, siteName, type, themeColor, author, date, feeds, oembed }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.001",
          "atomicAmount": "1000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "string — absolute http(s) URL."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "url": "https://github.com"
              }
            }
          }
        }
      },
      "get": {
        "operationId": "readable_unfurl_get",
        "tags": [
          "readable"
        ],
        "summary": "Link-preview metadata — $0.001 (query-string form)",
        "description": "Head-only metadata for a URL: title, description, OpenGraph image, favicon, canonical, site name, type, theme colour, author, date, feeds and oEmbed endpoints. Cheapest call in the catalogue.\n\n**Price: $0.001**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, title, description, image, favicon, canonical, siteName, type, themeColor, author, date, feeds, oembed }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, title, description, image, favicon, canonical, siteName, type, themeColor, author, date, feeds, oembed }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.001",
          "atomicAmount": "1000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "string — absolute http(s) URL."
            },
            "example": "https://github.com"
          }
        ]
      }
    },
    "/links": {
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable — Any URL to clean, LLM-ready Markdown"
        }
      ],
      "post": {
        "operationId": "readable_links",
        "tags": [
          "readable"
        ],
        "summary": "Every link on a page — $0.002",
        "description": "Every anchor on the page, absolutised, tracking parameters stripped, deduplicated, and classified internal/external/nofollow with its anchor text and page region (nav, main, footer).\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, count, links: [{ href, text, rel, region, internal, nofollow }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, count, links: [{ href, text, rel, region, internal, nofollow }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "string — absolute http(s) URL."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "integer — cap the number of links returned."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "url": "https://news.ycombinator.com"
              }
            }
          }
        }
      },
      "get": {
        "operationId": "readable_links_get",
        "tags": [
          "readable"
        ],
        "summary": "Every link on a page — $0.002 (query-string form)",
        "description": "Every anchor on the page, absolutised, tracking parameters stripped, deduplicated, and classified internal/external/nofollow with its anchor text and page region (nav, main, footer).\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ url, count, links: [{ href, text, rel, region, internal, nofollow }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ url, count, links: [{ href, text, rel, region, internal, nofollow }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "string — absolute http(s) URL."
            },
            "example": "https://news.ycombinator.com"
          }
        ]
      }
    },
    "/batch": {
      "servers": [
        {
          "url": "https://readable.x.c00l.site",
          "description": "readable — Any URL to clean, LLM-ready Markdown"
        }
      ],
      "post": {
        "operationId": "readable_batch",
        "tags": [
          "readable"
        ],
        "summary": "Extract up to 20 URLs at once — $0.003 per URL",
        "description": "Concurrent /extract across 1-20 URLs. Charged $0.003 x urls.length, so the amount is derivable from the request before you pay and one signature covers the whole batch. Each result carries its own ok/error.\n\n**Price: $0.003 per URL**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ count, results: [{ ok, url, ...extract | error }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ count, results: [{ ok, url, ...extract | error }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.003",
          "atomicAmount": "3000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "per-item",
          "perItemField": "urls",
          "maxItems": 20,
          "formula": "3000 * len(body.urls)"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "urls"
                ],
                "properties": {
                  "urls": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — 1..20 absolute http(s) URLs."
                  },
                  "format": {
                    "type": "string",
                    "description": "enum markdown|text|html (default markdown).",
                    "enum": [
                      "markdown",
                      "text",
                      "html"
                    ]
                  },
                  "includeImages": {
                    "type": "boolean",
                    "description": "boolean (default true)."
                  },
                  "includeLinks": {
                    "type": "boolean",
                    "description": "boolean (default true)."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer — per-document truncation."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "urls": [
                  "https://example.com",
                  "https://example.org"
                ],
                "format": "markdown"
              }
            }
          }
        }
      }
    },
    "/convert": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_convert",
        "tags": [
          "dataforge"
        ],
        "summary": "Convert between formats — $0.002",
        "description": "Convert a document between any two of json, jsonl, csv, tsv, yaml, toml, xml, ini and properties. Handles quoted CSV fields with embedded commas/newlines, BOMs, CRLF and ragged rows.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ data, from, to, bytes, rows }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ data, from, to, bytes, rows }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data",
                  "to"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "string — the source document."
                  },
                  "to": {
                    "type": "string",
                    "description": "enum json|jsonl|csv|tsv|yaml|toml|xml|ini|properties.",
                    "enum": [
                      "json",
                      "jsonl",
                      "csv",
                      "tsv",
                      "yaml",
                      "toml",
                      "xml",
                      "ini",
                      "properties."
                    ]
                  },
                  "from": {
                    "type": "string",
                    "description": "same enum, or auto (default) to sniff it."
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser/serialiser options (delimiter, indent, rootName...)."
                  },
                  "fromOptions": {
                    "type": "object",
                    "description": "object — parser options for the source format only."
                  },
                  "toOptions": {
                    "type": "object",
                    "description": "object — serialiser options for the target format only."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "data": "name,age\nada,36",
                "from": "csv",
                "to": "json"
              }
            }
          }
        }
      }
    },
    "/query": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_query",
        "tags": [
          "dataforge"
        ],
        "summary": "JSONPath / JSON Pointer query — $0.002",
        "description": "Query any supported format with JSONPath — recursive descent, unions, slices, negative indices, filter expressions — or with an RFC 6901 JSON Pointer. Output in any format.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ matches, count, paths }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ matches, count, paths }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data",
                  "path"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "string — the source document."
                  },
                  "path": {
                    "type": "string",
                    "description": "string — e.g. `$.items[?(@.price<10)].name` or `/items/0/name`."
                  },
                  "syntax": {
                    "type": "string",
                    "description": "enum jsonpath|pointer (default jsonpath).",
                    "enum": [
                      "jsonpath",
                      "pointer"
                    ]
                  },
                  "limit": {
                    "type": "integer",
                    "description": "integer — cap matches."
                  },
                  "to": {
                    "type": "string",
                    "description": "output format."
                  },
                  "from": {
                    "type": "string",
                    "description": "source format enum, or auto (default) to sniff it."
                  },
                  "pathStyle": {
                    "type": "string",
                    "description": "enum dot|bracket — how returned match paths are rendered.",
                    "enum": [
                      "dot",
                      "bracket"
                    ]
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser/serialiser options."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "data": "{\"items\":[{\"name\":\"a\",\"price\":5}]}",
                "from": "json",
                "path": "$.items[?(@.price<10)].name"
              }
            }
          }
        }
      }
    },
    "/schema": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_schema",
        "tags": [
          "dataforge"
        ],
        "summary": "Infer or validate a JSON Schema — $0.003",
        "description": "Without `validate`, infers a draft 2020-12 schema: array elements merged, a property marked required only when present in every sample, enums when a field has few repeated values, formats detected. With `validate`, checks the document and returns per-pointer errors.\n\n**Price: $0.003**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ schema } or { valid, errors: [{ pointer, message, keyword }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ schema } or { valid, errors: [{ pointer, message, keyword }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.003",
          "atomicAmount": "3000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "string — the document."
                  },
                  "validate": {
                    "type": "object",
                    "description": "object — a JSON Schema to check against. Omit to infer instead."
                  },
                  "from": {
                    "type": "string",
                    "description": "source format enum, or auto (default) to sniff it."
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser options."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "data": "{\"id\":1,\"email\":\"a@b.com\"}",
                "from": "json"
              }
            }
          }
        }
      }
    },
    "/transform": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_transform",
        "tags": [
          "dataforge"
        ],
        "summary": "Declarative transform pipeline — $0.003",
        "description": "Reshape tabular or nested data with an ordered pipeline: select, drop, rename, filter, compute, cast, sort, groupBy, flatten, unflatten, pivot, unpivot, dedupe, limit, offset. Read CSV, group and pivot it, write YAML, in one call.\n\n**Price: $0.003**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ data, rows, applied }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ data, rows, applied }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.003",
          "atomicAmount": "3000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data",
                  "pipeline"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "string — the source document."
                  },
                  "pipeline": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    },
                    "description": "object[] — ordered ops, each { op, ...args }."
                  },
                  "to": {
                    "type": "string",
                    "description": "output format."
                  },
                  "from": {
                    "type": "string",
                    "description": "source format enum, or auto (default) to sniff it."
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser options."
                  },
                  "toOptions": {
                    "type": "object",
                    "description": "object — serialiser options for the target format."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "data": "region,sales\neu,10\neu,5\nus,7",
                "from": "csv",
                "pipeline": [
                  {
                    "op": "groupBy",
                    "by": [
                      "region"
                    ],
                    "agg": {
                      "sales": "sum"
                    }
                  }
                ],
                "to": "json"
              }
            }
          }
        }
      }
    },
    "/diff": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_diff",
        "tags": [
          "dataforge"
        ],
        "summary": "Structural diff, as RFC 6902 — $0.002",
        "description": "Diff two documents of any supported format and get a JSON Patch that turns `a` into `b`, plus a human-readable summary and per-op counts. Arrays are diffed with an LCS, so a single insertion produces one add rather than a cascade of replaces.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ patch: [RFC6902 ops], summary, counts: { add, remove, replace } }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ patch: [RFC6902 ops], summary, counts: { add, remove, replace } }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "a",
                  "b"
                ],
                "properties": {
                  "a": {
                    "type": "string",
                    "description": "string — the left document."
                  },
                  "b": {
                    "type": "string",
                    "description": "string — the right document."
                  },
                  "fromA": {
                    "type": "string",
                    "description": "format of `a` (default auto)."
                  },
                  "fromB": {
                    "type": "string",
                    "description": "format of `b` (default auto)."
                  },
                  "from": {
                    "type": "string",
                    "description": "format of both documents, if they share one (default auto)."
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser options."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "a": "{\"v\":1,\"name\":\"x\"}",
                "b": "{\"v\":2,\"name\":\"x\"}"
              }
            }
          }
        }
      }
    },
    "/patch": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_patch",
        "tags": [
          "dataforge"
        ],
        "summary": "Apply an RFC 6902 patch — $0.002",
        "description": "Apply add, remove, replace, move, copy and test operations in order with strict pointer resolution. A failure names the operation index and the reason. Output in any format.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ data, applied }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ data, applied }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data",
                  "patch"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "string — the document to patch."
                  },
                  "patch": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    },
                    "description": "object[] — RFC 6902 operations."
                  },
                  "to": {
                    "type": "string",
                    "description": "output format."
                  },
                  "from": {
                    "type": "string",
                    "description": "source format enum, or auto (default) to sniff it."
                  },
                  "options": {
                    "type": "object",
                    "description": "object — shared parser options."
                  },
                  "toOptions": {
                    "type": "object",
                    "description": "object — serialiser options for the target format."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "data": "{\"v\":1}",
                "patch": [
                  {
                    "op": "replace",
                    "path": "/v",
                    "value": 2
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/formats": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "get": {
        "operationId": "dataforge_formats",
        "tags": [
          "dataforge"
        ],
        "summary": "Supported formats, transform ops and hard limits — free",
        "description": "Supported formats, transform ops and hard limits. Free, no payment required.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/detect": {
      "servers": [
        {
          "url": "https://dataforge.x.c00l.site",
          "description": "dataforge — Deterministic data conversion, query, schema and diff"
        }
      ],
      "post": {
        "operationId": "dataforge_detect",
        "tags": [
          "dataforge"
        ],
        "summary": "Sniff the format of a document — free",
        "description": "Sniff the format of a document. Free, no payment required.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/dns": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "post": {
        "operationId": "netintel_dns",
        "tags": [
          "netintel"
        ],
        "summary": "DNS lookup with DNSSEC + cross-check — $0.002",
        "description": "Resolve up to 12 record types at once, report DNSSEC validation status, and cross-check the answer against a second independent resolver so a poisoned or stale answer is visible.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ name, records: { A: [...], MX: [...] }, dnssec, crossCheck, warnings }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ name, records: { A: [...], MX: [...] }, dnssec, crossCheck, warnings }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "string — the domain to resolve."
                  },
                  "types": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — up to 12 of A, AAAA, MX, TXT, NS, CNAME, SOA, PTR, SRV, CAA, DS, DNSKEY, TLSA, SVCB, HTTPS... (default A, AAAA, MX, TXT, NS)."
                  },
                  "dnssec": {
                    "type": "boolean",
                    "description": "boolean — request and report DNSSEC status."
                  },
                  "crossCheck": {
                    "type": "boolean",
                    "description": "boolean — compare against a second resolver."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "name": "cloudflare.com",
                "types": [
                  "A",
                  "MX",
                  "TXT"
                ]
              }
            }
          }
        }
      }
    },
    "/email": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "post": {
        "operationId": "netintel_email",
        "tags": [
          "netintel"
        ],
        "summary": "Email deliverability audit — $0.003",
        "description": "Audit an address or its domain without sending anything: MX records, SPF policy and lookup-count budget, DMARC policy and alignment, DKIM selector discovery, disposable and role-account detection, and syntax validity.\n\n**Price: $0.003**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ email, domain, valid, mx, spf, dmarc, dkim, disposable, role, score, warnings }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ email, domain, valid, mx, spf, dmarc, dkim, disposable, role, score, warnings }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.003",
          "atomicAmount": "3000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "string — an address (the domain is audited)."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "email": "hello@stripe.com"
              }
            }
          }
        }
      }
    },
    "/tls": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "post": {
        "operationId": "netintel_tls",
        "tags": [
          "netintel"
        ],
        "summary": "TLS certificate + security-header grade — $0.004",
        "description": "Raw TLS handshake over a TCP socket, so it reads expired, self-signed and wrong-host certificates that a normal client refuses. Returns the chain, validity window, SANs, signature algorithm, negotiated versions, plus HSTS/CSP/X-Frame security headers, graded A-F.\n\n**Price: $0.004**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ host, grade, certificate: { subject, issuer, notBefore, notAfter, sans, ... }, chain, versions, headers, findings }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ host, grade, certificate: { subject, issuer, notBefore, notAfter, sans, ... }, chain, versions, headers, findings }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.004",
          "atomicAmount": "4000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "host"
                ],
                "properties": {
                  "host": {
                    "type": "string",
                    "description": "string — hostname to connect to."
                  },
                  "port": {
                    "type": "integer",
                    "description": "integer (default 443)."
                  },
                  "probeVersions": {
                    "type": "boolean",
                    "description": "boolean — probe which TLS versions are accepted."
                  },
                  "httpHeaders": {
                    "type": "boolean",
                    "description": "boolean — fetch and grade security headers too."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "host": "badssl.com",
                "httpHeaders": true
              }
            }
          }
        }
      }
    },
    "/ip": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "post": {
        "operationId": "netintel_ip",
        "tags": [
          "netintel"
        ],
        "summary": "IP / CIDR / hostname intelligence — $0.002",
        "description": "Geolocation, ASN and AS organisation, reverse DNS, network class (datacenter, residential, Tor, cloud provider) and DNS blocklist status for an IPv4, IPv6, CIDR block or hostname.\n\n**Price: $0.002**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ ip, version, asn, asOrg, geo, reverse, kind, dnsbl, warnings }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ ip, version, asn, asOrg, geo, reverse, kind, dnsbl, warnings }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.002",
          "atomicAmount": "2000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ip"
                ],
                "properties": {
                  "ip": {
                    "type": "string",
                    "description": "string — IPv4, IPv6, CIDR block, or hostname. Max 260 chars."
                  },
                  "dnsbl": {
                    "type": "boolean",
                    "description": "boolean (default true) — query DNS blocklists (public IPv4 only)."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "ip": "8.8.8.8"
              }
            }
          }
        }
      }
    },
    "/propagation": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "post": {
        "operationId": "netintel_propagation",
        "tags": [
          "netintel"
        ],
        "summary": "DNS propagation across resolvers — $0.005",
        "description": "Query one record across many public resolvers concurrently and report which ones agree. The call to make after a DNS change, to see how far it has actually spread.\n\n**Price: $0.005**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ name, type, consensus, agreement, resolvers: [{ name, answer, ms, ok }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ name, type, consensus, agreement, resolvers: [{ name, answer, ms, ok }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.005",
          "atomicAmount": "5000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "string — the record name."
                  },
                  "type": {
                    "type": "string",
                    "description": "enum A|AAAA|MX|TXT|NS|CNAME|SOA|CAA|SRV|... (default A).",
                    "enum": [
                      "A",
                      "AAAA",
                      "MX",
                      "TXT",
                      "NS",
                      "CNAME",
                      "SOA",
                      "CAA",
                      "SRV"
                    ]
                  },
                  "resolvers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — subset of resolvers to query."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "name": "example.com",
                "type": "A"
              }
            }
          }
        }
      }
    },
    "/whoami": {
      "servers": [
        {
          "url": "https://netintel.x.c00l.site",
          "description": "netintel — DNS, email deliverability, TLS and IP intelligence"
        }
      ],
      "get": {
        "operationId": "netintel_whoami",
        "tags": [
          "netintel"
        ],
        "summary": "Your IP, geo, ASN, TLS version and cipher, HTTP protocol, Cloudflare colo and TCP RTT — free",
        "description": "Your IP, geo, ASN, TLS version and cipher, HTTP protocol, Cloudflare colo and TCP RTT. Free, no payment required.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/answer": {
      "servers": [
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch — Web search with citations that cannot be invented"
        }
      ],
      "post": {
        "operationId": "aisearch_answer",
        "tags": [
          "aisearch"
        ],
        "summary": "Fast cited factual answer — $0.008",
        "description": "Single-shot factual lookup: one short cited paragraph, no report structure. The cheap call for grounding a single fact. Flags a false premise in the question rather than answering it, and says so plainly when no reliable source exists.\n\n**Price: $0.008**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ answer, citations: [{ n, url, title, snippet }], confidence, falsePremise }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ answer, citations: [{ n, url, title, snippet }], confidence, falsePremise }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.008",
          "atomicAmount": "8000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "query"
                ],
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "string — the question."
                  },
                  "recency": {
                    "type": "string",
                    "description": "enum day|week|month|year|any — restrict source age.",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year",
                      "any"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "query": "What is the current block time on Base?"
              }
            }
          }
        }
      }
    },
    "/search": {
      "servers": [
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch — Web search with citations that cannot be invented"
        }
      ],
      "post": {
        "operationId": "aisearch_search",
        "tags": [
          "aisearch"
        ],
        "summary": "Cited search with synthesised answer — $0.02",
        "description": "Searches the web and returns a cited Markdown answer, the citation list, the raw result set and follow-up questions. depth=standard additionally searches for evidence against the working answer before committing to it.\n\n**Price: $0.02**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ answer, citations, results, followUps }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ answer, citations, results, followUps }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.02",
          "atomicAmount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "query"
                ],
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "string — the search query."
                  },
                  "depth": {
                    "type": "string",
                    "description": "enum quick|standard (default quick). standard runs a counter-evidence pass.",
                    "enum": [
                      "quick",
                      "standard"
                    ]
                  },
                  "maxResults": {
                    "type": "integer",
                    "description": "integer — number of sources to consider."
                  },
                  "recency": {
                    "type": "string",
                    "description": "enum day|week|month|year|any.",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year",
                      "any."
                    ]
                  },
                  "includeRaw": {
                    "type": "boolean",
                    "description": "boolean — include the unsynthesised result set."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "query": "x402 protocol adoption 2026",
                "depth": "standard"
              }
            }
          }
        }
      }
    },
    "/compare": {
      "servers": [
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch — Web search with citations that cannot be invented"
        }
      ],
      "post": {
        "operationId": "aisearch_compare",
        "tags": [
          "aisearch"
        ],
        "summary": "Researched side-by-side comparison — $0.03",
        "description": "Researches 2-6 subjects independently, then returns a verdict, a Markdown comparison table, the differences that would actually change a decision, caveats, and the same data as a structured JSON matrix you can sort and filter.\n\n**Price: $0.03**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ verdict, table (markdown), matrix, deciders, caveats, citations }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ verdict, table (markdown), matrix, deciders, caveats, citations }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.03",
          "atomicAmount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "subjects"
                ],
                "properties": {
                  "subjects": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — 2..6 things to compare."
                  },
                  "criteria": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — dimensions to compare on. Inferred if omitted."
                  },
                  "recency": {
                    "type": "string",
                    "description": "enum day|week|month|year|any.",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year",
                      "any."
                    ]
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "subjects": [
                  "Cloudflare Workers",
                  "AWS Lambda"
                ],
                "criteria": [
                  "cold start",
                  "pricing"
                ]
              }
            }
          }
        }
      }
    },
    "/research": {
      "servers": [
        {
          "url": "https://aisearch.x.c00l.site",
          "description": "aisearch — Web search with citations that cannot be invented"
        }
      ],
      "post": {
        "operationId": "aisearch_research",
        "tags": [
          "aisearch"
        ],
        "summary": "Agentic deep research report — $0.25",
        "description": "Multi-step agentic investigation: plans sub-questions, searches each, opens and reads promising pages with an SSRF-hardened reader, identifies its own gaps, searches for counter-evidence, then writes a cited report. Minutes, not seconds. The most expensive call in the catalogue and the only one priced above $0.05.\n\n**Price: $0.25**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ report (markdown), plan, findings, gaps, counterEvidence, citations, turns }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ report (markdown), plan, findings, gaps, counterEvidence, citations, turns }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.25",
          "atomicAmount": "250000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "query"
                ],
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "string — the research question."
                  },
                  "focus": {
                    "type": "string",
                    "description": "string — steer what the report should emphasise."
                  },
                  "recency": {
                    "type": "string",
                    "description": "enum day|week|month|year|any.",
                    "enum": [
                      "day",
                      "week",
                      "month",
                      "year",
                      "any."
                    ]
                  },
                  "maxTurns": {
                    "type": "integer",
                    "description": "integer — cap the agent loop."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "query": "State of stablecoin micropayment rails for AI agents",
                "maxTurns": 6
              }
            }
          }
        }
      }
    },
    "/extract/": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_extract",
        "tags": [
          "structura"
        ],
        "summary": "Extract into your schema — $0.015",
        "description": "Source plus JSON Schema in, conformant JSON out, validated before the response is built. Every response carries per-field confidence and an absent[] list of what the source did not contain.\n\n**Price: $0.015**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ data, confidence: { field: 0..1 }, absent: [...], attempts, validated: true }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ data, confidence: { field: 0..1 }, absent: [...], attempts, validated: true }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.015",
          "atomicAmount": "15000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "source",
                  "schema"
                ],
                "properties": {
                  "source": {
                    "type": "object",
                    "description": "object — exactly one of { url } | { html } | { text }."
                  },
                  "schema": {
                    "type": "object",
                    "description": "object — a JSON Schema. Make fields nullable; absent values come back null."
                  },
                  "instructions": {
                    "type": "string",
                    "description": "string — extra guidance for ambiguous fields."
                  },
                  "strict": {
                    "type": "boolean",
                    "description": "boolean — fail rather than widen the schema."
                  },
                  "maxAttempts": {
                    "type": "integer",
                    "description": "integer — repair attempts before giving up (and not charging)."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer — truncate the source."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "source": {
                  "url": "https://example.com/product"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "price": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      },
      "description": "Canonical path is `/extract` on structura.x.c00l.site. The trailing slash disambiguates this key from another service's identically named path in this merged document; the origin routes both forms to the same endpoint.",
      "x-real-path": "/extract",
      "x-canonical-url": "https://structura.x.c00l.site/extract"
    },
    "/infer": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_infer",
        "tags": [
          "structura"
        ],
        "summary": "Infer a schema and fill it — $0.02",
        "description": "For \"just structure this for me\". No schema from you: it identifies what the document is, designs the schema a competent engineer would have written, then extracts into it and returns both the schema and the data.\n\n**Price: $0.02**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ schema, data, documentType, confidence, absent }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ schema, data, documentType, confidence, absent }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.02",
          "atomicAmount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "source": {
                    "type": "object",
                    "description": "object — exactly one of { url } | { html } | { text }."
                  },
                  "instructions": {
                    "type": "string",
                    "description": "string — steer the schema design."
                  },
                  "maxAttempts": {
                    "type": "integer",
                    "description": "integer."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "source": {
                  "url": "https://example.com/invoice"
                }
              }
            }
          }
        }
      }
    },
    "/table": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_table",
        "tags": [
          "structura"
        ],
        "summary": "Extract every table — $0.012",
        "description": "All tabular data in the document as clean arrays of objects, with detected headers, per-column types and units, and RFC 4180 CSV alongside the JSON. Merged and multi-row headers are resolved.\n\n**Price: $0.012**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ tables: [{ caption, headers, rows, columns: [{ name, type, unit }], csv }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ tables: [{ caption, headers, rows, columns: [{ name, type, unit }], csv }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.012",
          "atomicAmount": "12000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "source": {
                    "type": "object",
                    "description": "object — exactly one of { url } | { html } | { text }."
                  },
                  "instructions": {
                    "type": "string",
                    "description": "string — e.g. which table you care about."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "source": {
                  "url": "https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)"
                }
              }
            }
          }
        }
      }
    },
    "/batch/": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_batch",
        "tags": [
          "structura"
        ],
        "summary": "One schema across many sources — $0.012 per source",
        "description": "Apply one schema to up to 15 sources. The total is computed from the item count, so the 402 challenge already states the exact amount and one signature covers the batch. Each item reports its own success independently.\n\n**Price: $0.012 per source**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ count, results: [{ ok, data, confidence, absent } | { ok: false, error }] }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ count, results: [{ ok, data, confidence, absent } | { ok: false, error }] }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.012",
          "atomicAmount": "12000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "per-item",
          "perItemField": "sources",
          "maxItems": 15,
          "formula": "12000 * len(body.sources)"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "sources",
                  "schema"
                ],
                "properties": {
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    },
                    "description": "object[] — 1..15, each exactly one of { url } | { html } | { text }."
                  },
                  "schema": {
                    "type": "object",
                    "description": "object — one JSON Schema applied to all of them."
                  },
                  "instructions": {
                    "type": "string",
                    "description": "string — extra guidance, applied to every item."
                  },
                  "strict": {
                    "type": "boolean",
                    "description": "boolean — fail rather than widen the schema."
                  },
                  "maxAttempts": {
                    "type": "integer",
                    "description": "integer — repair attempts per item before that item fails."
                  },
                  "maxChars": {
                    "type": "integer",
                    "description": "integer — per-source truncation."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "sources": [
                  {
                    "url": "https://example.com/a"
                  },
                  {
                    "url": "https://example.com/b"
                  }
                ],
                "schema": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      },
      "description": "Canonical path is `/batch` on structura.x.c00l.site. The trailing slash disambiguates this key from another service's identically named path in this merged document; the origin routes both forms to the same endpoint.",
      "x-real-path": "/batch",
      "x-canonical-url": "https://structura.x.c00l.site/batch"
    },
    "/classify": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_classify",
        "tags": [
          "structura"
        ],
        "summary": "Classify text against your labels — $0.006",
        "description": "Every label is scored 0-1, not just the winner, so you can threshold it yourself and see how close the call was via `margin`. The label set is baked into the model constraint, so an off-list label cannot come back. Supports multi-label.\n\n**Price: $0.006**, paid with x402 (USDC on Base, `eip155:8453`). An unpaid request returns 402 with a base64 `payment-required` header; any x402 client pays and retries. Any 4xx or 5xx response skips settlement, so failed calls are free.\n\nReturns: `{ label, scores: { label: 0..1 }, margin, multi }`",
        "security": [],
        "responses": {
          "200": {
            "description": "Success. Carries a `payment-response` settlement receipt.",
            "headers": {
              "payment-response": {
                "description": "Base64 JSON settlement receipt: `{ success, transaction, network, payer }`.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "{ label, scores: { label: 0..1 }, margin, multi }"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "x-402": {
          "price": "$0.006",
          "atomicAmount": "6000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "assetDecimals": 6,
          "network": "eip155:8453",
          "scheme": "exact",
          "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
          "facilitator": "https://facilitator.payai.network",
          "pricing": "flat"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text",
                  "labels"
                ],
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "string — the text to classify."
                  },
                  "labels": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "string[] — the allowed label set."
                  },
                  "multi": {
                    "type": "boolean",
                    "description": "boolean — allow more than one label."
                  },
                  "rubric": {
                    "type": "string",
                    "description": "string — how to decide between labels."
                  },
                  "threshold": {
                    "type": "number",
                    "description": "number 0..1 — minimum score to include."
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "text": "The invoice is 30 days overdue.",
                "labels": [
                  "billing",
                  "support",
                  "sales"
                ]
              }
            }
          }
        }
      }
    },
    "/limits": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "get": {
        "operationId": "structura_limits",
        "tags": [
          "structura"
        ],
        "summary": "Machine-readable limits and prices — free",
        "description": "Machine-readable limits and prices. Free, no payment required.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        }
      }
    },
    "/validate": {
      "servers": [
        {
          "url": "https://structura.x.c00l.site",
          "description": "structura — Any source plus your JSON Schema, out comes conforming JSON"
        }
      ],
      "post": {
        "operationId": "structura_validate",
        "tags": [
          "structura"
        ],
        "summary": "Dry-run: check a JSON Schema is usable, free — free",
        "description": "Dry-run: check a JSON Schema is usable, free. Free, no payment required.",
        "security": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-402": {
          "price": "$0.00",
          "pricing": "free"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "PaymentRequired": {
        "description": "Payment required. The `payment-required` header carries base64 JSON with the exact amount, asset, network and recipient. Sign it and replay the identical request.",
        "headers": {
          "payment-required": {
            "required": true,
            "description": "Base64-encoded x402 v2 PaymentRequired challenge.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentRequiredBody"
            }
          },
          "text/html": {
            "schema": {
              "type": "string",
              "description": "Human-facing paywall, served to browsers."
            }
          }
        }
      },
      "BadRequest": {
        "description": "Malformed or invalid input. Never settled, so it costs nothing.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFound": {
        "description": "No such route on this origin.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ServerError": {
        "description": "Upstream or internal failure. Never settled, so it costs nothing. Retry is free.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Stable snake_case code.",
                "examples": [
                  "bad_source"
                ]
              },
              "message": {
                "type": "string",
                "description": "Human-readable explanation."
              }
            }
          }
        }
      },
      "PaymentRequiredBody": {
        "type": "object",
        "description": "The x402 v2 challenge, also delivered base64 in the `payment-required` header.",
        "properties": {
          "x402Version": {
            "type": "integer",
            "const": 2
          },
          "error": {
            "type": "string"
          },
          "resource": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "mimeType": {
                "type": "string"
              },
              "serviceName": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "accepts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRequirements"
            }
          }
        }
      },
      "PaymentRequirements": {
        "type": "object",
        "required": [
          "scheme",
          "network",
          "amount",
          "asset",
          "payTo"
        ],
        "properties": {
          "scheme": {
            "type": "string",
            "const": "exact"
          },
          "network": {
            "type": "string",
            "const": "eip155:8453",
            "description": "Base mainnet"
          },
          "amount": {
            "type": "string",
            "description": "Atomic units of USDC (6 decimals). \"4000\" is $0.004.",
            "examples": [
              "4000"
            ]
          },
          "asset": {
            "type": "string",
            "const": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "description": "USD Coin on Base mainnet"
          },
          "payTo": {
            "type": "string",
            "description": "Recipient address."
          },
          "maxTimeoutSeconds": {
            "type": "integer",
            "default": 300
          },
          "extra": {
            "type": "object",
            "description": "EIP-712 domain for the EIP-3009 signature.",
            "properties": {
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "x-402": {
    "protocol": "x402",
    "version": 2,
    "scheme": "exact",
    "network": "eip155:8453",
    "chainId": 8453,
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetSymbol": "USDC",
    "assetDecimals": 6,
    "payTo": "0x49db736f346BD2f68E9b97069E2E090222d75c82",
    "facilitator": "https://facilitator.payai.network",
    "challengeHeader": "payment-required",
    "paymentHeader": "payment-signature",
    "receiptHeader": "payment-response",
    "catalogue": "https://x.c00l.site/index.json"
  }
}