For agents · Datasource Pulse

Agent access

Three ways for an agent (or the human wiring one up) to run Datasource Pulse: Apify’s official MCP server, the plain Apify API, or the x402 endpoint that needs no account of any kind. Every snippet below is copy-paste ready; the example check pings a public URL, so no secrets are required to try it.

From the blog · July 24, 2026

An AI agent just paid our API two cents. No account. No card. No human.

The full story of the first agent payment: $0.02 in USDC on Base, settled on a public blockchain, with the transaction receipt inside.

Read the post →

MCP

Apify runs an official MCP server; the URL below scopes it to this Actor, so a connected agent sees Datasource Pulse as a callable tool with its full input schema. Works today in any MCP client. Bring an Apify token; clients that support OAuth can omit the header and sign in instead.

{
  "mcpServers": {
    "datasource-pulse": {
      "url": "https://mcp.apify.com/?tools=growth_wizard/datasource-pulse",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

Direct API (curl)

One synchronous call: run the Actor and get the dataset back. The response is one status record per connector checked, with a stable failure_class enum an agent can branch on.

curl -X POST \
  "https://api.apify.com/v2/acts/growth_wizard~datasource-pulse/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "checks": [{
      "type": "credential",
      "id": "public-ping",
      "label": "Public ping - GitHub Zen",
      "vendor": "generic_http",
      "url": "https://api.github.com/zen",
      "successStatusCode": 200
    }]
  }'

LangChain

Via Apify’s official LangChain integration. The tool exposes the same JSON input; results come back as the run’s dataset records.

# pip install langchain-apify
# export APIFY_API_TOKEN=your_token
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("growth_wizard/datasource-pulse")
result = tool.invoke(input={"run_input": {"checks": [{
    "type": "credential",
    "id": "public-ping",
    "vendor": "generic_http",
    "url": "https://api.github.com/zen",
    "successStatusCode": 200
}]}})

x402: no account at all

A single health check for $0.02 in USDC on Base, paid per request. No Apify account, no API key, no signup. Calling the endpoint unpaid returns a standard x402 v1 envelope carrying the price, the pay-to address, and the full input and output schemas: the 402 is the documentation.

curl -si -X POST https://datasourcepulse.com/api/x402/check \
  -H "Content-Type: application/json" -d '{}'
# -> HTTP 402 + JSON envelope: price, pay-to, input/output schemas

Paying takes one wrapped fetch:

// npm i x402-fetch viem
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_KEY);
const payFetch = wrapFetchWithPayment(fetch, account);

const res = await payFetch("https://datasourcepulse.com/api/x402/check", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    vendor: "generic_http",
    url: "https://api.github.com/zen",
    successStatusCode: 200,
  }),
});
console.log(await res.json()); // { state, failure_class, ... }

The endpoint is listed in Coinbase’s public x402 catalog (the Bazaar), and every settlement is public: live payment feed on x402scan · how the first payment went.

This origin also publishes its x402 manifest at /.well-known/x402.json: the standard DiscoveredResource envelope with full input and output schemas, so an agent can learn what is payable here without a facilitator or a prior transaction.

Datasource Pulse watches the data sources your product depends on: credentials, quotas, and scraper output quality. One alert when something degrades, one notice when it recovers.