workers first
IndustriesPricingSecurityFor ProvidersHow It Works
Sign InGet started freeBook a demo

Guides

  • Introduction
  • Authentication
  • Errors
  • Rate limits
  • Idempotency
  • Pagination
  • Scopes

API Reference

  • Organization
  • Members
  • Customers
  • Sites
  • Shifts
  • timesheets
  • invoices
  • Bookings
  • Webhooks

Webhooks

  • Events & signatures

API Reference

Customers

Manage the client companies your organization serves.

Workers First

The all-in-one platform for organizations to manage their workforce, operations, and the people they serve.

support@keepworkersfirst.org

For Organizations

  • Book a Demo
  • Pricing
  • Security
  • Industries
  • Developers

For Providers

  • Join as Provider
  • Learn More

For Families

  • Create Account
  • Learn More

Company

  • About Us
  • Contact
© 2026 Workers First. All rights reserved.
Privacy PolicyTerms of ServiceAccessibility
GET/v1/customers

List customers

Returns a paginated list of customers (client companies) in your organization, newest first.

Scope: customers:readModule: customers

Query parameters

limitinteger

Page size, 1-100 (default 25).

cursorstring

Opaque cursor from a previous response’s next_cursor.

statusenum

Filter by status.

activeinactiveprospect

Request

Response · 200

GET/v1/customers/{id}

Get a customer

Returns a single customer by id. Responds 404 if no such customer exists in your organization.

Scope: customers:readModule: customers

Path parameters

idrequiredstring (uuid)

Customer id.

Request

Response · 200

POST/v1/customers

Create a customer

Creates a new customer (client company). Emits customer.created.

Scope: customers:writeModule: customersEmits: customer.created

Body parameters

namerequiredstring

Customer (client company) name (required).

statusenum

activeinactiveprospect

contact_namestring
contact_emailstring
contact_phonestring
billing_ratenumber
notesstring

Request

Response · 201

PATCH/v1/customers/{id}

Update a customer

Updates a customer’s fields. Only supplied fields change. Emits customer.updated.

Scope: customers:writeModule: customersEmits: customer.updated

Path parameters

idrequiredstring (uuid)

Customer id.

Body parameters

namestring
statusenum

activeinactiveprospect

contact_namestring | null
contact_emailstring | null
contact_phonestring | null
billing_ratenumber | null
notesstring | 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"}'