v2026-04-08

UCP Demo Server

A reference implementation of the Universal Commerce Protocol. All endpoints are live — test your UCP client against the reference flower shop.

View on GitHub

Try the AI Shopping Agent

Open the chat widget in the bottom-right to browse products, add to cart, and complete a purchase — every UCP API call is visible as a tool invocation.

“What flowers do you have?” “I'd like 3 white orchids” “Ship to Portland, OR 97201” “Complete my order”

Catalog

Loading catalog...

Quick Start

1
Discover capabilities

Fetch the merchant profile to see supported services and payment handlers.

curl {{BASE}}/.well-known/ucp
2
Search the catalog

Use the catalog search endpoint to discover products.

curl -X POST {{BASE}}/catalog/search \
  -H "Content-Type: application/json" \
  -H 'UCP-Agent: profile="https://agent.example/profile"' \
  -H "request-signature: test" \
  -H "request-id: <unique-id>" \
  -d '{"query": "roses", "pagination": {"limit": 5}}'
3
Create a checkout

Go straight to checkout with line items. Choose a fulfillment method:

3a
Create a cart

Add items to a lightweight cart for exploration.

3b
Convert cart to checkout

Pass cart_id to create a checkout from the cart.

curl -X POST {{BASE}}/checkout-sessions \
  -H "Content-Type: application/json" \
  -H 'UCP-Agent: profile="https://agent.example/profile"' \
  -H "request-signature: test" \
  -H "idempotency-key: <unique-key>" \
  -H "request-id: <unique-id>" \
  -d '{"cart_id": "<cart-id>"}'
4
Apply a discount

Update the checkout with a discount code:

Endpoints

MethodPathDescription
GET/.well-known/ucpDiscovery profile
Catalog
POST/catalog/searchSearch products
POST/catalog/lookupBatch lookup by IDs
POST/catalog/productGet product detail
Cart
POST/cartsCreate cart
GET/carts/{id}Get cart
PUT/carts/{id}Update cart
POST/carts/{id}/cancelCancel cart
Checkout
POST/checkout-sessionsCreate checkout
GET/checkout-sessions/{id}Get checkout
PUT/checkout-sessions/{id}Update checkout
POST/checkout-sessions/{id}/completeComplete checkout
POST/checkout-sessions/{id}/cancelCancel checkout
Orders
GET/orders/{id}Get order
PUT/orders/{id}Update order

Required Headers

HeaderValueRequired
UCP-Agentprofile="https://agent.example/profile"All requests
Signaturesig=:test: (bypasses validation)All requests
Request-IdAny unique stringAll requests
Idempotency-KeyAny unique stringPOST / PUT (checkout, cart)

Links