# contractorOps.directory.list

List every contractor with their roles, department, status, rate and pay cadence, payment profile completeness (masked), agreement on file, pending hours, next hours due date, last activity, their recent pay periods and live payouts with whether payouts are prepared for them automatically (pay, the same as contractorOps.profiles.get returns, for when they are paid next), and for anyone who has not joined the portal where their invitation stands (invite: state and label, such as not_invited, sent, delivered, bounced or expired; null once they have joined). Filter by query, status, department, or role.

`GET | POST /api/v1/accounting/contractorOps.directory.list`

Permissions: `accounting:read` · Roles: admin, finance

MCP tool: `accounting_contractor_ops_directory_list`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `limit` | integer |  | How many results to return at most. 1 to 100. Default `30`. |
| `offset` | integer |  | How many results to skip, for the next page of a list. 0 to 100000. Default `0`. |
| `query` | string |  | Text to search for. at most 200 characters. |
| `status` | enum |  | Only include records with this status. One of: `onboarding`, `active`, `inactive`. |
| `department` | string |  | at most 120 characters. |
| `role` | string |  | A person's access level in the company. at most 80 characters. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/contractorOps.directory.list \
  -H "Authorization: Bearer $OATMILK_API_KEY"
```

Reference page: https://app.getoatmilk.com/docs/api/contractorOps.directory.list
