Skip to content
Guides

UCP search catalog

POST/ucp/catalog/search

UCP search catalog. A successful request returns HTTP 200 with the documented response body.

Authorization

AuthorizationBearer <token>

OAuth2 access token issued by Ecomiq Auth.

In: header

Header Parameters

Authorization*string

OAuth 2.0 bearer token.

x-Store-Domain*string

Store slug or configured domain that selects the UCP store context.

Length1 <= length <= 253
UCP-Agent*string

Agent profile binding in the form profile="https://agent.example/.well-known/ucp".

Length1 <= length
Idempotency-Key?string

Optional idempotency key for retry-safe UCP requests.

Length1 <= length <= 300

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/ucp/catalog/search" \  -H "Authorization: Bearer <token>" \  -H "x-Store-Domain: my-store" \  -H "UCP-Agent: profile="https://agent.example/.well-known/ucp"" \  -H "Idempotency-Key: checkout-2026-0001" \  -H "Content-Type: application/json" \  -d '{    "query": "polo de algodón",    "context": {      "currency": "PEN",      "address_country": "PE",      "language": "es"    },    "pagination": {      "limit": 10    }  }'
{  "ucp": {    "version": "example",    "status": "example",    "capabilities": {      "key": [        {          "version": "example"        }      ]    },    "payment_handlers": {      "key": [        {          "id": "7204558912004325301",          "version": "example",          "spec": "example",          "schema": "example",          "available_instruments": [            {              "type": "example",              "constraints": {}            }          ],          "config": {}        }      ]    }  },  "products": [    {      "id": "7204558912004325301",      "title": "Example title",      "description": {        "plain": "example",        "html": "example",        "markdown": "example"      },      "price_range": {        "min": {          "amount": 1,          "currency": "PEN"        },        "max": {          "amount": 1,          "currency": "PEN"        }      },      "handle": "example",      "url": "https://example.com/resource",      "categories": [        {          "value": "example",          "taxonomy": "example"        }      ],      "list_price_range": {        "min": {          "amount": 1,          "currency": "PEN"        },        "max": {          "amount": 1,          "currency": "PEN"        }      }    }  ],  "pagination": {    "has_next_page": false,    "cursor": "example",    "total_count": 1  },  "messages": [    {      "type": "example",      "content": "example",      "code": "example_code",      "path": "example",      "content_type": "example",      "severity": "example"    }  ]}