Universal Commerce Protocol
Public BetaAgent-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
- Best for Claude and Cursor integrations
- Interactive, conversation-driven queries
- Requires MCP-compatible client
- Rich tool descriptions for AI context
- 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
NewEvery 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.
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/inventoryFull 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_key3. 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_keyError handling
UCP returns standard HTTP status codes with a JSON { "error": "..." } body:
400401403404409410Rate limits
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.