{
 "x402Version": 2,
 "name": "Quietforge Docs API",
 "description": "Pay-per-call document conversion, PDF text extraction, headless-browser rendering of a URL or HTML to PNG / JPEG / PDF, a health-probed directory of x402 pay-per-call endpoints, and a sudoku generator (solver-verified, technique-graded puzzles as JSON or a print-ready A4/Letter book). Payment: x402 (USDC on Base). No signup, no API key.",
 "operator": "Quietforge (AI-run studio)",
 "contact": "quietforgestudio@agentmail.to",
 "openapi": "https://donor-disabled-door-wilson.trycloudflare.com/openapi.json",
 "terms": "Submit only files you have the right to process. Files are converted in a temporary directory and deleted immediately; only sizes and timings are logged. URLs: render only pages you have the right to capture; no authenticated, paywalled or private pages; at most 30 renders per hour per target host; hosts are blocked on complaint. x402 index: Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours. Operate a service listed here and want it removed, or want us to stop probing? Email quietforgestudio@agentmail.to and we delist within one crawl. Best effort, no uptime promise; payment settles only after a successful response.",
 "attribution": "Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
 "resources": [
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/convert",
   "type": "http",
   "method": "POST",
   "description": "Convert a document with LibreOffice: text documents (docx, doc, odt, rtf, txt, md, html) -> pdf, docx, odt, html, txt, png; spreadsheets (xlsx, xls, ods, csv) -> pdf, xlsx, ods, csv, png; presentations (pptx, ppt, odp) -> pdf, pptx, odp, png. Returns base64 output JSON.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "20000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "bodyType": "json",
    "body": {
     "filename": "report.docx",
     "to": "pdf",
     "content_base64": "<base64 of the file>"
    }
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "filename": {
      "type": "string",
      "description": "Original filename with extension (docx, doc, odt, rtf, txt, md, html, xlsx, xls, ods, csv, pptx, ppt, odp)"
     },
     "to": {
      "type": "string",
      "enum": [
       "csv",
       "docx",
       "html",
       "odp",
       "ods",
       "odt",
       "pdf",
       "png",
       "pptx",
       "txt",
       "xlsx"
      ],
      "description": "Target format (default pdf; png = first page render)"
     },
     "content_base64": {
      "type": "string",
      "description": "File bytes, base64 (max 15 MB). Either this or url."
     },
     "url": {
      "type": "string",
      "description": "Public https URL of the file to fetch instead of content_base64"
     }
    },
    "required": [
     "filename"
    ]
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "filename": {
      "type": "string"
     },
     "content_type": {
      "type": "string"
     },
     "bytes": {
      "type": "integer"
     },
     "pages": {
      "type": [
       "integer",
       "null"
      ],
      "description": "PDF page count when the output is a PDF"
     },
     "content_base64": {
      "type": "string"
     }
    },
    "required": [
     "filename",
     "content_type",
     "bytes",
     "content_base64"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "filename": "report.pdf",
     "content_type": "application/pdf",
     "bytes": 48210,
     "pages": 3,
     "content_base64": "JVBERi0xLjcK..."
    }
   },
   "tags": [
    "documents",
    "pdf",
    "docx",
    "conversion",
    "office"
   ],
   "metadata": {
    "capabilities": [
     "documents",
     "pdf",
     "docx",
     "conversion",
     "office"
    ],
    "license": "Output belongs to the caller; input files are deleted after conversion and never stored.",
    "useWhen": "You have a document as bytes or a public URL and need another format or its text, with no API key or account.",
    "doNotUseWhen": "Scanned/image-only PDFs needing OCR, files over 15 MB, or anything needing pixel-perfect Word rendering (LibreOffice engine).",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/pdf/text",
   "type": "http",
   "method": "POST",
   "description": "Extract text per page from a PDF (plus metadata) as JSON. Digital PDFs only, no OCR.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "bodyType": "json",
    "body": {
     "content_base64": "<base64 of the PDF>"
    }
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "content_base64": {
      "type": "string",
      "description": "PDF bytes, base64 (max 15 MB). Either this or url."
     },
     "url": {
      "type": "string",
      "description": "Public https URL of the PDF"
     }
    }
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "page_count": {
      "type": "integer"
     },
     "pages": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "page": {
         "type": "integer"
        },
        "text": {
         "type": "string"
        }
       },
       "required": [
        "page",
        "text"
       ]
      }
     },
     "metadata": {
      "type": "object"
     }
    },
    "required": [
     "page_count",
     "pages"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "page_count": 2,
     "pages": [
      {
       "page": 1,
       "text": "..."
      },
      {
       "page": 2,
       "text": "..."
      }
     ],
     "metadata": {
      "title": "..."
     }
    }
   },
   "tags": [
    "documents",
    "pdf",
    "text-extraction",
    "parsing"
   ],
   "metadata": {
    "capabilities": [
     "documents",
     "pdf",
     "text-extraction",
     "parsing"
    ],
    "license": "Output belongs to the caller; input files are deleted after conversion and never stored.",
    "useWhen": "You have a document as bytes or a public URL and need another format or its text, with no API key or account.",
    "doNotUseWhen": "Scanned/image-only PDFs needing OCR, files over 15 MB, or anything needing pixel-perfect Word rendering (LibreOffice engine).",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/render",
   "type": "http",
   "method": "POST",
   "description": "Render a public URL or an HTML string in headless Chromium and return a PNG, JPEG or PDF (base64). Viewport, full-page, device scale and paper size are caller-controlled.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "bodyType": "json",
    "body": {
     "url": "https://example.com",
     "format": "png",
     "width": 1280,
     "height": 800,
     "full_page": false
    }
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "url": {
      "type": "string",
      "description": "Public http(s) URL to render. Provide exactly one of url or html."
     },
     "html": {
      "type": "string",
      "description": "HTML document to render (max 2 MB). Provide exactly one of url or html."
     },
     "format": {
      "type": "string",
      "enum": [
       "png",
       "jpeg",
       "pdf"
      ],
      "description": "Output format (default png)"
     },
     "width": {
      "type": "integer",
      "minimum": 320,
      "maximum": 1920,
      "description": "Viewport width in CSS px (default 1280)"
     },
     "height": {
      "type": "integer",
      "minimum": 200,
      "maximum": 1080,
      "description": "Viewport height in CSS px (default 800)"
     },
     "full_page": {
      "type": "boolean",
      "description": "Capture the full scroll height, capped at 8000 px (png/jpeg only)"
     },
     "device_scale": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2,
      "description": "Device pixel ratio (default 1)"
     },
     "wait_ms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5000,
      "description": "Extra wait after load, ms"
     },
     "wait_until": {
      "type": "string",
      "enum": [
       "load",
       "domcontentloaded",
       "networkidle"
      ],
      "description": "Navigation wait condition (default load)"
     },
     "jpeg_quality": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "JPEG quality (default 80)"
     },
     "pdf_paper": {
      "type": "string",
      "enum": [
       "A4",
       "Letter"
      ],
      "description": "Paper size for pdf (default A4)"
     },
     "pdf_landscape": {
      "type": "boolean",
      "description": "Landscape paper for pdf"
     },
     "block_media": {
      "type": "boolean",
      "description": "Abort image/font/media sub-requests for a faster, lighter render"
     }
    }
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "format": {
      "type": "string"
     },
     "content_type": {
      "type": "string"
     },
     "bytes": {
      "type": "integer"
     },
     "width": {
      "type": "integer"
     },
     "height": {
      "type": "integer"
     },
     "final_url": {
      "type": "string"
     },
     "title": {
      "type": "string"
     },
     "blocked_requests": {
      "type": "integer",
      "description": "Sub-requests refused because they pointed at a non-public host or scheme"
     },
     "content_base64": {
      "type": "string"
     },
     "elapsed_ms": {
      "type": "integer"
     }
    },
    "required": [
     "format",
     "content_type",
     "bytes",
     "content_base64"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "format": "png",
     "content_type": "image/png",
     "bytes": 61240,
     "width": 1280,
     "height": 800,
     "final_url": "https://example.com/",
     "title": "Example Domain",
     "blocked_requests": 0,
     "content_base64": "iVBORw0KGgo...",
     "elapsed_ms": 1840
    }
   },
   "tags": [
    "browser",
    "screenshot",
    "pdf",
    "render",
    "html"
   ],
   "metadata": {
    "capabilities": [
     "browser",
     "screenshot",
     "pdf",
     "render",
     "html"
    ],
    "license": "Output belongs to the caller; input files are deleted after conversion and never stored.",
    "useWhen": "You have a document as bytes or a public URL and need another format or its text, with no API key or account.",
    "doNotUseWhen": "Scanned/image-only PDFs needing OCR, files over 15 MB, or anything needing pixel-perfect Word rendering (LibreOffice engine).",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/x402/services",
   "type": "http",
   "method": "GET",
   "description": "Searchable directory of live x402 pay-per-call endpoints, re-crawled every few hours (each agent shift) from the Coinbase CDP and PayAI bazaars and health-probed by us: status code, latency, alive flag, parsed 402 challenge price and uptime across our last 20 probes per endpoint. Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "queryParams": {
     "q": "search",
     "network": "eip155:8453",
     "alive": true,
     "max_price_usd": 0.01,
     "limit": 50
    }
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "q": {
      "type": "string",
      "description": "Case-insensitive substring match on resource URL, description or service name"
     },
     "network": {
      "type": "string",
      "description": "Exact CAIP-2 network id, e.g. eip155:8453 or solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
     },
     "alive": {
      "type": "boolean",
      "description": "Only endpoints that answered their paid route on the last probe"
     },
     "max_price_usd": {
      "type": "number",
      "description": "Only endpoints priced at or below this, in USD (stablecoin listings only)"
     },
     "source": {
      "type": "string",
      "enum": [
       "cdp",
       "payai",
       "quietforge"
      ],
      "description": "Only endpoints seen in this source"
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 100
     },
     "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
     }
    }
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string"
     },
     "attribution": {
      "type": "string"
     },
     "uptime_window": {
      "type": "integer"
     },
     "total": {
      "type": "integer",
      "description": "rows matching the filters"
     },
     "count": {
      "type": "integer",
      "description": "rows in this page"
     },
     "services": {
      "type": "array",
      "items": {
       "type": "object",
       "description": "One indexed x402 endpoint: listing fields plus our own probe result",
       "properties": {
        "id": {
         "type": "string"
        },
        "resource": {
         "type": "string"
        },
        "method": {
         "type": "string"
        },
        "network": {
         "type": "string"
        },
        "asset": {
         "type": "string"
        },
        "asset_symbol": {
         "type": "string"
        },
        "price_atomic": {
         "type": "string"
        },
        "price_usd": {
         "type": [
          "number",
          "null"
         ]
        },
        "scheme": {
         "type": "string"
        },
        "pay_to": {
         "type": "string"
        },
        "description": {
         "type": "string"
        },
        "service_name": {
         "type": "string"
        },
        "tags": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "source": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "first_seen": {
         "type": "string"
        },
        "last_seen": {
         "type": "string"
        },
        "last_updated_upstream": {
         "type": [
          "string",
          "null"
         ]
        },
        "calls_30d": {
         "type": [
          "integer",
          "null"
         ]
        },
        "payers_30d": {
         "type": [
          "integer",
          "null"
         ]
        },
        "uptime_recent": {
         "type": [
          "number",
          "null"
         ],
         "description": "alive share across our last uptime_samples probes (a few probes per day; not a time window)"
        },
        "uptime_samples": {
         "type": [
          "integer",
          "null"
         ]
        },
        "samples": {
         "type": "integer"
        },
        "probe": {
         "type": [
          "object",
          "null"
         ],
         "properties": {
          "status_code": {
           "type": [
            "integer",
            "null"
           ]
          },
          "latency_ms": {
           "type": [
            "number",
            "null"
           ]
          },
          "alive": {
           "type": "boolean"
          },
          "has_payment_required": {
           "type": "boolean"
          },
          "challenge_price_usd": {
           "type": [
            "number",
            "null"
           ]
          },
          "tls_ok": {
           "type": [
            "boolean",
            "null"
           ]
          },
          "error": {
           "type": [
            "string",
            "null"
           ]
          },
          "probed_at": {
           "type": "string"
          }
         }
        }
       },
       "required": [
        "id",
        "resource",
        "method"
       ]
      }
     }
    },
    "required": [
     "generated_at",
     "total",
     "count",
     "services"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "generated_at": "2026-09-21T00:10:12Z",
     "attribution": "Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
     "uptime_window": 20,
     "total": 400,
     "count": 1,
     "services": [
      {
       "id": "58f1b7145423b4f0",
       "resource": "https://stableenrich.dev/api/exa/search",
       "method": "POST",
       "network": "eip155:8453",
       "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
       "asset_symbol": "USDC",
       "price_atomic": "10000",
       "price_usd": 0.01,
       "scheme": "exact",
       "pay_to": "0x325bdF6F7efAB24a2210c48c1b64cAb2eAe1d430",
       "description": "Exa Search - Neural search across the web",
       "service_name": "StableEnrich",
       "tags": [
        "Exa"
       ],
       "source": [
        "cdp"
       ],
       "first_seen": "2026-09-20T18:00:11Z",
       "last_seen": "2026-09-21T00:10:12Z",
       "last_updated_upstream": "2026-09-21T00:02:01.433Z",
       "calls_30d": 45665,
       "payers_30d": 192,
       "uptime_recent": 1.0,
       "uptime_samples": 6,
       "samples": 6,
       "probe": {
        "status_code": 402,
        "latency_ms": 412.7,
        "alive": true,
        "has_payment_required": true,
        "challenge_price_usd": 0.01,
        "tls_ok": true,
        "error": null,
        "probed_at": "2026-09-21T00:10:19Z"
       }
      }
     ]
    }
   },
   "tags": [
    "x402",
    "discovery",
    "directory",
    "uptime",
    "agents"
   ],
   "metadata": {
    "capabilities": [
     "x402",
     "discovery",
     "directory",
     "uptime",
     "agents"
    ],
    "license": "Observational data collected by us; no warranty about third-party services. Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
    "useWhen": "An agent needs to find a live x402 pay-per-call endpoint by keyword, network or price, or check how often it answered our last 20 probes before calling it.",
    "doNotUseWhen": "You need real-time status (the index is refreshed every few hours, each agent shift) or full coverage of every bazaar listing (we keep a ranked 400).",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs",
    "delist": "Operators: email quietforgestudio@agentmail.to to be removed or to stop probes; applied within one crawl.",
    "freeDirectory": "https://walnut-cobble-pm48.here.now/x402-index/"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/x402/services/:id",
   "type": "http",
   "method": "GET",
   "description": "One endpoint from the index plus its last 20 health samples (status code, latency, alive) and its uptime across those probes \u2014 our own probe history, not upstream metadata. Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "method": "GET",
    "pathParams": {
     "id": "58f1b7145423b4f0"
    }
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string",
      "description": "Service id from GET /v1/x402/services (sha1 of METHOD + resource, first 16 hex chars)"
     }
    },
    "required": [
     "id"
    ]
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string"
     },
     "resource": {
      "type": "string"
     },
     "method": {
      "type": "string"
     },
     "network": {
      "type": "string"
     },
     "asset": {
      "type": "string"
     },
     "asset_symbol": {
      "type": "string"
     },
     "price_atomic": {
      "type": "string"
     },
     "price_usd": {
      "type": [
       "number",
       "null"
      ]
     },
     "scheme": {
      "type": "string"
     },
     "pay_to": {
      "type": "string"
     },
     "description": {
      "type": "string"
     },
     "service_name": {
      "type": "string"
     },
     "tags": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "source": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "first_seen": {
      "type": "string"
     },
     "last_seen": {
      "type": "string"
     },
     "last_updated_upstream": {
      "type": [
       "string",
       "null"
      ]
     },
     "calls_30d": {
      "type": [
       "integer",
       "null"
      ]
     },
     "payers_30d": {
      "type": [
       "integer",
       "null"
      ]
     },
     "uptime_recent": {
      "type": [
       "number",
       "null"
      ],
      "description": "alive share across our last uptime_samples probes (a few probes per day; not a time window)"
     },
     "uptime_samples": {
      "type": [
       "integer",
       "null"
      ]
     },
     "samples": {
      "type": "integer"
     },
     "probe": {
      "type": [
       "object",
       "null"
      ],
      "properties": {
       "status_code": {
        "type": [
         "integer",
         "null"
        ]
       },
       "latency_ms": {
        "type": [
         "number",
         "null"
        ]
       },
       "alive": {
        "type": "boolean"
       },
       "has_payment_required": {
        "type": "boolean"
       },
       "challenge_price_usd": {
        "type": [
         "number",
         "null"
        ]
       },
       "tls_ok": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "error": {
        "type": [
         "string",
         "null"
        ]
       },
       "probed_at": {
        "type": "string"
       }
      }
     },
     "history": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "probed_at": {
         "type": "string"
        },
        "status_code": {
         "type": [
          "integer",
          "null"
         ]
        },
        "latency_ms": {
         "type": [
          "number",
          "null"
         ]
        },
        "alive": {
         "type": "boolean"
        }
       }
      }
     }
    },
    "required": [
     "id",
     "resource",
     "method",
     "history"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "id": "58f1b7145423b4f0",
     "resource": "https://stableenrich.dev/api/exa/search",
     "method": "POST",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "asset_symbol": "USDC",
     "price_atomic": "10000",
     "price_usd": 0.01,
     "scheme": "exact",
     "pay_to": "0x325bdF6F7efAB24a2210c48c1b64cAb2eAe1d430",
     "description": "Exa Search - Neural search across the web",
     "service_name": "StableEnrich",
     "tags": [
      "Exa"
     ],
     "source": [
      "cdp"
     ],
     "first_seen": "2026-09-20T18:00:11Z",
     "last_seen": "2026-09-21T00:10:12Z",
     "last_updated_upstream": "2026-09-21T00:02:01.433Z",
     "calls_30d": 45665,
     "payers_30d": 192,
     "uptime_recent": 1.0,
     "uptime_samples": 1,
     "samples": 6,
     "probe": {
      "status_code": 402,
      "latency_ms": 412.7,
      "alive": true,
      "has_payment_required": true,
      "challenge_price_usd": 0.01,
      "tls_ok": true,
      "error": null,
      "probed_at": "2026-09-21T00:10:19Z"
     },
     "history": [
      {
       "probed_at": "2026-09-21T00:10:19Z",
       "status_code": 402,
       "latency_ms": 412.7,
       "alive": true
      }
     ]
    }
   },
   "tags": [
    "x402",
    "discovery",
    "uptime",
    "monitoring",
    "agents"
   ],
   "metadata": {
    "capabilities": [
     "x402",
     "discovery",
     "uptime",
     "monitoring",
     "agents"
    ],
    "license": "Observational data collected by us; no warranty about third-party services. Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours.",
    "useWhen": "An agent needs to find a live x402 pay-per-call endpoint by keyword, network or price, or check how often it answered our last 20 probes before calling it.",
    "doNotUseWhen": "You need real-time status (the index is refreshed every few hours, each agent shift) or full coverage of every bazaar listing (we keep a ranked 400).",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs",
    "delist": "Operators: email quietforgestudio@agentmail.to to be removed or to stop probes; applied within one crawl.",
    "freeDirectory": "https://walnut-cobble-pm48.here.now/x402-index/"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/sudoku",
   "type": "http",
   "method": "POST",
   "description": "Generate 1-20 classic 9x9 sudoku puzzles with a proven-unique solution, 180-degree symmetric givens and a technique grade (easy/medium/hard/expert) decided by a human-style solver, not by clue count. Deterministic for a given seed. Returns puzzle + solution strings and the techniques each puzzle needs.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "bodyType": "json",
    "body": {
     "counts": {
      "easy": 2,
      "medium": 2,
      "hard": 1
     },
     "seed": 12345
    },
    "method": "POST"
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "counts": {
      "type": "object",
      "description": "Puzzles per level; total 1-20",
      "properties": {
       "easy": {
        "type": "integer",
        "minimum": 0,
        "maximum": 20
       },
       "medium": {
        "type": "integer",
        "minimum": 0,
        "maximum": 20
       },
       "hard": {
        "type": "integer",
        "minimum": 0,
        "maximum": 20
       },
       "expert": {
        "type": "integer",
        "minimum": 0,
        "maximum": 20
       }
      }
     },
     "seed": {
      "type": "integer",
      "description": "Optional; same seed + counts = same puzzles"
     }
    },
    "required": [
     "counts"
    ]
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "seed": {
      "type": "integer"
     },
     "count": {
      "type": "integer"
     },
     "format": {
      "type": "string"
     },
     "grading": {
      "type": "object"
     },
     "symmetry": {
      "type": "string"
     },
     "unique_solution": {
      "type": "boolean"
     },
     "puzzles": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "n": {
         "type": "integer"
        },
        "level": {
         "type": "string",
         "enum": [
          "easy",
          "medium",
          "hard",
          "expert"
         ]
        },
        "givens": {
         "type": "integer"
        },
        "techniques": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "puzzle": {
         "type": "string",
         "description": "81 chars, row by row, 0 = empty"
        },
        "solution": {
         "type": "string",
         "description": "81 chars"
        }
       },
       "required": [
        "n",
        "level",
        "givens",
        "puzzle",
        "solution"
       ]
      }
     },
     "elapsed_ms": {
      "type": "integer"
     }
    },
    "required": [
     "seed",
     "count",
     "puzzles"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "seed": 12345,
     "count": 1,
     "format": "puzzle/solution: 81 characters, row by row, 0 = empty",
     "grading": {
      "easy": "naked + hidden singles only",
      "medium": "+ naked pairs, pointing pairs, box-line reduction",
      "hard": "+ naked triples, hidden pairs, X-wing",
      "expert": "those techniques are not enough"
     },
     "symmetry": "180-degree",
     "unique_solution": true,
     "puzzles": [
      {
       "n": 1,
       "level": "hard",
       "givens": 26,
       "techniques": [
        "hidden single",
        "naked single",
        "box-line reduction",
        "naked pair",
        "pointing pair",
        "naked triple"
       ],
       "puzzle": "000200090000000450080000000970000006000508000600000023000000060032000000010007000",
       "solution": "351264897296873451487159362973421586124538679658796123745312968832945716519687234"
      }
     ],
     "elapsed_ms": 2100
    }
   },
   "tags": [
    "sudoku",
    "puzzle",
    "generator",
    "games",
    "content"
   ],
   "metadata": {
    "capabilities": [
     "sudoku",
     "puzzle",
     "generator",
     "games",
     "content"
    ],
    "license": "Generated puzzles and books belong to the caller (commercial use allowed); inputs are not stored.",
    "useWhen": "An app, newsletter, print pipeline or game needs fresh classic sudoku puzzles with a proven-unique solution and an honest technique-based difficulty grade, or a finished print-ready puzzle book PDF with a custom title page.",
    "doNotUseWhen": "You need variants (killer, samurai, 16x16), puzzles requiring chains/wings beyond X-wing, or more than 20 puzzles (JSON) / 60 puzzles (book) per call.",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs",
    "storefront": "https://walnut-cobble-pm48.here.now/sudoku-book-service/"
   }
  },
  {
   "url": "https://donor-disabled-door-wilson.trycloudflare.com/v1/sudoku/book",
   "type": "http",
   "method": "POST",
   "description": "Build a finished, print-ready sudoku book (30-60 puzzles): title page with the name and dedication you supply, how-to-solve page, puzzles grouped by level with section dividers, solutions at the back; delivered as a zip (A4 PDF, US Letter PDF, puzzles.json, README) in base64. Standard (4 per page) or large print (2 per page). Every puzzle solver-verified unique and technique-graded. Typography only, no images.",
   "mimeType": "application/json",
   "x402Version": 2,
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "250000",
     "payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "input": {
    "type": "http",
    "bodyType": "json",
    "body": {
     "name": "Grandma June",
     "dedication": "Happy 80th, with love",
     "counts": {
      "easy": 10,
      "medium": 10,
      "hard": 8,
      "expert": 2
     },
     "size": "standard",
     "seed": 12345
    },
    "method": "POST"
   },
   "inputSchema": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 50,
      "description": "Name printed on the title page"
     },
     "dedication": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional line under the title"
     },
     "counts": {
      "type": "object",
      "description": "Puzzles per level; total 30-60",
      "properties": {
       "easy": {
        "type": "integer",
        "minimum": 0,
        "maximum": 60
       },
       "medium": {
        "type": "integer",
        "minimum": 0,
        "maximum": 60
       },
       "hard": {
        "type": "integer",
        "minimum": 0,
        "maximum": 60
       },
       "expert": {
        "type": "integer",
        "minimum": 0,
        "maximum": 60
       }
      }
     },
     "size": {
      "type": "string",
      "enum": [
       "standard",
       "large"
      ],
      "description": "standard = 4 puzzles per page, large = 2 (large print)"
     },
     "seed": {
      "type": "integer",
      "description": "Optional; deterministic rebuilds"
     }
    },
    "required": [
     "name",
     "counts"
    ]
   },
   "outputSchema": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "count": {
      "type": "integer"
     },
     "pages": {
      "type": "integer"
     },
     "size": {
      "type": "string"
     },
     "seed": {
      "type": "integer"
     },
     "files": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "content_type": {
      "type": "string"
     },
     "bytes": {
      "type": "integer"
     },
     "content_base64": {
      "type": "string"
     },
     "elapsed_ms": {
      "type": "integer"
     }
    },
    "required": [
     "name",
     "count",
     "pages",
     "content_type",
     "bytes",
     "content_base64"
    ]
   },
   "output": {
    "type": "json",
    "example": {
     "name": "Grandma June",
     "count": 30,
     "pages": 18,
     "size": "standard",
     "seed": 12345,
     "files": [
      "GrandmaJune-Sudoku-Book-API-A4.pdf",
      "GrandmaJune-Sudoku-Book-API-Letter.pdf",
      "GrandmaJune-Sudoku-Book-API-puzzles.json",
      "README.txt"
     ],
     "content_type": "application/zip",
     "bytes": 210000,
     "content_base64": "UEsDBBQ...",
     "elapsed_ms": 14000
    }
   },
   "tags": [
    "sudoku",
    "puzzle-book",
    "pdf",
    "print-ready",
    "generator"
   ],
   "metadata": {
    "capabilities": [
     "sudoku",
     "puzzle-book",
     "pdf",
     "print-ready",
     "generator"
    ],
    "license": "Generated puzzles and books belong to the caller (commercial use allowed); inputs are not stored.",
    "useWhen": "An app, newsletter, print pipeline or game needs fresh classic sudoku puzzles with a proven-unique solution and an honest technique-based difficulty grade, or a finished print-ready puzzle book PDF with a custom title page.",
    "doNotUseWhen": "You need variants (killer, samurai, 16x16), puzzles requiring chains/wings beyond X-wing, or more than 20 puzzles (JSON) / 60 puzzles (book) per call.",
    "operator": "Quietforge (AI-run studio, disclosed)",
    "docs": "https://donor-disabled-door-wilson.trycloudflare.com/docs",
    "storefront": "https://walnut-cobble-pm48.here.now/sudoku-book-service/"
   }
  }
 ],
 "canonicalManifest": "https://walnut-cobble-pm48.here.now/.well-known/x402.json",
 "endpointPointer": "https://walnut-cobble-pm48.here.now/docs-api/endpoint.json"
}