# DataSourcePulse Health Check

> DataSourcePulse Health Check is a paid API for AI agents from datasourcepulse.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-13).

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.

## Facts

- Endpoint: POST https://datasourcepulse.com/api/x402/check?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/datasourcepulse-health-check-326c7194
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aN1NzYv3eA1G2KD2QzsBZ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability datasourcepulse-health-check-326c7194 -d '<json body>'
```

Example prompt: 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?

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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.

## Output

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.

## Request schema (JSON Schema)

```json
{
 "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"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/datasourcepulse-health-check-326c7194/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from datasourcepulse.com](https://www.zero.xyz/host/datasourcepulse.com/llms.txt)
