API Introduction
Getting started with the Tiquo APIs
Tiquo APIs
Tiquo provides two separate REST APIs, each designed for different use cases.
Admin API
The Admin API is built for server-side integrations. It gives your backend systems programmatic access to your organization's data, including customer records, orders, bookings, and more. You authenticate with API keys that you generate from the Tiquo dashboard.
Base URL:
https://api.tiquo.app/api/v1Client API
The Client API is built for customer-facing applications. It lets your customers access their own profile, order history, booking history, and enquiries directly from your website or mobile app. Authentication uses JWT tokens issued through either the DOM Package or OAuth/OIDC.
Base URL:
https://edge.tiquo.app/api/client/v1Quick Comparison
| Admin API | Client API | |
|---|---|---|
| Purpose | Server-side data management | Customer-facing applications |
| Authentication | API keys (Bearer token) | JWT access tokens |
| Data scope | Full organization data | Scoped to the authenticated customer |
| CORS | Not enabled (server-side only) | Enabled for all origins |
| Rate limit | 1,000 requests per hour per key | Per-user limits |
| Base URL | api.tiquo.app/api/v1 | edge.tiquo.app/api/client/v1 |
Response Format
Both APIs return JSON responses with a consistent structure.
Successful response:
{
"success": true,
"data": { ... },
"timestamp": "2025-01-15T10:30:00.000Z"
}Error response:
{
"success": false,
"error": "Description of what went wrong",
"timestamp": "2025-01-15T10:30:00.000Z"
}HTTP Status Codes
| Code | Meaning |
|---|---|
200 | Request succeeded |
400 | Bad request (invalid parameters or missing fields) |
401 | Unauthorized (missing or invalid authentication) |
403 | Forbidden (insufficient permissions) |
404 | Resource not found |
429 | Rate limit exceeded |
500 | Internal server error |
Pagination
Endpoints that return lists use cursor-based pagination. You can control the page size with the limit parameter (default 50, max 100) and paginate using the cursor parameter.
{
"success": true,
"data": {
"orders": [ ... ],
"hasMore": true,
"nextCursor": "order_abc123"
}
}To get the next page, pass the nextCursor value as the cursor query parameter in your follow-up request. When hasMore is false, you have reached the end of the results.