Demo backend
The public stand-in shop API the Acme sample tools call, so a real model has something to fetch before you connect your own endpoints.
Base: https://api.kletso.ai/demo/acme. No authentication. Read endpoints return fixed catalogue data; the two POSTs answer as if they succeeded without changing anything.
| Method and path | Query / params | Returns |
|---|---|---|
GET /products | q, maxPrice | { items: [ { sku, name, category, price, currency, image, rating, inStock } ], total, currency: "INR" }; six products, fuzzy word match, falls back to everything under maxPrice |
GET /flights | from, to, date | { flights: [ { id, airline, from, to, depart, arrive, duration, price, currency: "JPY", status } ], date }; three flights, defaults HND → ITM tomorrow |
GET /reports/sales | period | { period, currency: "USD", total, changePct, byProduct: [ { name, total } ], byWeek: [ { week, total } ] } |
GET /orders/:id | ORD-2201, ORD-2187, ORD-2100 | { orderId, status, total, ageDays, items, eta, courier }, or 404 { error } |
GET /orders/:id/shipment | { orderId, status, eta, courier, location: { lat, lng, label }, timeline: [ { at, what, where } ] } | |
POST /orders/:id/cancel | { orderId, status: "cancelled", refund, refundEta }; 409 if already delivered | |
POST /orders/:id/refund | { orderId, refundId, amount, eta } |
Example:
curl "https://api.kletso.ai/demo/acme/products?q=running%20shoes&maxPrice=2000"
The sample agent’s five tools point here. Swap the URLs in Tools for your own API when you are ready; keep the argument schemas if they fit.