API reference
Every v1 endpoint, its scope and how pagination works, plus the OpenAPI document.
The Kabaido API is REST over HTTPS, scoped to your organisation by the API key. All money fields are integer minor units with a currency code. The machine-readable specification lives at /api/v1/openapi.json.
curl "/api/v1/quotes?limit=2" -H "Authorization: Bearer kbd_..."- Q-26-00026£528.96inc VATvalid until 11 JulDraft
- Q-26-00025£202.08inc VATvalid until 10 JulDraft
Money in minor units. 600 requests per minute per key.
Endpoints
| Endpoint | Method | Scope | Purpose |
|---|---|---|---|
| /api/v1/products | GET | products:read | List and search products |
| /api/v1/products/bulk | POST | products:write | Upsert up to 10000 products by SKU |
| /api/v1/quotes | GET | quotes:read | List quotes, filter by status |
| /api/v1/quotes/{id} | GET | quotes:read | One quote with lines |
| /api/v1/orders | GET | orders:read | List orders, filter by status |
| /api/v1/orders/{id} | GET | orders:read | One order with lines |
| /api/v1/customers | GET | customers:read | List and search customers |
| /api/v1/customers | POST | customers:write | Upsert up to 500 customers |
| /api/v1/customers/{id} | GET | customers:read | One customer with contacts |
| /api/v1/requests | GET | requests:read | List request threads |
| /api/v1/requests | POST | requests:write | Open a request from RFQ text |
| /api/v1/requests/{id} | GET | requests:read | One request with messages |
Pagination
List endpoints return newest first with an opaque next_cursor when more results exist. Pass it back as the cursor query parameter for the next page; a null next_cursor means you have everything. Limits cap at 200 rows for commercial lists and 500 for products and customers.
Errors
Errors are JSON with a single error message. 401 means a missing or revoked key, 403 a missing scope, 404 a record outside your organisation, 422 a request that cannot be processed, 429 the per-key throttle and 5xx a fault on our side. Retry 429 and 5xx with a backoff; never retry 4xx unchanged.
Opening a request
curl -X POST https://kabaido.ai/api/v1/requests \
-H "Authorization: Bearer kbd_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "text": "Please quote 50x DIN 933 M8x40 A2" }'Creating a request costs nothing. Credits meter the AEI when it resolves lines, exactly as in the app.