Agent to agent commerce

Let any AI agent shop through Ottr.

Ottr is a purchasing platform first. Our own assistant is one client; your agent can be another. It finds and prepares the purchase, your customer approves it, and Ottr pays and checks out. Over REST, MCP or A2A.

REST API

/v1/agent

Search, prepare purchases, request approval, complete and track orders. Plain HTTPS and JSON.

OpenAPI spec

MCP server

/api/mcp

Connect Claude or any MCP client. Streamable HTTP, stateless, with the same permissions as the API.

Six tools

A2A

/.well-known/agent-card.json

Agent2Agent JSON-RPC, versions 1.0 and 0.3. A purchase is a task that waits for the customer, then completes with the order.

Agent card

Agents prepare. Customers approve. Ottr pays.

Delegating shopping to an AI only works if the customer stays in control of the money. So the permission model is built into the platform, not left to each agent.

  1. 1

    The customer authorises your agent

    From their OTTR Security page, the customer issues your agent a customer reference: scoped, expiring, and revocable at any time.

  2. 2

    Your agent prepares the purchase

    It searches, compares and prepares an exact purchase. Nothing is charged, and your agent cannot approve it.

  3. 3

    The customer approves on OTTR

    OTTR sends the customer a secure, single-use link bound to the exact item, total and retailer. Signed-in, with a passkey when the risk calls for it.

  4. 4

    OTTR pays and checks out

    OTTR funds the purchase from the customer's card and pays the retailer with a single-use virtual card locked to that amount. Your agent gets the order reference.

  • Agents never see a card number, a CVC or a customer's payment details.
  • No API call, MCP tool or A2A skill can approve a purchase. Only the customer can.
  • An approval is void if the price, retailer, card or address changes.
  • Each purchase gets its own virtual card. It cannot be used for anything else.
  • Every agent call is audited, and customers can revoke an agent instantly.

Live playground

Watch an agent buy something. You approve it.

This runs against OTTR's real API in sandbox. A demo agent makes every call you see; you play the customer. Nothing real is bought or charged.

  1. 1Search
  2. 2Prepare
  3. 3Request approval
  4. 4Customer approves
  5. 5Check out
  6. 6Track order

You are the customer's AI agent. What should it look for?

£

Every step on the right is a real call to OTTR's Agent Commerce API, made just now by a demo agent with its own short-lived key. The customer is a throwaway sandbox shopper. Keys are partly hidden.

agent ⇄ api.ottr.si

Run the agent to see its calls here.

Connect in minutes.

The same four moves on every protocol: search, prepare, ask the customer, complete. Pick whichever your agent already speaks.

# 1. Search (no customer needed)
curl https://ottr.si/v1/agent/search \
  -H "Authorization: Bearer $OTTR_AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "wireless noise cancelling headphones", "max_price": 250}'

# 2. Prepare a purchase for your customer (charges nothing)
curl https://ottr.si/v1/agent/purchase-intents \
  -H "Authorization: Bearer $OTTR_AGENT_KEY" \
  -H "OTTR-Customer-Ref: $CUSTOMER_REF" \
  -H "Content-Type: application/json" \
  -d '{"offer_id": "<offer_id from search>"}'

# 3. Ask the customer to approve; OTTR messages them a secure link
curl -X POST https://ottr.si/v1/agent/purchase-intents/<id>/approval-requests \
  -H "Authorization: Bearer $OTTR_AGENT_KEY" \
  -H "OTTR-Customer-Ref: $CUSTOMER_REF"

# 4. Once approved, complete it and get the order reference
curl https://ottr.si/v1/agent/purchases \
  -H "Authorization: Bearer $OTTR_AGENT_KEY" \
  -H "OTTR-Customer-Ref: $CUSTOMER_REF" \
  -H "Content-Type: application/json" \
  -d '{"intent_id": "<id>"}'

Building an agent that buys things?

Agent keys are issued by the OTTR team while the platform is in sandbox. Read the docs, try the playground, and tell us what you are building.