{
  "x402Version": 2,
  "id": 13884,
  "slug": "13884",
  "resource": "https://datasourcepulse.com/api/x402/check",
  "description": "Detect when an Apify Actor, API, scraper or data feed breaks, goes stale or silently changes shape. One paid call returns a verdict with the evidence behind it, so an agent can decide whether a data source is still trustworthy before acting on it. Works with any HTTP endpoint; 35+ pre-wired vendors (OpenAI, Anthropic, Stripe, GitHub) are a head start, not a limit. Schedule it on your own cadence for continuous monitoring of breakage, staleness and drift.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x7cCb91a3ad4c45097bDA4C3C29d2Cc89fA93Ab36",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "20000",
      "maxTimeoutSeconds": 90
    }
  ],
  "outputSchema": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "type": "credential",
            "url": "https://example.com",
            "vendor": "generic_http"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "properties": {
                  "actorId": {
                    "description": "actor mode (required): Apify actor id, e.g. apify~web-scraper.",
                    "type": "string"
                  },
                  "apiKey": {
                    "description": "credential mode: the API key to validate. Used for one live vendor call, never stored.",
                    "type": "string"
                  },
                  "apifyToken": {
                    "description": "actor mode (required): Apify API token with actor + run read access. Used for live reads, never stored.",
                    "type": "string"
                  },
                  "authHeader": {
                    "description": "generic_http: full Authorization header value to send.",
                    "type": "string"
                  },
                  "bearerToken": {
                    "description": "credential mode: bearer token, for vendors that use one.",
                    "type": "string"
                  },
                  "clientId": {
                    "description": "credential mode: OAuth client id, for vendors that use one.",
                    "type": "string"
                  },
                  "clientSecret": {
                    "description": "credential mode: OAuth client secret, for vendors that use one.",
                    "type": "string"
                  },
                  "costSpikePct": {
                    "description": "actor mode: cost spike threshold percent (default 50).",
                    "type": "number"
                  },
                  "enableCostBaseline": {
                    "description": "actor mode: alert if per-run cost spikes vs the rolling average (default false).",
                    "type": "boolean"
                  },
                  "enableVolumeBaseline": {
                    "description": "actor mode: alert if latest output volume drops vs the rolling average of recent runs (default true).",
                    "type": "boolean"
                  },
                  "quotaSoftCap": {
                    "description": "credential mode, optional: your own budget line in the vendor's native usage unit. Quota verdicts are evaluated against this cap instead of the vendor's billing wall.",
                    "type": "number"
                  },
                  "refreshToken": {
                    "description": "google_oauth vendor only: OAuth2 refresh token, validated via a token refresh.",
                    "type": "string"
                  },
                  "stalenessThresholdDays": {
                    "description": "actor mode: failing verdict when the actor has not been updated in this many days (default 30).",
                    "type": "number"
                  },
                  "successJsonPath": {
                    "description": "generic_http: dot-separated JSON path to assert on the response body.",
                    "type": "string"
                  },
                  "successJsonValue": {
                    "description": "generic_http: expected string value at successJsonPath.",
                    "type": "string"
                  },
                  "successStatusCode": {
                    "description": "generic_http: expected HTTP status (default 200).",
                    "type": "number"
                  },
                  "type": {
                    "description": "Check mode. credential (default): validate an API key or HTTP endpoint. actor: health-check a public Apify actor by id. If omitted, inferred: actorId present means actor, otherwise credential.",
                    "enum": [
                      "credential",
                      "actor"
                    ],
                    "type": "string"
                  },
                  "url": {
                    "description": "generic_http vendor (required): the public endpoint to check. Private, loopback, and internal addresses are rejected.",
                    "type": "string"
                  },
                  "vendor": {
                    "description": "credential mode (required): vendor template, e.g. openai, anthropic, gemini, stripe, github, serpapi, reddit, youtube, or generic_http for any HTTP endpoint. Unknown vendors return 400 with the full list location.",
                    "type": "string"
                  },
                  "volumeDropPct": {
                    "description": "actor mode: volume drop threshold percent (default 30).",
                    "type": "number"
                  },
                  "zeroYieldRunThreshold": {
                    "description": "actor mode: failing verdict when this many consecutive most-recent SUCCEEDED runs each produced 0 dataset items (silent zero-yield). Non-negative integer; 0 disables; default 3.",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "datasourcepulse.com",
  "lastUpdated": "2026-09-17T03:46:18.534Z",
  "quality": {
    "calls30d": 1,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-09-17T03:46:18.104Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "datasourcepulse.com",
    "manifest_name": "datasourcepulse.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"
  }
}