Universal Commerce Protocol

Public Beta

Agent-native B2B commerce for any AI runtime

UCP is Techfleet Sync's open commerce protocol that allows any AI agent — regardless of model or runtime — to discover, query, and transact with your inventory over plain REST. Unlike MCP (which is Claude-specific), UCP is designed to work with GPT, Gemini, Llama, and any HTTP-capable agent.

MCP vs UCP: when to use which

MCP Protocol
  • Best for Claude and Cursor integrations
  • Interactive, conversation-driven queries
  • Requires MCP-compatible client
  • Rich tool descriptions for AI context
UCP Protocol
  • Works with any AI agent or runtime
  • Plain REST/JSON over HTTPS
  • Self-describing OpenAPI schema
  • API-key or buyer-link-slug auth

Global Device Catalog

New

Every UCP item carries normalized device data from the Techfleet global catalog — 5,300+ devices across 13 categories with normalized specs, model numbers, and GTIN/UPC barcodes. Use GET /ucp/imei/{imei}/intelligenceto verify a specific device's identity, carrier, and lock status before placing an order.

5,300+
Devices
13
Categories
100%
Specs coverage
AI-native
Normalized fields

Base URL & auth

UCP is a plain REST/JSON API. Authenticate with a merchant API key (your own catalog at base prices) or a buyer-link slug (the catalog at that buyer's negotiated margin). The slug can also be the first path segment.

# Merchant API key — own catalog, base prices
GET https://api.techfleet.dev/ucp/inventory
Authorization: Bearer tfs_live_your_api_key

# Buyer-link slug — same catalog, buyer's margin
GET https://api.techfleet.dev/ucp/inventory?slug=YOUR_BUYER_SLUG
# ...or in the path:
GET https://api.techfleet.dev/ucp/YOUR_BUYER_SLUG/inventory

Full request/response schemas for every endpoint are in the interactive API reference (and as OpenAPI at /openapi.json).

1. List inventory

GET /ucp/inventory returns each product with one buyerPrice for the caller. Filter with q, grade, min_price, max_price, limit.

GET https://api.techfleet.dev/ucp/inventory?grade=A&max_price=600&limit=20
Authorization: Bearer tfs_live_your_api_key

// Response
{
  "merchantName": "Device Supply Co.",
  "slug": null,
  "total": 23,
  "items": [
    {
      "id": "prod_01h9xmk2n3p5r7t9",
      "name": "iPhone 14 Pro 256GB",
      "sku": "IP14P-256-BLK",
      "condition": "Grade A",
      "stock": 12,
      "buyerPrice": 549.00,
      "availableGrades": "A,A+",
      "avgBatteryHealth": 88,
      "supplyConnect": false
    }
  ]
}

2. Look up a device & its intelligence

Fetch a single unit by IMEI, or pull Atlas device intelligence — carrier, lock status, blacklist, and warranty.

GET https://api.techfleet.dev/ucp/inventory/{imei}
GET https://api.techfleet.dev/ucp/imei/{imei}/intelligence?bundle=standard
Authorization: Bearer tfs_live_your_api_key

3. Place an order

POST /ucp/order reserves units and creates a pending order. Requires write scope — a buyer-link slug always has it; a read-only API key is rejected.

POST https://api.techfleet.dev/ucp/order
Authorization: Bearer tfs_live_your_api_key
Content-Type: application/json

{
  "buyerName": "Acme Procurement",
  "buyerEmail": "buyer@acme.com",
  "items": [
    { "productId": "prod_01h9xmk2n3p5r7t9", "quantity": 10, "unitPrice": 549.00 }
  ],
  "notes": "PO-20250310-001"
}

// Response
{
  "orderId": "ord_01h9xmk2n3p5r7t9",
  "orderNumber": "ORD-20250310-AB12",
  "totalAmount": 5490.00,
  "status": "pending",
  "itemCount": 10
}

4. Track orders & ask questions

Check an order by number, or ask a natural-language question grounded in the live inventory snapshot.

GET  https://api.techfleet.dev/ucp/order/{orderNumber}

POST https://api.techfleet.dev/ucp/inquiry
{ "message": "Do you have 50 unlocked iPhone 13s in stock?" }

Authorization: Bearer tfs_live_your_api_key

Error handling

UCP returns standard HTTP status codes with a JSON { "error": "..." } body:

400
BadRequestMalformed body or missing required fields.
401
UnauthorizedMissing or invalid API key / buyer-link slug.
403
ForbiddenValid key, but it lacks the write scope an order requires.
404
NotFoundNo matching device or order.
409
InsufficientInventoryOne or more requested units are no longer available.
410
BuyerLinkInactiveThe buyer link has been disabled or has expired.

Rate limits

Pro
500 req/min
Suitable for single-agent integrations.
Enterprise
5,000 req/min
Multi-agent and high-volume pipelines.
Custom
Unlimited
Contact us for dedicated infrastructure.

Make your inventory AI-queryable

UCP is available in public beta for Pro and Enterprise plans. No configuration required — your UCP endpoint is live the moment you create an account.