api.munition.io/v1/serper/search
1.Catalog declaration
| Resource URL | https://api.munition.io/v1/serper/search |
| Source | cdp_bazaar |
| Declared method | POST |
| Catalog network | eip155:8453 |
| Receiving address | 0x54d6c2c08e10f1a1d3da88df513bbe9bcf1a4afa |
| Declared price (base units) | 4000 |
| Catalog status | active |
| First seen / last seen | 2026-09-10 01:03 UTC / 2026-11-11 14:05 UTC |
| Catalog-reported calls / payers (30d) | 46 / 2 |
2.Probe history
| Probed at | Method | Verdict | HTTP | Latency | Reason |
|---|---|---|---|---|---|
| 2026-11-10 04:40 UTC | POST | pass | 402 | 284 ms | — |
| 2026-11-07 22:40 UTC | POST | pass | 402 | 205 ms | — |
| 2026-11-05 16:40 UTC | POST | pass | 402 | 182 ms | — |
| 2026-11-02 16:40 UTC | POST | unverified | 400 | 140 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-31 16:40 UTC | POST | unverified | 400 | 157 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-29 16:40 UTC | POST | unverified | 400 | 72 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-27 16:40 UTC | POST | unverified | 400 | 233 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-26 00:40 UTC | POST | unverified | 400 | 88 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-23 22:40 UTC | POST | unverified | 400 | 242 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-22 13:40 UTC | POST | unverified | 400 | 107 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-20 22:40 UTC | POST | unverified | 400 | 2079 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-19 13:40 UTC | POST | unverified | 400 | 201 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-17 22:40 UTC | POST | unverified | 400 | 666 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-16 15:40 UTC | POST | unverified | 400 | 629 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-15 03:40 UTC | POST | unverified | 400 | 414 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-13 21:40 UTC | POST | unverified | 400 | 117 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-12 15:40 UTC | POST | unverified | 400 | 109 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-11 15:40 UTC | POST | unverified | 400 | 341 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-10 12:40 UTC | POST | unverified | 400 | 108 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-09 12:40 UTC | POST | unverified | 400 | 318 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-08 04:40 UTC | POST | unverified | 400 | 395 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-07 04:40 UTC | POST | unverified | 400 | 748 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-10-06 13:40 UTC | POST | unverified | 400 | 556 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-09-29 07:38 UTC | POST | unverified | 400 | 854 ms | request_shapeUnpaid POST with an empty JSON body answered 400 before any payment challenge; not measured (vet402 does not guess the input). |
| 2026-09-25 10:30 UTC | POST | fail | 400 | 130 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
| 2026-09-21 11:24 UTC | POST | fail | 400 | 332 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
| 2026-09-17 12:35 UTC | POST | fail | 400 | 78 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
| 2026-09-14 11:24 UTC | POST | fail | 400 | 305 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
| 2026-09-11 11:24 UTC | POST | fail | 400 | 248 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
| 2026-09-10 11:24 UTC | POST | fail | 400 | 44 ms | no_402HTTP 400 instead of 402 to an unpaid POST. Recorded before the 2026-09-29 change; the POST carried an empty JSON body, and since that change this answer is recorded as request_shape (unverified), not as a fail. |
3.L1 — real purchases
1 of 1 paid attempts settled on-chain, and 1 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.
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.
L2 match- the response parsed as JSON and had the keys the listing marks as required. With an example that marks no key as required, a JSON object or array is enough.
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 |
|---|---|---|---|---|---|
| 11-06 03:302026-11-06 03:30 UTC | settled (nonce-bound) | 200 | 0xfa729cf6…39ad | Arbitrum One | 2438 ms |
| 4000 units (≈ $0.004 USDC) · L2 matchWhose side: no failure (delivered) | |||||
Embed this record
Run this endpoint? Show the settle-through record vet402 measured — the badge reads 1/1 settled · 1 delivered 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/4630238c-22c5-4bbb-9b67-c982ef014a6b)4.Catalog listing events
| Detected on | Event | Before | After |
|---|---|---|---|
| 2026-10-06 | relisted | {"status":"delisted"} | {"status":"active"} |
| 2026-10-03 | 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.