Skip to main content
Independent MeasurementEndpoint record (L0 · L1)Published state: passLast probed: 2026-09-28 · 1 day ago

api.recoupable.dev/api/x402/image/generate

1.Catalog declaration

Catalog declaration for this endpoint
Resource URLhttps://api.recoupable.dev/api/x402/image/generate
Sourcecdp_bazaar
Declared methodGET
Networkbase
Receiving address0xbaf31935ed514e8f7da81d0a730ab5362deeeeb7
Declared price (base units)—
Catalog statusactive
First seen / last seen2026-08-14 08:52 UTC / 2026-09-29 01:03 UTC
Catalog-reported calls / payers (30d)1 / 1

2.Probe history

2026-09-092026-09-28
Figure 1. Probe timeline, last 30 probes for this endpoint (UTC). Filled = pass, crossed = fail, dashed = unverified. Same-day probes overlap. Marks closer than one mark width are stepped down one lane.
L0 probe history, newest first
Probed atMethodVerdictHTTPLatencyReason
2026-09-28 22:40 UTCGETpass402804 ms—
2026-09-28 04:40 UTCGETpass402752 ms—
2026-09-27 13:40 UTCGETpass402295 ms—
2026-09-26 22:40 UTCGETpass402354 ms—
2026-09-26 04:40 UTCGETpass402248 ms—
2026-09-25 13:40 UTCGETpass402157 ms—
2026-09-24 16:40 UTCGETpass402179 ms—
2026-09-23 22:40 UTCGETpass402285 ms—
2026-09-23 04:40 UTCGETpass402390 ms—
2026-09-22 13:40 UTCGETpass402245 ms—
2026-09-21 16:40 UTCGETpass402213 ms—
2026-09-20 22:40 UTCGETpass402255 ms—
2026-09-20 04:40 UTCGETpass402389 ms—
2026-09-19 13:40 UTCGETpass40267 ms—
2026-09-18 22:40 UTCGETpass402870 ms—
2026-09-18 04:40 UTCGETpass402348 ms—
2026-09-17 13:40 UTCGETpass402182 ms—
2026-09-16 16:40 UTCGETpass402130 ms—
2026-09-15 22:40 UTCGETpass402144 ms—
2026-09-15 04:40 UTCGETpass402113 ms—
2026-09-14 16:40 UTCGETpass402284 ms—
2026-09-13 22:40 UTCGETpass402260 ms—
2026-09-13 13:40 UTCGETpass402220 ms—
2026-09-12 16:40 UTCGETpass402209 ms—
2026-09-12 04:40 UTCGETpass402170 ms—
2026-09-11 16:40 UTCGETpass402272 ms—
2026-09-10 23:40 UTCGETpass4022020 ms—
2026-09-10 14:40 UTCGETpass402264 ms—
2026-09-09 23:40 UTCGETpass402177 ms—
2026-09-09 05:40 UTCGETpass40284 ms—

3.L1 — real purchases

2 of 2 paid attempts settled with a receipt, and 0 of those also returned a 2xx response (delivered). Each settled row carries its on-chain transaction hash — the receipt is the evidence. A settled row reads as nonce-bound when the on-chain re-read also matched the one-time signature nonce we generated for that purchase, and amount + payee when it matched amount, payee, asset and chain with no nonce on record — the binding shipped on 2026-09-04, so earlier rows carry the weaker evidence and keep their label rather than being demoted (methodology). settled is the transfer we confirmed on-chain; delivered is the response arriving. A settled row whose paid request answered 5xx counts as settled and not as delivered — definitions.

2 of those paid attempts are held as inconclusive rather than counted against this seller (2 settled and answered 4xx, 0 answered 4xx with no settlement receipt, 0 answered 402 or 5xx while our own payer wallet was out of USDC, 2026-09-13 00:00 to 2026-09-15 23:49 UTC). A 4xx says the request was not one the server would accept, and we cannot rule out that the request was ours to get wrong: vet402 buys with no API key of the seller's, and sends a POST body only when the seller declares one. This is the same principle the methodology already applied to path_template URLs, applied to the body and the authentication header as well. The rows are not deleted and not hidden — they are below, with their status and HTTP code, and they are out of the denominator for delivered (corrections).

Terms in this table

settled (nonce-bound)
vet402 confirmed the USDC transfer on-chain, and the on-chain re-read also matched the one-time nonce vet402 signed for that purchase.
settled (amount + payee)
vet402 confirmed the USDC transfer on-chain; the on-chain re-read matched amount, payee, asset and chain; no nonce was on record (rows before 2026-09-04).
settled_4xx
held_reason in the export: the payment settled, then the paid request got a 4xx.
L2 not_checked
not checked: the paid request did not answer 200, so there was no response to check against the listing's output schema.
Whose side
the same words as the seller page: seller's side only after failures on two different days (UTC), marked “under re-check”; vet402's side; or not sorted (the rules).
2/2
Figure 2. Settle-through: one cell per paid attempt. Filled = settled with an on-chain receipt, crossed = paid but no receipt.
L1 purchase history, newest first
Attempted atResultHTTPReceipt (tx)Latency
09-11 18:02settled (nonce-bound)4000xa3b2c7fb…f1551180 ms
150000 units (≈ $0.15 USDC) · L2 not_checkedWhose side: not sorted: charged, then rejected an input vet402 had not sent
08-29 12:08settled (amount + payee)4000xaea95487…9bdb1065 ms
150000 units (≈ $0.15 USDC) · L2 not_checkedWhose side: not sorted: charged, then rejected an input vet402 had not sent

Embed this record

Run this endpoint? Show the settle-through record vet402 measured — the badge reads 2/2 settled · 0 delivered · 2 inconclusive and updates as the record grows. It carries the host it is about and the date it was last measured, so a saved copy cannot pass itself off as current. It states a measurement, not a rating.

vet402: 2 of 2 paid attempts settled with an on-chain receipt, and 0 of those also returned a 2xx response. settled is the confirmed transfer; delivered is the response arriving. 2 paid attempts are held as inconclusive rather than counted against the seller: a paid request that answered 4xx, settled or not, can be our own request being malformed, because vet402 buys with no API key and sends a request body only when the seller declares one; and a 402 or 5xx from 2026-09-13 to 2026-09-15 came while vet402's own payer wallet was out of USDC. A measurement of what happened when vet402 paid this endpoint, not a recommendation. (api.recoupable.dev · measured 2026-09-11)

[![vet402 receipt](https://vet402.com/api/badge/endpoint/71c9a4e6-65ac-4b3b-9b44-c4d445615d79.svg)](https://vet402.com/observatory/e/71c9a4e6-65ac-4b3b-9b44-c4d445615d79)

Get one email when this record's verdict changes. No digest, no marketing — one message per change, and only for this endpoint. We first send one confirmation email; nothing else goes out until you confirm.

4.Catalog listing events

No listing changes observed.

unverified is not a failure; a fail is published only after two consecutive failing probes. Definitions: methodology.

5.Dispute this record

Think a measurement above is wrong? Say which probe or purchase and what you observed instead. One person reads it and replies. The record is never deleted on dispute: if it was wrong, the correction is published with the same weight; if it was right, it stands. Operators who control the receiving address can also sign a dispute via POST /api/v1/observatory/disputes (API reference), which re-measures through the normal publication gate.

About the purchase at 2026-09-11T18:02:03Z (UTC). The form starts with that time; add what you saw instead.