api.craigmbrown.com/v1/services/reputation.lookup
1.Catalog declaration
| Resource URL | https://api.craigmbrown.com/v1/services/reputation.lookup |
| Source | cdp_bazaar |
| Declared method | POST |
| Catalog network | eip155:8453 |
| Receiving address | 0x5e709929a4ab69ec3a8811d03417869059bc4eb9 |
| Declared price (base units) | 10000 |
| Catalog status | active |
| First seen / last seen | 2026-08-14 08:39 UTC / 2026-11-14 12:05 UTC |
| Catalog-reported calls / payers (30d) | 13 / 6 |
2.Probe history
| Probed at | Method | Verdict | HTTP | Latency | Reason |
|---|---|---|---|---|---|
| 2026-11-13 16:40 UTC | POST | pass | 402 | 578 ms | — |
| 2026-11-11 04:40 UTC | POST | pass | 402 | 280 ms | — |
| 2026-11-08 22:40 UTC | POST | pass | 402 | 177 ms | — |
| 2026-11-06 22:40 UTC | POST | pass | 402 | 449 ms | — |
| 2026-11-04 16:40 UTC | POST | pass | 402 | 199 ms | — |
| 2026-11-01 16:40 UTC | POST | pass | 402 | 147 ms | — |
| 2026-10-30 16:40 UTC | POST | pass | 402 | 180 ms | — |
| 2026-10-28 16:40 UTC | POST | pass | 402 | 807 ms | — |
| 2026-10-27 00:40 UTC | POST | pass | 402 | 269 ms | — |
| 2026-10-25 06:40 UTC | POST | pass | 402 | 199 ms | — |
| 2026-10-23 04:40 UTC | POST | pass | 402 | 199 ms | — |
| 2026-10-21 16:40 UTC | POST | pass | 402 | 192 ms | — |
| 2026-10-20 04:40 UTC | POST | pass | 402 | 271 ms | — |
| 2026-10-18 16:40 UTC | POST | pass | 402 | 221 ms | — |
| 2026-10-17 04:40 UTC | POST | pass | 402 | 183 ms | — |
| 2026-10-15 15:40 UTC | POST | pass | 402 | 4870 ms | — |
| 2026-10-14 12:40 UTC | POST | pass | 402 | 133 ms | — |
| 2026-10-13 03:40 UTC | POST | pass | 402 | 125 ms | — |
| 2026-10-11 21:40 UTC | POST | pass | 402 | 83 ms | — |
| 2026-10-10 21:40 UTC | POST | pass | 402 | 638 ms | — |
| 2026-10-09 21:40 UTC | POST | pass | 402 | 147 ms | — |
| 2026-10-08 16:40 UTC | POST | pass | 402 | 122 ms | — |
| 2026-10-07 16:40 UTC | POST | pass | 402 | 87 ms | — |
| 2026-10-06 16:40 UTC | POST | pass | 402 | 88 ms | — |
| 2026-10-05 22:40 UTC | POST | pass | 402 | 275 ms | — |
| 2026-10-04 13:40 UTC | POST | pass | 402 | 51 ms | — |
| 2026-10-03 16:40 UTC | POST | pass | 402 | 60 ms | — |
| 2026-10-02 22:40 UTC | POST | pass | 402 | 100 ms | — |
| 2026-10-01 22:40 UTC | POST | pass | 402 | 196 ms | — |
| 2026-10-01 04:40 UTC | POST | pass | 402 | 118 ms | — |
3.L1 — real purchases
5 of 5 paid attempts settled on-chain, and 3 of those also returned a deliverable 2xx response (delivered: other than 202 Accepted with a non-empty body). Each settled row carries its on-chain transaction hash, and that transaction is the evidence. On this page a receipt means the seller's own settlement receipt (PAYMENT-RESPONSE); a settled row can have none (see “tx from our index”). A settled row reads as nonce-bound when the on-chain re-read matched the one-time value stored for that purchase, so the transaction is the one for this purchase. Stellar is not in this count. The Stellar re-read checks payer, payee, amount and asset. A row reads as amount + payee when the re-read matched payer, payee, amount and asset and did not bind a one-time value. That tier holds rows from before 2026-09-04 and Stellar rows. They keep the settled label rather than being demoted (methodology). settled is the transfer vet402 confirmed on-chain. delivered is a 2xx other than 202 with a non-empty body. 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 re-read the transfer on-chain in that chain's pinned settlement asset, and the on-chain re-read matched the one-time value stored for that purchase, so the transaction is the one for this purchase. Stellar is not in this count.
settled (amount + payee)- vet402 re-read the transfer on-chain in that chain's pinned settlement asset: the on-chain re-read matched payer, payee, amount and asset and did not bind a one-time value (rows before 2026-09-04, and Stellar).
settled_4xx- held_reason in the export: the payment settled, then the paid request got a 4xx.
L2 match (no required keys)- the declaration vet402 used marks no key as required, so vet402 checked that the response parsed as a JSON object or array, not which keys it carries.
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.
L2 match- the response parsed as JSON and had each key the declaration marks as required.
Stage delivered- vet402 re-read the payment on the chain and the paid request returned HTTP 2xx other than 202 Accepted with a body vet402 did not record as empty.
Stage inconclusive- vet402 holds the row because the paid HTTP response was 4xx, or vet402's payer wallet was unfunded in a recorded window. vet402 keeps the row public in its own stage, apart from delivered and not_delivered.
Whose side- the same words as the seller page: seller's side only after failures on two different days (UTC), marked “attribution under review”; vet402's side; or not sorted (the rules).
| Attempted at | Result | HTTP | On-chain tx | Payment chain | Latency |
|---|---|---|---|---|---|
| 10-22 21:312026-10-22 21:31 UTC | settled (nonce-bound) | 200 | 0xa8798ec7…afc4 | Base | 1367 ms |
| 10000 units (≈ $0.01 USDC) · L2 match (no required keys)Whose side: no failure (delivered)Stage: delivered | |||||
| 09-16 18:012026-09-16 18:01 UTC | settled (nonce-bound) | 409 | 0x9589cd9d…2abb | Base | 1487 ms |
| 10000 units (≈ $0.01 USDC) · L2 not_checkedWhose side: not sorted (held)Stage: inconclusive | |||||
| 09-10 01:022026-09-10 01:02 UTC | settled (nonce-bound) | 409 | 0x17cc5d45…ba6a | Base | 2608 ms |
| 10000 units (≈ $0.01 USDC) · L2 not_checkedWhose side: not sorted (held)Stage: inconclusive | |||||
| 09-01 12:072026-09-01 12:07 UTC | settled (amount + payee) | 200 | 0x6dcd8cd9…122c | Base | 1057 ms |
| 10000 units (≈ $0.01 USDC) · L2 matchWhose side: no failure (delivered)Stage: delivered | |||||
| 08-25 12:532026-08-25 12:53 UTC | settled (amount + payee) | 200 | 0x28b8280c…9bea | Base | 1077 ms |
| 10000 units (≈ $0.01 USDC) · L2 matchWhose side: no failure (delivered)Stage: delivered | |||||
Embed this record
Run this endpoint? Show the settle-through record vet402 measured — the badge reads 5/5 settled · 3 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.
[](https://vet402.com/observatory/e/f688748b-5277-42b8-8492-e05cb7516c29)4.Catalog listing events
| Detected on | Event | Before | After |
|---|---|---|---|
| 2026-08-23 | relisted | {"status":"delisted"} | {"status":"active"} |
| 2026-08-18 | delisted | {"status":"active"} | {"status":"delisted"} |
unverified is not a failure; a fail is published only after two consecutive failing probes. Definitions: methodology.
5.Dispute this record
A dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.
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. A dispute filed on the record form puts an active listing on a priority list. L0 runs probe that list before their ordinary queue, one run at a time. A listing whose URL has an unfilled path parameter is not put on that list. One run measures up to 50 priority listings, at most 5 from one site. Published fails whose catalog declaration changed, or that rest on probes recorded under earlier rules, take places first, and disputes fill the places left. A listing probed in the past 60 minutes waits for a later run. A dispute that no run reaches within 7 days leaves the list. The scheduled L0 run is at 10:30 UTC, and an L0 run at another time can measure the listing first. The record stays on this page. When a run measures the listing, the new probe is added to its history. Send the dispute to support@vet402.com. Published corrections are listed at /corrections. Operators who control the receiving address can also sign a dispute via POST /api/v1/observatory/disputes (API reference). That route runs one fresh L0 check under the normal publication gate. A later purchase comes from the regular schedule.