Zolofy API

Build agentic commerce into any agent

UCP v2026-04-08 compliantView on GitHub

Quick Start

Two API calls to go from natural language to a price-locked mandate.

1 · Extract variables with Zolly
curl -X POST https://zolofy.co/api/zolly \
  -H 'Content-Type: application/json' \
  -d '{
    "messages": [{
      "role": "user",
      "content": "I need a Range Rover for 3 days with a driver"
    }],
    "catalog": "auto"
  }'
2 · Mint a mandate
curl -X POST https://zolofy.co/api/mandate \
  -H 'Content-Type: application/json' \
  -d '{
    "productId": "kg2abc123",
    "variables": {
      "rental_days": 3,
      "is_chauffered": 1
    }
  }'

Response Schemas

Zolly returns either a structured tool call or a plain text clarification. The mandate endpoint always returns a signed AP2 object.

POST /api/zollyTwo possible shapes

tool_call — variables extracted
{
  "type": "tool_call",
  "tool": "request_configuration",
  "input": {
    "productName": "Car Rental",
    "extracted_variables": {
      "rental_days": 3,
      "is_chauffered": 1
    }
  }
}
text — clarification needed
"I can help you find a Range Rover with a chauffeur.
Could you confirm the pickup location and dates?"

POST /api/mandateFull AP2 structure

mandate object
{
  "mandate_id": "mnd_01HXYZ9ABCDEF",
  "status": "active",
  "product": {
    "id": "kg2abc123",
    "name": "Range Rover — Chauffeur Package",
    "merchant": "Premier Auto Rentals"
  },
  "variables": {
    "rental_days": 3,
    "is_chauffered": 1
  },
  "total": 1350.00,
  "currency": "USD",
  "validity_window": {
    "created_at": "2026-04-25T10:00:00Z",
    "expires_at": "2026-04-25T10:15:00Z",
    "ttl_seconds": 900
  },
  "merchant_authorization": {
    "signed_at": "2026-04-25T10:00:00Z",
    "algorithm": "RS256",
    "signature": "eyJhbGciOiJSUzI1NiJ9..."
  }
}

UCP Profile

Agents discover capabilities via the standard /.well-known/ucp endpoint — no SDK required.

/.well-known/ucp
GET /.well-known/ucp

{
  "ucp_version": "2026-04-08",
  "profile": "dev.ucp",
  "capabilities": {
    "dev.ucp.shopping.checkout": {
      "version": "2026-04-08",
      "endpoints": {
        "zolly": "/api/zolly",
        "mandate": "/api/mandate"
      }
    }
  }
}

Capability discovery

Any UCP-aware agent can fetch this profile at runtime to discover which commerce operations are available, without prior configuration.

15-minute mandate TTL

Each mandate is merchant-signed and expires in 900 seconds, preventing stale price commitments in autonomous flows.

UCP specification

SDKs

Native client libraries are in development. Use the REST API directly in the meantime.

Coming in 2.1

JavaScript / TypeScript

npm install @zolofy/sdk
Coming in 2.1

Python

pip install zolofy
Coming in 2.1

MCP Server

npx @zolofy/mcp