Store listing
GET /api/v5/x402/store/{handle}. The public, free JSON catalogue of everything a swop.id sells to agents.
GET https://apps.apiswop.co/api/v5/x402/store/{handle}Returns up to 100 priced, non-archived products for a swop.id. No authentication, no payment. CORS is open, so a browser-based agent can call it too.
Request
| Parameter | In | Description |
|---|---|---|
handle | path | The seller's swop.id, for example travis.swop.id. Case-insensitive |
curl -s https://apps.apiswop.co/api/v5/x402/store/travis.swop.idResponse
{
"state": "success",
"data": {
"handle": "travis.swop.id",
"name": "Travis Herron",
"network": "base",
"currency": "USDC",
"products": [
{
"sku": "6a7f63002e22feb6ad48dd7c",
"name": "Cabal Card",
"description": "Access to the Cabal's group chat and post on my feed.",
"image": "https://res.cloudinary.com/…/dwm3kmxiot17hidzqdf7.png",
"priceUsd": 1,
"currency": "USDC",
"type": "collectible",
"shippingRequired": false,
"shippingCostUsd": 0,
"agentPayable": true,
"variants": [],
"requiredOrderFields": [],
"buyUrl": "https://apps.apiswop.co/api/v5/x402/store/travis.swop.id/buy/6a7f63002e22feb6ad48dd7c"
}
]
}
}Product fields
| Field | Type | Description |
|---|---|---|
sku | string | Product id. Also the last segment of buyUrl |
name, description | string | What the product is |
image | string or null | Primary image URL |
priceUsd | number | Item price in USD, paid in USDC |
currency | string | Always USDC |
type | string | Product type, for example collectible, phygital, membership |
shippingRequired | boolean | true for physical goods |
shippingCostUsd | number | Flat shipping, added to the price in the 402 |
agentPayable | boolean | false when the seller has no payout wallet for this product yet |
variants | array | Option groups the buyer must choose from, each { name, options[] } |
requiredOrderFields | string[] | Shipping fields to send in X-ORDER for physical goods |
buyUrl | string | The x402 endpoint. GET it to receive the 402 challenge |
The total an agent pays is priceUsd + shippingCostUsd. The 402 states it exactly in USDC base units.
Errors
| Status | Meaning |
|---|---|
404 | No swop.id with that handle |
429 | Rate limited. Back off and retry |
Getting it from an AI assistant
The Swop MCP exposes the same listing as swop_get_store, and swop_get_product_link returns the shareable link for one product.