# x402 Endpoint Checker & Validator

> x402 Endpoint Checker & Validator is a paid API for AI agents from x402-gateway.blackwoodstate8.workers.dev, paid per call via x402, $0.007/call, status unknown (last checked 2026-10-23).

Validates whether a public URL correctly implements the x402 payment protocol by checking for 402 responses, parsing payment options, and surfacing discovery metadata problems — without actually paying.

## Facts

- Endpoint: POST https://x402-gateway.blackwoodstate8.workers.dev/v1/x402-check?utm_source=zero.xyz
- Price: $0.007/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-endpoint-checker-validator-ffd4e002
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IVMPfXpTPNkUgZ-m6GCyA

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 x402-endpoint-checker-validator-ffd4e002 -d '<json body>'
```

Example prompt: Can you check whether https://x402.org/protected is properly configured as an x402 endpoint — does it return a 402, what payment options does it advertise, and are there any problems with its Bazaar discovery metadata?

## When to prefer this

Use this endpoint when you need to test or audit an x402-protocol endpoint without spending funds — for example before listing on Bazaar, debugging a misconfigured x402 API, or verifying a third-party x402 service. Do not use it to actually make a paid request to an x402 endpoint, or to check endpoints behind standard authentication (API keys, OAuth). For generic HTTP health checks unrelated to x402 payment semantics, prefer a standard uptime or header-audit tool.

## Known failure modes

- URL is not publicly reachable — returns error or timeout
- Endpoint does not return 402 — x402 flag is false, no payment options parsed
- Malformed x402 headers — payment options partially parsed with problems listed
- URL scheme is not http/https — rejected by input validation
- URL length exceeds 2048 characters — rejected
- POST body provided but endpoint is GET-only — mismatch detected
- Bazaar metadata absent or schema invalid — flagged in problems list

## How this service works

Use when you need an x402 endpoint check or x402 endpoint test, or to validate x402 endpoint listings before paying or integrating. Do not use for actually paying the endpoint, or endpoints behind authentication. Returns JSON with an x402 check of an endpoint without paying: whether it answers 402, its payment options (scheme, network, asset, amount, payTo), Bazaar metadata and problems found for 0.007 USDC per call. Typical response time 2500 ms (p95). Category: Infrastructure.

## Output

A JSON object indicating whether the URL responds with a 402 status, the parsed x402 payment options (scheme, network, asset, amount, payTo address), Bazaar discovery metadata presence and schema validity, a list of problems found, the final resolved URL, and a checkedAt timestamp. May also include a suggested next paid call in the same service family.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "maxLength": 2048,
       "minLength": 8,
       "description": "Public http(s) URL of the x402 endpoint, e.g. https://x402.org/protected"
      },
      "body": {
       "type": "object",
       "description": "JSON body to send with POST, e.g. {\"url\": \"https://example.com\"} (no payment is ever attached)",
       "propertyNames": {
        "type": "string"
       },
       "additionalProperties": {}
      },
      "method": {
       "enum": [
        "GET",
        "POST"
       ],
       "type": "string",
       "description": "HTTP method of the endpoint (GET when omitted)"
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "url",
      "finalUrl",
      "status",
      "x402",
      "version",
      "resource",
      "accepts",
      "bazaar",
      "problems",
      "checkedAt"
     ],
     "properties": {
      "url": {
       "type": "string"
      },
      "next": {
       "type": "object",
       "required": [
        "service",
        "tool",
        "method",
        "url",
        "useWhen",
        "sample"
       ],
       "properties": {
        "url": {
         "type": "string",
         "description": "Paid route of the next call"
        },
        "tool": {
         "type": "string",
         "description": "MCP tool name of the same call"
        },
        "method": {
         "enum": [
          "GET",
          "POST"
         ],
         "type": "string"
        },
        "sample": {
         "type": "string",
         "description": "Free fixed sample of the whole family"
        },
        "service": {
         "type": "string",
         "description": "Service id of t
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://x402.org/protected",
  "x402": true,
  "bazaar": {
   "present": false,
   "inputSchema": false,
   "outputSchema": false
  },
  "status": 402,
  "accepts": [
   {
    "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
    "payTo": "0x209693Bc6afc0C5328bA36FaF03C514EF312287C",
    "amount": "10000",
    "scheme": "exact",
    "network": "eip155:84532",
    "amountUsd": 0.01,
    "maxTimeoutSeconds": 300
   },
   {
    "asset": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
    "payTo": "CKPKJWNdJEqa81x7CkZ14BVPiY6y16Sxs7owznqtWYp5",
    "amount": "10000",
    "scheme": "exact",
    "network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
    "amountUsd": 0.01,
    "maxTimeoutSeconds": 300
   }
  ],
  "version": 2,
  "finalUrl": "https://x402.org/protected",
  "problems": [
   "no_bazaar_metadata: without discovery metadata the endpoint is hard to find in the Bazaar"
  ],
  "resource": {
   "url": "https://x402.vercel.app/protected",
   "mimeType": null,
   "description": "Access to protected content"
  },
  "checkedAt": "2026-10-17T16:49:24.432Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-endpoint-checker-validator-ffd4e002/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-gateway.blackwoodstate8.workers.dev](https://www.zero.xyz/host/x402-gateway.blackwoodstate8.workers.dev/llms.txt)
