{"slug":"datasourcepulse-com-api-x402-check-239f38","title":"Detect when an Apify Actor, API, scraper or data feed breaks, goes stale or sile","host":"datasourcepulse.com","method":"POST","resource":"https://datasourcepulse.com/api/x402/check","category":"search","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 ","price_listed":0.02,"price_asked":0.02,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":1031,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"type":"credential","url":"https://example.com","vendor":"generic_http"},"bodyType":"json","method":"POST","type":"http"},"output_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"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.02,"price_match":true,"latency_ms":1031,"error":null}],"description_full":"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.","last_updated":"2026-09-17T03:46:18.534Z","schemes":["exact"]}