# Base Reads x402 Preflight Check

> Base Reads x402 Preflight Check is a paid API for AI agents from base-reads-api.rafliyaputra.deno.net, paid per call via x402, $0.001/call, status unknown (last checked 2026-11-01).

Performs a preflight check on an x402-protected endpoint to verify its reachability, listing status, and payment challenge validity before committing to a pay-per-call transaction.

## Facts

- Endpoint: GET https://base-reads-api.rafliyaputra.deno.net/x402/preflight?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-reads-x402-preflight-check-452a9d83
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_QReAgUFlrxsJzxJkn4kO-

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 base-reads-x402-preflight-check-452a9d83
```

Example prompt: Before we pay for it, can you do a preflight check on the x402 endpoint at https://some-api.example.com/data to verify it's reachable, its payment challenge is valid, and see how many payers it's had in the last 30 days?

## When to prefer this

Use this endpoint when an AI agent or user needs to safely vet an x402 pay-per-call URL before committing funds — especially to check reachability, challenge validity, bazaar listing status, and historical payer activity. Prefer this over directly calling a paid endpoint when trust in the endpoint is unknown, when payout wallet reuse is a concern, or when you need a cryptographically signed, tamper-evident report on the endpoint's current state.

## Known failure modes

- Target URL is unreachable: reachability.reachable=false with no latency data
- x402 challenge is invalid or malformed: challenge.valid=false with problems array populated
- Endpoint not listed on bazaar: bazaar.listed=false
- Missing required 'url' queryParam: 400 bad request
- Non-x402 endpoint targeted (no 402 response): challenge may be empty or invalid
- Network timeout reaching target endpoint: may return partial facts or error

## How this service works

Pay-per-call read API for Base over x402 v2. Deterministic data, no advice.

## Output

Returns a signed JSON object containing: reachability status and latency (ms), HTTP status code, bazaar listing details (listed, available, payer trend over 30 days, last called timestamp, host listing count, payout wallet reuse info), payment challenge validity with any problems flagged, and an Ed25519 signature over the canonical facts for tamper-evidence. Includes a disclaimer that all data is deterministic observation only.

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri",
       "description": "Full https URL of the x402 endpoint to check before paying it"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "facts": {
   "bazaar": {
    "listed": true,
    "available": true,
    "payer_trend": [
     {
      "calls30d": 17,
      "snapshot": "2026-10-15",
      "payers30d": 4
     }
    ],
    "listed_payTo": [
     "0x742d35cc6634c0532925a3b844bc454e4438f44e"
    ],
    "snapshot_date": "2026-10-15",
    "last_called_at": "2026-10-14T12:00:00Z",
    "host_listing_count": 3,
    "payout_wallet_reuse": {}
   },
   "schema": "prepay-check/v1",
   "target": "https://x402.org/protected",
   "challenge": {
    "valid": true,
    "accepts": [],
    "problems": []
   },
   "checked_at": "2026-10-15T00:00:00Z",
   "disclaimer": "Deterministic observations only. Not advice to pay, buy or sell.",
   "reachability": {
    "reachable": true,
    "latency_ms": 180,
    "http_status": 402
   }
  },
  "signature": {
   "alg": "Ed25519",
   "key_id": "72cb9da845cc948f",
   "value_b64": "base64 Ed25519 signature over the canonical facts",
   "signed_over": "canonical JSON of facts (sorted keys, no whitespace)",
   "public_key_b64": "C3wmUnTtL12LUfkfDCR0bIeUXjbfq+hde5OeQC+dUy0="
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-reads-x402-preflight-check-452a9d83/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from base-reads-api.rafliyaputra.deno.net](https://www.zero.xyz/host/base-reads-api.rafliyaputra.deno.net/llms.txt)
