Clients
List, retrieve, create and update clients.
A client is a company you do billable work for.
The client object
{
"object": "client",
"id": "cl_123",
"company_name": "Acme Inc.",
"company_email": "billing@acme.com",
"company_address": "1 Market St, San Francisco",
"website": "https://acme.com",
"status": "ACTIVE",
"language": "ENGLISH",
"business_number": null,
"tps_number": null,
"tvq_number": null,
"relationship_start_date": "2026-01-01T00:00:00.000Z",
"workspace_id": "ws_123",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}status is one of LEAD, ACTIVE, SLEEPING, LOST. language is
ENGLISH or FRENCH.
List clients
GET /api/v1/clients — scope clients:read
| Query param | Description |
|---|---|
limit, cursor | Pagination. |
status | Filter by status. |
search | Case-insensitive match on company name. |
curl "https://app.militime.ai/api/v1/clients?status=ACTIVE&limit=25" \
-H "Authorization: Bearer mt_live_your_token"Returns a list envelope of client objects.
Retrieve a client
GET /api/v1/clients/{id} — scope clients:read
curl https://app.militime.ai/api/v1/clients/cl_123 \
-H "Authorization: Bearer mt_live_your_token"Create a client
POST /api/v1/clients — scope clients:write
| Field | Required | Notes |
|---|---|---|
company_name | yes | |
company_email | yes | Valid email. |
company_address | no | |
website | no | Valid URL. |
status | no | Defaults to LEAD. |
language | no | Defaults to ENGLISH. |
business_number, tps_number, tvq_number | no | Tax identifiers. |
curl -X POST https://app.militime.ai/api/v1/clients \
-H "Authorization: Bearer mt_live_your_token" \
-H "Content-Type: application/json" \
-d '{
"company_name": "Acme Inc.",
"company_email": "billing@acme.com",
"status": "ACTIVE"
}'Responds 201 with the created client.
Update a client
PATCH /api/v1/clients/{id} — scope clients:write
Send only the fields you want to change.
curl -X PATCH https://app.militime.ai/api/v1/clients/cl_123 \
-H "Authorization: Bearer mt_live_your_token" \
-H "Content-Type: application/json" \
-d '{ "status": "SLEEPING" }'Delete a client
DELETE /api/v1/clients/{id} — scope clients:write
Refused with 409 conflict if the client still has projects or time entries —
archive it (set status to SLEEPING/LOST) instead of deleting.
curl -X DELETE https://app.militime.ai/api/v1/clients/cl_123 \
-H "Authorization: Bearer mt_live_your_token"{ "object": "client", "id": "cl_123", "deleted": true }