# AISkills402: x402 Offer Check

> AISkills402: x402 Offer Check is a paid API for AI agents from api.aiskills402.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-17).

Probes a public x402 payment-gated URL from the Cloudflare edge and reports what a buyer sees — payment headers, CORS behavior, 404s, and other findings by severity.

## Facts

- Endpoint: POST https://api.aiskills402.com/v1/run/x402-offer-check?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/aiskills402-x402-offer-check-d377fdea
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0QY57x2D7DARQRgj0Patx

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 aiskills402-x402-offer-check-d377fdea -d '<json body>'
```

Example prompt: Can you probe my x402 endpoint at https://api.example.com/v1/my-resource using both GET and POST, and tell me what a buyer would see — payment headers, CORS, offer details, and any findings by severity?

## When to prefer this

Use this endpoint when you need to validate or debug an x402 payment-gated API from the perspective of a real buyer hitting it from the Cloudflare edge. It is especially useful for verifying offer metadata correctness, diagnosing CORS misconfigurations, checking method-specific behavior (GET vs POST), and confirming v2 client compatibility — all in one structured report with severity-ranked findings. Prefer it over manual curl-based checks when you need a machine-readable, edge-sourced audit of an x402 endpoint.

## Known failure modes

- URL is an IP address or *.workers.dev — rejected by policy
- URL is not reachable from Cloudflare edge — reachable:false returned
- x402 endpoint returns no payment-required header — reported as a finding
- Replayed payment header returns cached receipt instead of fresh measurement
- URL resolves to a non-HTTPS scheme — rejected
- Response header size exceeds limits — flagged as a finding

## How this service works

x402 Offer Check API: probes a public x402 storefront from the Cloudflare edge (GET, POST, OPTIONS) and reports what a buyer sees - payment-required header vs body, extra, bazaar, CORS, header size, 404 on the other method - as findings by severity. $0.01 USDC per check, a live measurement (a replayed payment header returns the receipt, not a new measurement). POST JSON {url, method?}; free example at https://api.aiskills402.com/v1/run/x402-offer-check/example

## Output

A JSON object including: whether the URL is reachable, the full parsed x402 offer (asset, network, amount, pay-to address, scheme, service name), HTTP status codes for GET/POST/OPTIONS probes, response and header sizes in bytes, CORS findings, a list of findings categorized by severity, whether the endpoint is payable by a v2 client, the final URL after redirects, and a timestamp of when the check was performed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 2048,
   "minLength": 1,
   "description": "Public https address of the x402 resource to check (port 443, a DNS name; no IP addresses, no *.workers.dev)."
  },
  "method": {
   "enum": [
    "auto",
    "GET",
    "POST"
   ],
   "type": "string",
   "default": "auto",
   "description": "Which method to probe first; the other one is always probed too."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "skill": "x402-offer-check",
  "engine": "1.0.0",
  "replay": false,
  "result": {
   "url": "https://api.aiskills402.com/v1/run/jsonl-repair",
   "offer": {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
     "name": "USD Coin",
     "version": "2"
    },
    "bazaar": "full",
    "pay_to": "0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4",
    "scheme": "exact",
    "network": "eip155:8453",
    "amount_usd": "0.003",
    "amount_micro": "3000",
    "resource_url": "https://api.aiskills402.com/v1/run/jsonl-repair",
    "service_name": "AISkills402 API: JSONL Repair",
    "x402_version": 2,
    "max_timeout_seconds": 60
   },
   "sizes": {
    "body_bytes": 2351,
    "payment_required_chars": 3136,
    "response_headers_bytes": 3873
   },
   "findings": [],
   "final_url": "https://api.aiskills402.com/v1/run/jsonl-repair",
   "reachable": true,
   "checked_at": "2026-10-16T17:05:07.800Z",
   "paid_method": "POST",
   "measured_from": "recorded",
   "status_by_probe": {
    "GET": 405,
    "POST": 402,
    "OPTIONS": 204
   },
   "payable_by_v2_client": true
  },
  "receipt": {
   "tx": "0x<settlement transaction>",
   "settled": true
  },
  "refusal": null,
  "input_sha256": "<sha256 of the request>"
 }
}
```

## More

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