Find products, and find out what a merchant already sells
Discover products
GET/v1/discover
Search products by intent, and get a review slate and ref link for each.
Query Parameters
intentRequired
string
Free text. Empty or absent is a 400.
Examplean RPC endpoint with low p95 latency
category
string
Exact match against the merchant-declared category.
price_ceiling
integer
USDC base units. A value that does not parse as an integer is IGNORED, not rejected.
price_sensitivity
number·min 0·max 1
How much price influences product ordering. 0, the default, ignores price; 1 strongly prefers cheaper among products that already match. Never excludes a product. Values outside 0 to 1 are clamped, and an unparseable value is treated as 0.
max_products
integer·default 5
Anything outside 1-20 silently becomes 5.
include_all
string
Only the exact string true enables it. Appends a block of overflow reviews. Debug output.
chain_id
integer
Absent, the server uses its first configured chain — Base Sepolia in the shipped default.
Example84532
Responses
productsRequired
object[]
Ordered best first. Empty rather than absent when nothing matches.
coverage
string
Only ever thin, and only when the claim holds. An absent coverage is not a claim that coverage is good.
Values
thin
checklists
object
Keyed by product category. Advice particular to that category.
core_checklist
unknown[]
Advice that applies to every product, sent once. Absent when no returned product can be reviewed.
errorRequired
string
errorRequired
string
errorRequired
string
Discover a merchant's endpoints
GET/v1/merchant/{id}/discovery
List a merchant's publicly discoverable x402 endpoints.
Path Parameters
idRequired
integer
The merchant id. Negative is a 400.
Example42
Query Parameters
pay_to
string
Repeatable. Extra payout addresses to search under. More than 10 is a 400. The merchant's own resolved wallet and owner are always searched regardless.
chain_id
integer
Absent, the server uses its first configured chain — Base Sepolia in the shipped default.
Example84532
Responses
merchant_idRequired
integer
chain_idRequired
integer
pay_tosRequired
string[]
Every address actually searched, in search order.
itemsRequired
object[]
Bazaar results first, then manifest results. A resource claimed by both appears once: the catalogue result wins.
errorRequired
string
errorRequired
string
errorRequired
string
errorRequired
string
Onboarding manifest (JSON)
GET/.well-known/opensouk
Get the onboarding manifest a tool-less agent needs, as JSON.
Responses
versionRequired
string
protocolRequired
string
A wire identifier, not the product name.
descriptionRequired
string
attestationPubKeyRequired
string
The Base chain's hex Ed25519 attribution-token signer — the default for verifying a decoded ref-link token.
attributionRequired
object
required, tokenVersion, and a howTo paragraph.
nativeIntegration
object
summary, an ordered recipe array, and a docs link.