x402 census · qr-api-production-1836.up.railway.app · 978ddc9871bf · JSON
POST /generate/styled
live
Generate a styled QR code PNG (base64 in JSON): custom foreground/background hex colours, module size, border, and error-correction level.
Verdict: live. The unpaid GET reached a valid 402. The live amount equals the catalog price.
Facts from the catalogs
| Field | Value |
|---|---|
| URL | https://qr-api-production-1836.up.railway.app/generate/styled |
| Method | POST |
| Price | $0.001 USDC = 1000 atomic units of 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Network | eip155:8453 (base) |
| payTo | 0xFFc458dB291b4ABcE020fE3de4f91F2770E537b1 |
| Seller | qr-api-production-1836.up.railway.app |
| Catalogs | cdp (row updated 2026-10-08) |
| Listed since (lower bound) | 2026-10-08 (earliest catalog timestamp; catalogs report last-update times only) |
| Last catalog update | 2026-10-08 |
| CDP quality counters | 1 calls and 1 unique payers in 30 days, last call 2026-10-08 (catalog-reported, not verified on chain) |
| Category (keyword rule) | dev-tools/utilities |
| Templated path | no |
| x402Version in catalog | 2 |
| Service name / tags | none |
Unpaid probe (census of 2026-10-22)
| Field | Value |
|---|---|
| Probed at | 2026-10-22T00:33:49.056Z |
| HEAD | 402 |
| GET | 402 |
| Verdict | live live: valid 402 to an unpaid GET |
| 402 carried in | header+body |
| x402Version in the 402 | 2 |
| accepts[0] | {"scheme":"exact","network":"eip155:8453","amount":"1000","payTo":"0xFFc458dB291b4ABcE020fE3de4f91F2770E537b1","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}} |
| Live amount equals catalog price | yes |
| Live payTo equals catalog payTo | yes |
| extensions.bazaar in the 402 | yes |
| PAYMENT-REQUIRED header | yes |
| WWW-Authenticate offer | none |
| Content type / server / CORS | application/json / railway-hikari / none |
| Latency | 108 ms |
| Error | Payment required |
No hourly re-probe has reached this resource yet; the cron covers a rotating slice of 150 per hour.
On-chain facts for the payTo (public address)
| Field | Value |
|---|---|
| Distinct payers | 78 |
| Payments | 327 |
| USDC volume | $0.49 |
| Median payment | $0.001 |
| First / last payment | 2026-06-11 / 2026-09-30 |
| Sampler-shaped share of payments | 100.0% |
| Payers that are not samplers | 0 |
| Source | forensics-2026-09-30 |
| Address | 0xFFc458dB291b4ABcE020fE3de4f91F2770E537b1 |
Declared input and output (extensions.bazaar)
{
"input": {
"body": {
"back_color": "#ffffff",
"border": 4,
"box_size": 10,
"data": "https://payapi.market",
"error_correction": "H",
"fill_color": "#1d4ed8"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"type": "json",
"example": {
"back_color": "#ffffff",
"border": 4,
"box_size": 10,
"data": "https://payapi.market",
"error_correction": "H",
"fill_color": "#1d4ed8",
"format": "png",
"height": 370,
"image_base64": "iVBORw0KGgoAAAANSUhEUgAAASIAAAEiCAYAAABdvt+2AAAABmJLR0QA/wD/AP+gvaeTAAAF...",
"modules": 29,
"size_bytes": 640,
"version": 3,
"width": 370
}
}
}
Try it (unpaid: shows the 402)
curl -si -X POST 'https://qr-api-production-1836.up.railway.app/generate/styled' -H 'accept: application/json' -H 'content-type: application/json' --data '{}'
The catalog declares POST. A 402 answer carries the payment requirements in the JSON body and, for x402 v2, base64 in the PAYMENT-REQUIRED header. This page never sends a payment.
Paid checks (x402, USDC on Base)
GET https://bazaar.agentexchange.work/r/978ddc9871bf/probe.json re-runs this probe right now for $0.01 and writes the result here. POST https://bazaar.agentexchange.work/featured with {"id":"978ddc9871bf"} places this resource at the top of the report and search pages for 30 days for $1.00, labelled. Unpaid requests answer 402 with the terms. Pricing.
Catalog references: agentic.market (CDP Bazaar front end) · this record as JSON · all resources on qr-api-production-1836.up.railway.app.