x402station.io API reference
Delist Feed — changes-only diff
Daily pruning diff for catalog/index operators: newly flagged listings and recoveries since the last pull (max 48h window).
This HTML page is served by GET /api/v1/delist-feed-diff. The paid API operation remains POST /api/v1/delist-feed-diff.
x402 challenge example
HTTP/1.1 402 Payment Required
payment-required: <base64 PaymentRequiredResponse>
www-authenticate: x402
content-type: application/json; charset=utf-8
{
"x402Version": 2,
"error": "Payment required",
"resource": {
"url": "https://x402station.io/api/v1/delist-feed-diff",
"description": "Delist Feed — changes-only diff"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "USDC",
"amount": "1000000",
"payTo": "0x4053338C7cB38624C0bc23c900F78Cf8470b4E38",
"maxTimeoutSeconds": 300
}
]
}
Request body
{
"since": "2026-07-02T18:00:00Z",
"scope": "all"
}
Success response
{
"generated_at": "2026-07-03T18:00:00.000Z",
"mode": "diff",
"window": {
"since": "2026-07-02T18:00:00.000Z",
"until": "2026-07-03T18:00:00.000Z"
},
"counts": {
"should_delist": 3,
"newly_flagged": 3,
"recovered": 1,
"ghost_listings": 1
},
"should_delist": [
{
"url": "https://api.example.com/quote",
"reasons": [
"dead_7d"
],
"first_flagged_at": "2026-07-03T10:00:00.000Z",
"confidence": "low"
}
],
"recovered": []
}
Error codes
| status | meaning |
|---|---|
400 | Malformed JSON body, invalid URL, or missing required field. |
402 | Payment required. Decode payment-required, sign x402, retry. |
503 | Query/probe pipeline timeout. Treat as failed preflight; do not pay target blindly. |
400 | since older than 48 hours — re-baseline with the $5 full snapshot first. |
Notes
- since defaults to now()-24h and cannot exceed 48h back — stale diff baselines silently hide earlier flags.
- Pull cadence sweet spot: once a day ($1/day; ~$30/mo for continuous catalog hygiene).