API Overview
The Meridian Track API allows external tools, scripts, and integrations to programmatically access your workspace data. The API follows RESTful conventions and returns JSON responses.
Base URL
Section titled “Base URL”https://api.meridiantrack.comAll API endpoints are prefixed with /v1/.
Authentication
Section titled “Authentication”All API requests require an API key passed in the X-API-Key header:
curl https://api.meridiantrack.com/v1/clients \ -H "X-API-Key: mt_live_your_api_key_here"See Authentication for details on creating and managing API keys.
Rate Limits
Section titled “Rate Limits”Each API key has configurable rate limits:
- Per minute (default: 60 requests/minute)
- Per hour (default: 1,000 requests/hour)
When a rate limit is exceeded, the request is rejected with a 403 Forbidden error. Rate limit counters reset at the start of each window (minute or hour).
Response Format
Section titled “Response Format”Success Responses
Section titled “Success Responses”List endpoints return items in an items array:
{ "items": [...]}Paginated endpoints (time entries and invoices) include additional fields:
{ "items": [...], "nextCursor": "...", "hasMore": true}Single-resource endpoints return the resource directly:
{ "id": "...", "name": "..."}Error Responses
Section titled “Error Responses”Errors use a structured format:
{ "error": { "code": "NOT_FOUND", "message": "Client not found" }}Error codes: UNAUTHORIZED (401), FORBIDDEN (403), VALIDATION_ERROR (400), NOT_FOUND (404), CONFLICT (409), NOT_IMPLEMENTED (501), INTERNAL_ERROR (500).
Pagination
Section titled “Pagination”Time entries and invoices support cursor-based pagination. Other list endpoints (clients, projects, tasks, tags, favorites) return all items without pagination.
# First pageGET /v1/time-entries?limit=50
# Next pageGET /v1/time-entries?limit=50&cursor=<nextCursor value>- Default limit: 50
- Maximum limit: 200
- When more results exist, the response includes
nextCursor(opaque token) andhasMore: true
Available Resources
Section titled “Available Resources”| Resource | Endpoints | Scopes |
|---|---|---|
| Clients | CRUD | clients:read, clients:write |
| Projects | CRUD | projects:read, projects:write |
| Tasks | CRUD | tasks:read, tasks:write |
| Tags | CRUD | tags:read, tags:write |
| Time Entries | CRUD | time-entries:read, time-entries:write |
| Favorites | CRUD | favorites:read, favorites:write |
| Invoices | Read, List, Delete | invoices:read, invoices:write |
OpenAPI Specification
Section titled “OpenAPI Specification”A machine-readable OpenAPI 3.0 spec is available at:
GET /v1/openapi.jsonThis endpoint is public and does not require authentication.