{
  "x402Version": 2,
  "id": 1160,
  "slug": "1160",
  "resource": "https://gateway.stride20k.com/web/extract",
  "description": "Web scraping API: fetch any public web page and get its readable content as clean markdown — title, author, canonical URL, boilerplate stripped. Honest User-Agent, robots.txt honored (explicit Disallow returns an unpaid 403), private/internal targets refused, at most 3 safety-revalidated redirects, 1MB input / 100k character output caps. HTML pages only. Use for research agents, content extraction, summarization pipelines, and RAG ingestion. Cached up to 5 minutes per URL.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x552Cc4A10878C7F20574489D47184249657Ca3f6",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "30000",
      "maxTimeoutSeconds": 60
    }
  ],
  "outputSchema": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "url": "https://example.com/"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "author": null,
              "canonicalUrl": null,
              "charCount": 131,
              "finalUrl": "https://example.com/",
              "markdown": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission.",
              "title": "Example Domain",
              "truncated": false,
              "url": "https://example.com/"
            },
            "endpoint": "/web/extract",
            "meta": {
              "attribution": null,
              "cached": false,
              "fetchedAt": "2026-07-04T00:00:00.000Z",
              "source": "direct fetch (buyer-directed)"
            },
            "ok": true
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "url": {
                    "description": "Absolute http(s) URL of the page to extract.",
                    "pattern": "https?://.+",
                    "type": "string",
                    "urlSafety": true
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "data": {
                    "properties": {
                      "author": {
                        "description": "meta author, or null.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "canonicalUrl": {
                        "description": "rel=canonical link if the page declares one, else null.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "charCount": {
                        "description": "Length of the markdown field.",
                        "type": "integer"
                      },
                      "finalUrl": {
                        "description": "URL that actually served the content.",
                        "type": "string"
                      },
                      "markdown": {
                        "description": "Extracted readable content as markdown.",
                        "minLength": 1,
                        "type": "string"
                      },
                      "title": {
                        "description": "Document title, or null.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "truncated": {
                        "description": "True if output hit the 100k-char cap.",
                        "type": "boolean"
                      },
                      "url": {
                        "description": "The URL requested (after redirect re-validation).",
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "markdown",
                      "truncated"
                    ],
                    "type": "object"
                  },
                  "endpoint": {
                    "description": "Always \"/web/extract\".",
                    "type": "string"
                  },
                  "meta": {
                    "properties": {
                      "attribution": {
                        "description": "Licensing attribution when the source requires it.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "cached": {
                        "description": "Whether this response was served from cache.",
                        "type": "boolean"
                      },
                      "fetchedAt": {
                        "description": "ISO 8601 time the data was actually retrieved from the upstream.",
                        "type": "string"
                      },
                      "source": {
                        "description": "Upstream source: direct fetch (buyer-directed).",
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "cached",
                      "fetchedAt"
                    ],
                    "type": "object"
                  },
                  "ok": {
                    "description": "true on success.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "ok",
                  "endpoint",
                  "data",
                  "meta"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "gateway.stride20k.com",
  "lastUpdated": "2026-08-30T12:06:31.356Z",
  "quality": {
    "calls30d": 2,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-08-30T12:06:31.186Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "gateway.stride20k.com",
    "manifest_name": "gateway.stride20k.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-09-18T22:00:31.484Z"
  }
}