API Reference
Customers
Manage the client companies your organization serves.
API Reference
Manage the client companies your organization serves.
/v1/customersReturns a paginated list of customers (client companies) in your organization, newest first.
customers:readModule: customersQuery parameters
limit | integer Page size, 1-100 (default 25). |
cursor | string Opaque cursor from a previous response’s next_cursor. |
status | enum Filter by status.
|
Request
Response · 200
/v1/customers/{id}Returns a single customer by id. Responds 404 if no such customer exists in your organization.
customers:readModule: customersPath parameters
idrequired | string (uuid) Customer id. |
Request
Response · 200
/v1/customersCreates a new customer (client company). Emits customer.created.
customers:writeModule: customersEmits: customer.createdBody parameters
namerequired | string Customer (client company) name (required). |
status | enum
|
contact_name | string |
contact_email | string |
contact_phone | string |
billing_rate | number |
notes | string |
Request
Response · 201
/v1/customers/{id}Updates a customer’s fields. Only supplied fields change. Emits customer.updated.
customers:writeModule: customersEmits: customer.updatedPath parameters
idrequired | string (uuid) Customer id. |
Body parameters
name | string |
status | enum
|
contact_name | string | null |
contact_email | string | null |
contact_phone | string | null |
billing_rate | number | null |
notes | string | null |
Request
Response · 200
{
"data": [
{
"id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"name": "Example Facilities Group",
"status": "active",
"contact_name": null,
"contact_email": "operations@example.com",
"contact_phone": null,
"address": {
"line1": null,
"line2": null,
"city": "Seattle",
"state": "WA",
"postal_code": null,
"country": "US"
},
"contract_start": "2026-01-01",
"contract_end": null,
"billing_rate": 42.5,
"notes": null,
"created_at": "2026-01-05T14:00:00+00:00",
"updated_at": "2026-06-01T10:30:00+00:00"
}
],
"has_more": false,
"next_cursor": null
}{
"id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"name": "Example Facilities Group",
"status": "active",
"contact_name": null,
"contact_email": "operations@example.com",
"contact_phone": null,
"address": {
"line1": null,
"line2": null,
"city": "Seattle",
"state": "WA",
"postal_code": null,
"country": "US"
},
"contract_start": "2026-01-01",
"contract_end": null,
"billing_rate": 42.5,
"notes": null,
"created_at": "2026-01-05T14:00:00+00:00",
"updated_at": "2026-06-01T10:30:00+00:00"
}{
"id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"name": "Example Facilities Group",
"status": "active",
"contact_name": null,
"contact_email": "operations@example.com",
"contact_phone": null,
"address": {
"line1": null,
"line2": null,
"city": "Seattle",
"state": "WA",
"postal_code": null,
"country": "US"
},
"contract_start": "2026-01-01",
"contract_end": null,
"billing_rate": 42.5,
"notes": null,
"created_at": "2026-01-05T14:00:00+00:00",
"updated_at": "2026-06-01T10:30:00+00:00"
}{
"id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"name": "Example Facilities Group",
"status": "active",
"contact_name": null,
"contact_email": "operations@example.com",
"contact_phone": null,
"address": {
"line1": null,
"line2": null,
"city": "Seattle",
"state": "WA",
"postal_code": null,
"country": "US"
},
"contract_start": "2026-01-01",
"contract_end": null,
"billing_rate": 42.5,
"notes": null,
"created_at": "2026-01-05T14:00:00+00:00",
"updated_at": "2026-06-01T10:30:00+00:00"
}curl -X GET "https://keepworkersfirst.org/api/v1/customers" \
-H "Authorization: Bearer $API_KEY"curl -X GET "https://keepworkersfirst.org/api/v1/customers/b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0" \
-H "Authorization: Bearer $API_KEY"curl -X POST "https://keepworkersfirst.org/api/v1/customers" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Example Facilities Group","status":"active"}'curl -X PATCH "https://keepworkersfirst.org/api/v1/customers/b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"inactive"}'