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

api.exa.ai/search

1.Catalog declaration

Catalog declaration for this endpoint
Resource URLhttps://api.exa.ai/search
Sourcecdp_bazaar
Declared methodPOST
Catalog networkeip155:8453
Receiving address0x6d6e695b09861467c7d462f5aaf31cf3540b9192
Declared price (base units)7000
Catalog statusactive
First seen / last seen2026-08-14 08:39 UTC / 2026-11-14 06:05 UTC
Catalog-reported calls / payers (30d)12,884 / 139

2.Probe history

2026-10-012026-11-13
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-11-13 16:40 UTCPOSTpass402573 ms—
2026-11-11 04:40 UTCPOSTpass4022000 ms—
2026-11-09 04:40 UTCPOSTpass402132 ms—
2026-11-06 22:40 UTCPOSTpass402220 ms—
2026-11-04 16:40 UTCPOSTpass402168 ms—
2026-11-01 16:40 UTCPOSTpass402153 ms—
2026-10-30 16:40 UTCPOSTpass402185 ms—
2026-10-28 16:40 UTCPOSTpass402182 ms—
2026-10-27 00:40 UTCPOSTpass402275 ms—
2026-10-25 06:40 UTCPOSTpass402248 ms—
2026-10-23 04:40 UTCPOSTpass402147 ms—
2026-10-21 16:40 UTCPOSTpass402342 ms—
2026-10-20 04:40 UTCPOSTpass402220 ms—
2026-10-18 16:40 UTCPOSTpass402233 ms—
2026-10-17 13:40 UTCPOSTpass402337 ms—
2026-10-15 21:40 UTCPOSTpass402320 ms—
2026-10-14 15:40 UTCPOSTpass402277 ms—
2026-10-13 03:40 UTCPOSTpass402101 ms—
2026-10-12 03:40 UTCPOSTpass402512 ms—
2026-10-11 03:40 UTCPOSTpass402319 ms—
2026-10-10 03:40 UTCPOSTpass402484 ms—
2026-10-08 16:40 UTCPOSTpass402120 ms—
2026-10-07 16:40 UTCPOSTpass402361 ms—
2026-10-06 16:40 UTCPOSTpass402352 ms—
2026-10-05 22:40 UTCPOSTpass402372 ms—
2026-10-04 16:40 UTCPOSTpass402217 ms—
2026-10-03 16:40 UTCPOSTpass402316 ms—
2026-10-02 22:40 UTCPOSTpass402143 ms—
2026-10-02 04:40 UTCPOSTpass402521 ms—
2026-10-01 04:40 UTCPOSTpass402850 ms—

3.L1 — real purchases

49 of 51 paid attempts settled on-chain, and 34 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.

17 of those paid attempts are held as inconclusive rather than counted against this seller (15 settled and answered 4xx, 0 answered 4xx with no settlement receipt, 2 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).

2 of the paid attempts failed on vet402's side (for example our wallet was out of USDC, or we did not send the input the listing declares). The rows stay in the table; the embeddable badge below leaves them out of its count and names them as “vet402 side”.

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 (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 no_declaration
the listing's output schema gave vet402 nothing to check this response against (no schema, a schema with no required keys and no example properties, or example properties with a content type that is not JSON). An output example in the 402 (extensions.bazaar.info.output.example) counts as a declaration. When the catalog also declares an output, the example's top-level keys are required. When it does not, vet402 checks that the response is a JSON object or array, and the record page reads match (no required keys).
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.
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).
49/51(20 cells, proportional)
Figure 2. Settle-through: one cell per paid attempt. Filled = settled on-chain, crossed = signed, and not settled on-chain.
L1 purchase history, newest first
Attempted atResultHTTPOn-chain txPayment chainLatency
11-12 15:32settled (nonce-bound)2000x2d56264d…05f7Base2696 ms
7000 units (≈ $0.007 USDC) · L2 match (no required keys)Whose side: no failure (delivered)Stage: delivered
11-07 18:01settled (nonce-bound)2000x26f8e246…2a23Base2255 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
11-06 15:31settled (nonce-bound)2000x81396f1e…b1d4Base2150 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
11-04 21:31settled (nonce-bound)2000x2fba17d2…75daBase1414 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
11-01 18:01settled (nonce-bound)2000x62225637…d983Base2622 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-31 12:02settled (nonce-bound)2000x43225c26…8f5fBase1251 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-29 21:32settled (nonce-bound)2000x4bda26a5…bf8aBase2859 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-28 18:01settled (nonce-bound)2000xa73ad3f7…db7eBase1511 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-26 23:31settled (nonce-bound)2000x372b0d71…e8fcBase1760 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-25 17:31settled (nonce-bound)2000xf815afbc…68e9Base1980 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-24 15:31settled (nonce-bound)2000xb1e49eb2…fde3Base3932 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-23 12:02settled (nonce-bound)2000x3c79a707…5d2aBase2017 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-22 09:31settled (nonce-bound)2000xe1e5914a…25c9Base2393 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-20 21:31settled (nonce-bound)2000x9182911c…764fBase1877 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-19 18:01settled (nonce-bound)2000xb84a62fc…f2c7Base2843 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-18 15:30settled (nonce-bound)2000x65ca4527…1e73Base1641 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-11 23:00settled (nonce-bound)2000x89ae2d90…216dBase2604 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-10 20:30settled (nonce-bound)2000x4e8782c9…af8aBase1904 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-09 17:00settled (nonce-bound)2000xc329c4fa…057cBase1735 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered
10-08 12:01settled (nonce-bound)2000x8a93b84a…2d1aBase1732 ms
7000 units (≈ $0.007 USDC) · L2 no_declarationWhose side: no failure (delivered)Stage: delivered

Embed this record

Run this endpoint? Show the settle-through record vet402 measured — the badge reads 49/49 settled · 34 delivered · 15 inconclusive · vet402 side 2 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: 49 of 49 paid attempts settled with an on-chain receipt, and 34 of those also returned a deliverable HTTP 2xx response. settled is the confirmed transfer; delivered is a 2xx other than 202 with a non-empty body. 15 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. 2 further paid attempts failed on vet402's side (for example its wallet was out of USDC, or it did not send the input the listing declares) and are left out of these counts. A measurement of what happened when vet402 paid this endpoint, not a recommendation. (api.exa.ai · measured 2026-11-12)

[![vet402 receipt](https://vet402.com/api/badge/endpoint/521e929e-5f89-4603-a964-d1812caf118f.svg)](https://vet402.com/observatory/e/521e929e-5f89-4603-a964-d1812caf118f)

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

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.

20–2,000 characters · 0 so far