Militime API

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 paramDescription
limit, cursorPagination.
statusFilter by status.
searchCase-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

FieldRequiredNotes
company_nameyes
company_emailyesValid email.
company_addressno
websitenoValid URL.
statusnoDefaults to LEAD.
languagenoDefaults to ENGLISH.
business_number, tps_number, tvq_numbernoTax 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 }