{"uid":"cap_aN1NzYv3eA1G2KD2QzsBZ","slug":"datasourcepulse-health-check-326c7194","name":"DataSourcePulse Health 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.","url":"https://datasourcepulse.com/api/x402/check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","description":"generic_http vendor (required): the public endpoint to check. Private, loopback, and internal addresses are rejected."},"type":{"enum":["credential","actor"],"type":"string","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."},"apiKey":{"type":"string","description":"credential mode: the API key to validate. Used for one live vendor call, never stored."},"vendor":{"type":"string","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."},"actorId":{"type":"string","description":"actor mode (required): Apify actor id, e.g. apify~web-scraper."},"clientId":{"type":"string","description":"credential mode: OAuth client id, for vendors that use one."},"apifyToken":{"type":"string","description":"actor mode (required): Apify API token with actor + run read access. Used for live reads, never stored."},"authHeader":{"type":"string","description":"generic_http: full Authorization header value to send."},"bearerToken":{"type":"string","description":"credential mode: bearer token, for vendors that use one."},"clientSecret":{"type":"string","description":"credential mode: OAuth client secret, for vendors that use one."},"costSpikePct":{"type":"number","description":"actor mode: cost spike threshold percent (default 50)."},"quotaSoftCap":{"type":"number","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."},"refreshToken":{"type":"string","description":"google_oauth vendor only: OAuth2 refresh token, validated via a token refresh."},"volumeDropPct":{"type":"number","description":"actor mode: volume drop threshold percent (default 30)."},"successJsonPath":{"type":"string","description":"generic_http: dot-separated JSON path to assert on the response body."},"successJsonValue":{"type":"string","description":"generic_http: expected string value at successJsonPath."},"successStatusCode":{"type":"number","description":"generic_http: expected HTTP status (default 200)."},"enableCostBaseline":{"type":"boolean","description":"actor mode: alert if per-run cost spikes vs the rolling average (default false)."},"enableVolumeBaseline":{"type":"boolean","description":"actor mode: alert if latest output volume drops vs the rolling average of recent runs (default true)."},"zeroYieldRunThreshold":{"type":"number","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."},"stalenessThresholdDays":{"type":"number","description":"actor mode: failing verdict when the actor has not been updated in this many days (default 30)."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_SQiivr9dJ_oYdtXUzGNPH","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Performs a single live health check on an API key, HTTP endpoint, or Apify actor and returns a machine-readable verdict with failure classification and recommended action.","exampleAgentPrompt":"Can you check if my OpenAI API key sk-abc123 is still valid and hasn't hit its quota — give me the health verdict and tell me what to do if something's wrong?","exampleUseCases":[{"title":"Silent API key failure detection","prompt":"My pipeline has been acting weird — can you check if my Stripe API key sk_live_xyz789 is still working or if it's been revoked or rate-limited?"},{"title":"Apify scraper health monitoring","prompt":"Check whether my Apify actor apify~web-scraper is healthy — use my Apify token apify_api_abc123 and alert me if there's a volume drop or cost spike over 50%."},{"title":"Generic HTTP endpoint liveness check","prompt":"Can you do a live health check on https://api.myservice.com/health and tell me if it's responding correctly, what the latency is, and what I should do if it's failing?"}],"resultDescription":"Returns a JSON object with: state (healthy/warning/failing), failure_class (e.g. dead_token, quota_exhausted, rate_limited, timeout, schema_drift, actor_stale, or null if healthy), a human-readable message, recommended_action (null if healthy), latency_ms, checked_at ISO timestamp, and probe-specific metadata such as quota percentages or run success rates.","failureModes":["Private or loopback URL provided — rejected with 400","Unknown vendor specified — 400 returned with list of supported vendors","Missing required fields for the selected mode — 400 validation error","Apify token lacks required permissions — check fails with authentication error","Network timeout reaching the target endpoint — returns state: failing, failure_class: timeout","Payment not received or insufficient funds — x402 payment required error"],"whenToPreferThis":"Use this endpoint when you need a single, instant, machine-readable health verdict on an API credential or scraper — especially when you want structured failure classification (dead_token, quota_exhausted, rate_limited, schema_drift, etc.) and a recommended action rather than a raw HTTP status code. Prefer it over manual curl checks when you need to validate credentials for 35+ named vendors without writing vendor-specific logic, or when monitoring Apify actors for volume drops, cost spikes, or stale results.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-13T00:31:58.157Z","isFirstParty":false,"canonicalSlug":"datasourcepulse-health-check-326c7194"}