Use when an agent already knows several products/categories a buyer needs and wants one re
Use when an agent already knows several products/categories a buyer needs and wants one real Shopify product for each need while staying within one overall item-price budget. Each need.query must already carry the important compatibility and preference details; this service does not reinterpret intent. Returns a cross-merchant basket plan with per-item checkout URLs. It is not a generic product search and does not create carts or checkouts.
30000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-30
updated
Provider
agent-api-production.tim1712.workers.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x5229384BD502D85aa7EcA0A31B515E5E48d3910F",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "30000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"budgetMinor": 60000,
"country": "NL",
"currency": "EUR",
"needs": [
{
"id": "microphone",
"maxPriceMinor": 20000,
"priority": 10,
"query": "wireless lavalier microphone for iPhone USB-C"
},
{
"id": "power-bank",
"maxPriceMinor": 15000,
"priority": 6,
"query": "65W USB-C power bank 20000mAh airline safe"
},
{
"id": "tripod",
"priority": 4,
"query": "compact travel tripod aluminium under 1.2kg"
}
]
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"budgetMinor": 60000,
"budgetScope": "items_only",
"checkedAt": "2026-08-30T10:00:02.000Z",
"complete": true,
"country": "NL",
"currency": "EUR",
"items": [
{
"checkoutUrl": "https://example-merch.example/cart/2222222222:1",
"currency": "EUR",
"needId": "microphone",
"priceMinor": 17999,
"priority": 10,
"productId": "gid://shopify/Product/1111111111",
"productTitle": "USB-C Wireless Lavalier Microphone",
"productUrl": "https://example-merch.example/products/usb-c-wireless-lavalier",
"query": "wireless lavalier microphone for iPhone USB-C",
"rating": {
"count": 214,
"value": 4.6
},
"searchRank": 0,
"seller": {
"domain": "example-merch.example",
"name": "Example Merch",
"url": "https://example-merch.example"
},
"variantId": "gid://shopify/ProductVariant/2222222222",
"variantTitle": "Single mic + USB-C receiver"
},
{
"checkoutUrl": "https://poweredup.example/cart/4444444444:1",
"currency": "EUR",
"needId": "power-bank",
"priceMinor": 13299,
"priority": 6,
"productId": "gid://shopify/Product/3333333333",
"productTitle": "20000mAh 65W USB-C Power Bank",
"productUrl": "https://poweredup.example/products/pb-20000-65w",
"query": "65W USB-C power bank 20000mAh airline safe",
"rating": {
"count": 88,
"value": 4.4
},
"searchRank": 1,
"seller": {
"domain": "poweredup.example",
"name": "PoweredUp",
"url": "https://poweredup.example"
},
"variantId": "gid://shopify/ProductVariant/4444444444",
"variantTitle": null
},
{
"checkoutUrl": "https://tripodworld.example/cart/6666666666:1",
"currency": "EUR",
"needId": "tripod",
"priceMinor": 9999,
"priority": 4,
"productId": "gid://shopify/Product/5555555555",
"productTitle": "Aluminium Travel Tripod 1.1kg",
"productUrl": "https://tripodworld.example/products/alu-travel-tripod",
"query": "compact travel tripod aluminium under 1.2kg",
"rating": null,
"searchRank": 0,
"seller": {
"domain": "tripodworld.example",
"name": "Tripod World",
"url": "https://tripodworld.example"
},
"variantId": "gid://shopify/ProductVariant/6666666666",
"variantTitle": "Black"
}
],
"remainingMinor": 18703,
"source": "shopify-global-catalog",
"totalMinor": 41297,
"unresolvedNeeds": [],
"warnings": [
"Shipping, taxes, duties and discounts are not included in the budget."
]
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"budgetMinor": {
"minimum": 0,
"type": "integer"
},
"country": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"currency": {
"pattern": "^[A-Z]{3}$",
"type": "string"
},
"needs": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"pattern": "^[A-Za-z0-9._-]{1,64}$",
"type": "string"
},
"maxPriceMinor": {
"minimum": 0,
"type": "integer"
},
"priority": {
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"query"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"country",
"currency",
"budgetMinor",
"needs"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"additionalProperties": false,
"properties": {
"budgetMinor": {
"minimum": 0,
"type": "integer"
},
"budgetScope": {
"const": "items_only",
"type": "string"
},
"checkedAt": {
"type": "string"
},
"complete": {
"type": "boolean"
},
"country": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"currency": {
"pattern": "^[A-Z]{3}$",
"type": "string"
},
"items": {
"items": {
"additionalProperties": false,
"properties": {
"checkoutUrl": {
"type": "string"
},
"currency": {
"pattern": "^[A-Z]{3}$",
"type": "string"
},
"needId": {
"type": "string"
},
"priceMinor": {
"minimum": 0,
"type": "integer"
},
"priority": {
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"productId": {
"type": "string"
},
"productTitle": {
"type": "string"
},
"productUrl": {
"type": "string"
},
"query": {
"type": "string"
},
"rating": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"count": {
"minimum": 0,
"type": "integer"
},
"value": {
"type": "number"
}
},
"required": [
"value",
"count"
],
"type": "object"
},
{
"type": "null"
}
]
},
"searchRank": {
"minimum": 0,
"type": "integer"
},
"seller": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"domain",
"url"
],
"type": "object"
},
{
"type": "null"
}
]
},
"variantId": {
"type": "string"
},
"variantTitle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"needId",
"query",
"priority",
"productId",
"variantId",
"productTitle",
"variantTitle",
"priceMinor",
"currency",
"productUrl",
"checkoutUrl",
"seller",
"rating",
"searchRank"
],
"type": "object"
},
"type": "array"
},
"remainingMinor": {
"minimum": 0,
"type": "integer"
},
"source": {
"const": "shopify-global-catalog",
"type": "string"
},
"totalMinor": {
"minimum": 0,
"type": "integer"
},
"unresolvedNeeds": {
"items": {
"additionalProperties": false,
"properties": {
"needId": {
"type": "string"
},
"reason": {
"enum": [
"no_matching_products",
"budget_exceeded"
],
"type": "string"
}
},
"required": [
"needId",
"reason"
],
"type": "object"
},
"type": "array"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"source",
"country",
"currency",
"budgetMinor",
"totalMinor",
"remainingMinor",
"complete",
"items",
"unresolvedNeeds",
"budgetScope",
"warnings",
"checkedAt"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://agent-api-production.tim1712.workers.dev/v1/shopping/budget-basket" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://agent-api-production.tim1712.workers.dev/v1/shopping/budget-basket");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://agent-api-production.tim1712.workers.dev/v1/shopping/budget-basket")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/8032.json, and this resource appears in /discovery/resources and /discovery/search.