{"openapi":"3.1.0","info":{"title":"X402 Market","version":"1.0.0","description":"Agent-native commerce marketplace. Paid routes respond HTTP 402 with x402 payment requirements; pay and retry with the X-PAYMENT header. Send Idempotency-Key on all state-changing POSTs."},"servers":[{"url":"http://x402-market.com"}],"paths":{"/.well-known/agent.json":{"get":{"operationId":"getAgentManifest","summary":"Agent discovery manifest","responses":{"200":{"description":"Manifest","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Plain-text discovery map","responses":{"200":{"description":"text/plain map"}}}},"/api/v1/capabilities":{"get":{"operationId":"getCapabilities","summary":"Marketplace capabilities","responses":{"200":{"description":"Capabilities","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/categories":{"get":{"operationId":"getCategories","summary":"Active categories","responses":{"200":{"description":"Categories","content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}}}}}}}}}},"/api/v1/catalog/search":{"post":{"operationId":"searchCatalog","summary":"Search all listings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Listing"}}}}}}}}}},"/api/v1/tools/search":{"post":{"operationId":"searchTools","summary":"Search executable tools","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Results"}}}},"/api/v1/services/search":{"post":{"operationId":"searchServices","summary":"Search bookable services","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Results"}}}},"/api/v1/tools":{"get":{"operationId":"listTools","summary":"Compact tool discovery list","responses":{"200":{"description":"Tools"}}}},"/api/v1/listings/{listing_id}":{"get":{"operationId":"getListing","summary":"Full listing detail","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Listing"}}}},"404":{"description":"Not found"}}}},"/api/v1/offers/compare":{"post":{"operationId":"compareOffers","summary":"Normalized offer comparison","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["listing_ids"],"properties":{"listing_ids":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Comparison"}}}},"/api/v1/sellers/search":{"get":{"operationId":"searchSellers","summary":"Find sellers by name/state/zip — returns contact info + all their listings","parameters":[{"name":"name","in":"query","schema":{"type":"string"}},{"name":"state","in":"query","schema":{"type":"string"}},{"name":"zip","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Sellers with contact + listings"}}}},"/api/v1/complaints":{"post":{"operationId":"fileComplaint","summary":"Report a problem with a seller/order to the marketplace admin (agents pass Agent-ID header)","responses":{"201":{"description":"Filed"}}}},"/api/v1/keywords":{"get":{"operationId":"listKeywords","summary":"Seller-supplied search terms live in the catalog","responses":{"200":{"description":"Keywords"}}}},"/api/v1/sessions":{"post":{"operationId":"openSession","summary":"Open a shopping session (multi-seller cart, single-transaction settlement)","description":"Shop across sellers, cart items (stock is HELD for you), then settle the whole cart with ONE payment — one blockchain write, one gas fee — into marketplace escrow, allocated per seller with each seller's own sales tax. 15-minute idle timeout, reset by every session call; reconnect within 15 minutes to resume, otherwise the session closes and held inventory returns to stock. Send your Agent-ID header.","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"destination":{"type":"object"}}}}}},"responses":{"201":{"description":"Session opened"}}}},"/api/v1/sessions/{session_id}":{"get":{"operationId":"resumeSession","summary":"Resume/inspect a session (resets the 15-min clock)","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Session + cart summary"},"410":{"description":"Expired or closed — inventory returned to stock"}}},"delete":{"operationId":"cancelSession","summary":"Cancel; all cart holds return to stock","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Closed"}}}},"/api/v1/sessions/{session_id}/heartbeat":{"post":{"operationId":"sessionHeartbeat","summary":"Keep-alive (resets the 15-min clock)","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Extended"}}}},"/api/v1/sessions/{session_id}/cart":{"post":{"operationId":"cartAdd","summary":"Add an item from ANY seller (inventory held for the session)","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["listing_id"],"properties":{"listing_id":{"type":"string"},"variant_id":{"type":"string"},"quantity":{"type":"integer","minimum":1}}}}}},"responses":{"201":{"description":"Added + held"},"409":{"description":"Insufficient available inventory (net of holds)"}}},"get":{"operationId":"cartView","summary":"Multi-seller receipt: per-seller items, shipping, each seller's own tax, marketplace fee, grand total","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cart receipt"}}}},"/api/v1/sessions/{session_id}/cart/{cart_item_id}":{"delete":{"operationId":"cartRemove","summary":"Remove an item; its hold returns to stock","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cart_item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Removed"}}}},"/api/v1/sessions/{session_id}/checkout":{"post":{"operationId":"cartCheckout","summary":"One payable checkout for the whole cart","description":"Physical items require a complete destination. May require a KYC-verified agent (403 KYC_REQUIRED returns a kyc_link for your owner — KYC is done via Plaid at agent-x402.services).","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"destination":{"type":"object"}}}}}},"responses":{"201":{"description":"Multi-seller receipt"},"400":{"description":"Destination required"},"403":{"description":"KYC required"}}}},"/api/v1/cart-checkout/{checkout_id}":{"get":{"operationId":"getCartCheckout","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Receipt"}}}},"/api/v1/cart-checkout/{checkout_id}/confirm":{"post":{"operationId":"confirmCartCheckout","summary":"Pay the WHOLE cart in ONE transaction","description":"Without X-PAYMENT: 402 with ONE payment leg — grand total to the marketplace ESCROW wallet; extra.escrow discloses every seller's allocation (items + shipping + that seller's own sales tax). Pay once (one blockchain write, one gas fee), retry with X-PAYMENT. Creates one order per item, closes the session, decrements inventory.","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 payment payload (base64 JSON). Omit to receive a 402 challenge."}],"responses":{"201":{"description":"Confirmed — one payment_id, order_ids[], escrow allocations"},"402":{"description":"Payment requirements (single escrow leg)"},"403":{"description":"KYC required"},"410":{"description":"Session/checkout expired — holds released"}}}},"/api/v1/reservations":{"post":{"operationId":"reserveInventory","summary":"Hold scarce physical inventory (15 min TTL)","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["listing_id"],"properties":{"listing_id":{"type":"string"},"quantity":{"type":"integer","minimum":1}}}}}},"responses":{"201":{"description":"Reservation held"},"409":{"description":"Insufficient inventory"}}}},"/api/v1/reservations/{reservation_id}":{"get":{"operationId":"getReservation","parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Reservation"}}},"delete":{"operationId":"releaseReservation","parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Released"}}}},"/api/v1/orders":{"post":{"operationId":"createOrder","summary":"Purchase a listing","description":"x402 listings: an unpaid request returns 402 with payment requirements — pay and retry with X-PAYMENT. Physical products require a valid reservation_id and shipping_address.","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 payment payload (base64 JSON). Omit to receive a 402 challenge."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["listing_id"],"properties":{"listing_id":{"type":"string"},"quantity":{"type":"integer"},"reservation_id":{"type":"string"},"shipping_address":{"type":"object"},"buyer_reference":{"type":"string"},"payment_method":{"type":"string","enum":["x402","conventional"]}}}}}},"responses":{"201":{"description":"Order created"},"402":{"description":"Payment required — body contains x402 payment requirements","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequirements"}}}},"409":{"description":"Reservation required or invalid"}}}},"/api/v1/orders/{order_id}":{"get":{"operationId":"getOrder","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Order"}}}},"/api/v1/orders/{order_id}/tracking":{"get":{"operationId":"getTracking","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Tracking"}}}},"/api/v1/orders/{order_id}/cancel":{"post":{"operationId":"cancelOrder","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"responses":{"200":{"description":"Cancelled"},"409":{"description":"Cannot cancel"}}}},"/api/v1/tools/{tool_id}/quote":{"post":{"operationId":"quoteTool","parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Price per execution"}}}},"/api/v1/tools/{tool_id}/execute":{"post":{"operationId":"executeTool","summary":"Invoke a paid tool (x402)","description":"Unpaid request → 402 with payment requirements. Pay and retry with X-PAYMENT. Payment is bound to this exact route.","parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 payment payload (base64 JSON). Omit to receive a 402 challenge."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Tool input per /skills/{id}/input.schema.json"}}}},"responses":{"200":{"description":"Execution result"},"402":{"description":"Payment required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequirements"}}}}}}},"/api/v1/executions/{execution_id}":{"get":{"operationId":"getExecution","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Execution"}}}},"/api/v1/services/{service_id}/book":{"post":{"operationId":"bookService","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"requested_window":{"type":"string"},"location":{"type":"object"},"details":{"type":"string"}}}}}},"responses":{"201":{"description":"Booking created; quote follows"}}}},"/skills/{skill_id}/manifest.json":{"get":{"operationId":"getSkillManifest","parameters":[{"name":"skill_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill manifest"}}}},"/skills/{skill_id}/skill.md":{"get":{"operationId":"getSkillInstructions","parameters":[{"name":"skill_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill instructions (markdown)"}}}},"/api/v1/checkout":{"post":{"operationId":"createCheckout","summary":"Create a checkout session with a full receipt","description":"Returns line items with shipping and both taxes priced as separate lines, seller contact info, SKU, variant, specs, image URLs, totals, and a human-viewable tile URL for owner authorization. Physical inventory is auto-held 15 minutes. Listings with variants require variant_id. PHYSICAL PRODUCTS are refused (400 SHIPPING_DETAILS_REQUIRED with missing_fields + example) unless destination includes name, line1, city, state, postal_code, and email or phone; pickup-supporting listings accept fulfillment:'pickup' with name + contact only.","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["listing_id"],"properties":{"listing_id":{"type":"string"},"variant_id":{"type":"string"},"quantity":{"type":"integer"},"fulfillment":{"type":"string","enum":["shipping","pickup"]},"destination":{"type":"object","properties":{"name":{"type":"string"},"company":{"type":"string"},"line1":{"type":"string"},"line2":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postal_code":{"type":"string"},"country":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"delivery_notes":{"type":"string"}}}}}}}},"responses":{"201":{"description":"Receipt"},"400":{"description":"variant_id required (options listed)"},"409":{"description":"Insufficient inventory"},"502":{"description":"Seller shipping system unreachable"}}}},"/api/v1/checkout/{checkout_id}":{"get":{"operationId":"getCheckout","summary":"Machine-readable receipt","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Receipt"}}}},"/api/v1/checkout/{checkout_id}/confirm":{"post":{"operationId":"confirmCheckout","summary":"Confirm after owner authorization (x402)","description":"Unpaid → 402 with payment requirements for the FULL total (items + shipping). Pay and retry with X-PAYMENT; the order is created and inventory decremented (variant-aware).","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 payment payload (base64 JSON). Omit to receive a 402 challenge."}],"responses":{"201":{"description":"Order created"},"402":{"description":"Payment required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequirements"}}}},"410":{"description":"Checkout expired"}}}},"/checkout/{checkout_id}":{"get":{"operationId":"getCheckoutTile","summary":"Human-viewable receipt tile (HTML, OpenGraph-tagged)","parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"HTML tile"}}}},"/api/v1/supplier/profile":{"put":{"operationId":"updateSupplierProfile","summary":"Update contact info and shipping settings","description":"shipping.mode: free | flat_per_item (flat_amount) | by_weight (base_amount + per_lb_rate) | dynamic (quote_url on your system returns {amount,currency})","responses":{"200":{"description":"Profile"}}}},"/api/v1/admin/taxes":{"get":{"operationId":"adminTaxReport","summary":"Marketplace fee-tax report: itemized + grand total for a date range (admin login required)","responses":{"200":{"description":"Report"}}}},"/api/v1/supplier/transactions":{"get":{"operationId":"searchTransactions","summary":"Seller sales search: ?from&to&min_amount&max_amount&sku — itemized + grand totals","responses":{"200":{"description":"Transactions"}}}},"/api/v1/supplier/taxes":{"get":{"operationId":"taxReport","summary":"Itemized taxes collected for a date range + grand total (tax filing view)","responses":{"200":{"description":"Tax report"}}}},"/api/v1/supplier/products":{"post":{"operationId":"pushProducts","summary":"Direct push: bulk upsert canonical products (variants + image URLs)","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Repeat-safe key; repeated keys replay the original response."}],"responses":{"200":{"description":"Summary"}}}},"/api/v1/supplier/inventory":{"post":{"operationId":"pushInventory","summary":"Inventory updates [{sku, quantity, variant_id?}]","responses":{"200":{"description":"Applied"}}}},"/api/v1/supplier/prices":{"post":{"operationId":"pushPrices","summary":"Price updates [{sku, price, variant_id?}]","responses":{"200":{"description":"Applied"}}}},"/api/v1/supplier/listings/{listing_id}/images":{"post":{"operationId":"uploadImage","summary":"Upload a listing image (raw image/* body or JSON {data: base64}); stored on CDN, exposed as a URL","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"URL added to listing.images"}}}},"/api/v1/supplier/notifications":{"get":{"operationId":"getNotifications","summary":"Notification channels + setup instructions","responses":{"200":{"description":"Config"}}},"put":{"operationId":"setNotifications","summary":"Configure free sale alerts: webhook {url,secret?}, ntfy {topic}, print {enabled} — Gmail via /supplier/gmail/connect","responses":{"200":{"description":"Saved; includes setup details"}}}},"/api/v1/supplier/notifications/test":{"post":{"operationId":"testNotifications","summary":"Send a test receipt to every configured channel","responses":{"200":{"description":"Sent"}}}},"/api/v1/supplier/print-queue":{"get":{"operationId":"printQueue","summary":"Pending receipt print jobs (poll from any shop computer)","responses":{"200":{"description":"Jobs"}}}},"/api/v1/suppliers/register":{"post":{"operationId":"registerSupplier","summary":"Register a supplier; returns seller_id and api_key (shown once)","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"contact_email":{"type":"string"},"contact_phone":{"type":"string"},"website":{"type":"string"},"payout_address":{"type":"string"},"shipping":{"type":"object","description":"mode: free | flat_per_item | by_weight | dynamic"}}}}}},"responses":{"201":{"description":"Registered"}}}},"/api/v1/integrations":{"post":{"operationId":"createIntegration","summary":"Create an auto-configured ingestion connector","description":"connector_type presets ship with default endpoints and field mappings: shopify (config.shop_domain + credentials.access_token), woocommerce (config.site_url + consumer key/secret), rest (config.url for any custom ERP; optional config.items_path and config.mapping overrides), csv (push via /csv), webhook (push via /webhooks/{provider}/{id}). Auth: Bearer supplier api_key.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["connector_type"],"properties":{"connector_type":{"type":"string","enum":["shopify","woocommerce","rest","csv","webhook"]},"name":{"type":"string"},"schedule":{"type":"string","enum":["manual","poll"]},"config":{"type":"object"},"credentials":{"type":"object"}}}}}},"responses":{"201":{"description":"Integration created; response includes next-step instructions"}}},"get":{"operationId":"listIntegrations","summary":"List this supplier's integrations","responses":{"200":{"description":"Integrations"}}}},"/api/v1/integrations/{integration_id}/test":{"post":{"operationId":"testIntegration","summary":"Fetch up to 3 source records and preview the canonical mapping (no writes)","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preview"},"502":{"description":"Source unreachable"}}}},"/api/v1/integrations/{integration_id}/sync":{"post":{"operationId":"syncIntegration","summary":"Pull and upsert the catalog now","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sync summary"}}}},"/api/v1/integrations/{integration_id}/csv":{"post":{"operationId":"importCsv","summary":"Upload a CSV body; columns auto-detected (sku, title, price, quantity, ...)","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Import summary"}}}},"/api/v1/integrations/{integration_id}/pause":{"post":{"operationId":"pauseIntegration","summary":"Toggle paused/active","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"New status"}}}},"/webhooks/{provider}/{integration_id}":{"post":{"operationId":"ingestWebhook","summary":"Receive product create/update events (provider: shopify | generic)","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ingest summary"}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP JSON-RPC endpoint (initialize, tools/list, tools/call)","responses":{"200":{"description":"JSON-RPC response"}}}}},"components":{"schemas":{"SearchRequest":{"type":"object","properties":{"query":{"type":"string","description":"free text; also matches seller-supplied search keywords and dynamic product attributes; product-name matches rank highest"},"state":{"type":"string","description":"filter to sellers in this state"},"zip":{"type":"string","description":"filter by seller ZIP (prefix)"},"seller_name":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"},"description":"seller-supplied search terms (see GET /api/v1/keywords)"},"listing_types":{"type":"array","items":{"type":"string","enum":["physical_product","digital_product","tool","professional_service","local_service"]}},"categories":{"type":"array","items":{"type":"string"}},"filters":{"type":"object","properties":{"maximum_price":{"type":"number"},"currency":{"type":"string"},"minimum_quantity":{"type":"integer"},"seller_verified_only":{"type":"boolean"}}},"limit":{"type":"integer"},"offset":{"type":"integer"}}},"Listing":{"type":"object","properties":{"listing_id":{"type":"string"},"seller_id":{"type":"string"},"listing_type":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"identifiers":{"type":"object"},"price":{"type":"object","properties":{"amount":{"type":"string"},"currency":{"type":"string"},"pricing_type":{"type":"string"}}},"payment":{"type":"object"},"availability":{"type":"object","properties":{"status":{"type":"string"},"quantity":{"type":["integer","null"]}}},"seller":{"type":"object"},"attributes":{"type":"object","additionalProperties":true,"description":"dynamic seller-defined fields — every product carries whatever fields the seller's system tracks; matched by free-text query"}}},"PaymentRequirements":{"type":"object","properties":{"x402Version":{"type":"integer"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"network":{"type":"string"},"maxAmountRequired":{"type":"string"},"resource":{"type":"string"},"description":{"type":"string"},"payTo":{"type":"string"},"asset":{"type":"string"},"maxTimeoutSeconds":{"type":"integer"}}}},"error":{"type":"string"}}}}}}