For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SupportDeel Home
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
  • Resources
    • Blog
    • Community
    • API spec
  • Endpoints
      • POSTCreate a direct employee
      • POSTCreate a person without a contract
      • GETGet my current personal profile
      • GETList of People
      • GETRetrieve a single person
      • PUTUpdate working location
    • PATCHProfiles
LogoLogo
SupportDeel Home
EndpointsPeople

List of People

GET
/people
GET
/rest/v2/people
$curl -G https://api.letsdeel.com/rest/v2/people \
> -H "Authorization: Bearer <token>" \
> -d offset=150 \
> -d limit=50 \
> --data-urlencode "search=John Doe" \
> -d teams=00000000-0000-0000-0000-000000000000 \
> -d teams=642b0547-9d80-4d35-a085-fd977ef209ef \
> -d fields=first_name \
> -d fields=last_name \
> -d fields=email \
> -d sort_by=hiring_status \
> -d sort_order=asc \
> -d hiring_statuses=active \
> -d hiring_statuses=onboarded \
> -d band_placements=ABOVE \
> -d band_placements=WITHIN \
> -d comparative_ratios_from=1.1 \
> -d comparative_ratios_to=1.1 \
> -d hiring_types=eor \
> -d hiring_types=contractor \
> -d person_statuses=ACTIVE \
> -d person_statuses=INACTIVE
1{
2 "data": [
3 {
4 "id": "9b9fc43a-a90c-4615-ac50-baf1e314b53e",
5 "state": "Active",
6 "emails": [
7 {
8 "type": "work",
9 "value": "work.email@example.com"
10 }
11 ],
12 "country": "USA",
13 "is_pwac": false,
14 "timezone": "EST",
15 "addresses": [
16 {
17 "region": "CO",
18 "country": "US",
19 "locality": "Denver",
20 "postalCode": "44000",
21 "streetAddress": "Deel Street 500"
22 }
23 ],
24 "full_name": "John Doe",
25 "job_title": "Access Field Technician",
26 "last_name": "Doe",
27 "seniority": "Junior (Individual Contributor Level 1)",
28 "worker_id": "123",
29 "birth_date": "1990-01-01T00:00:00.000Z",
30 "created_at": "2023-03-21T10:27:25.950Z",
31 "department": {
32 "id": "00000000-0000-0000-0000-000000000000",
33 "name": "Delivery team",
34 "parent": "Research and Development"
35 },
36 "first_name": "John",
37 "start_date": "2023-03-20",
38 "updated_at": "2022-05-24T09:38:46.235Z",
39 "employments": [
40 {
41 "id": "mzj524j",
42 "name": "Khizar Naeem",
43 "team": {
44 "id": "00000000-0000-0000-0000-000000000000",
45 "name": "Engineering Team"
46 },
47 "email": "some@example.com",
48 "state": "Active",
49 "country": "USA",
50 "payment": {
51 "rate": 100.5,
52 "scale": "hourly",
53 "currency": "USD",
54 "contract_name": "Full-time Employment Contract"
55 },
56 "is_ended": false,
57 "timezone": "EST",
58 "job_title": "Access Field Technician",
59 "seniority": "Junior (Individual Contributor Level 1)",
60 "start_date": "2023-03-20",
61 "work_email": "work.email@example.com",
62 "hiring_type": "contractor",
63 "hiring_status": "onboarding",
64 "band_placement": "ABOVE",
65 "completion_date": "2023-06-20T00:00:00.000Z",
66 "contract_status": "waiting_for_client_sign",
67 "voluntarily_left": true,
68 "comparative_ratio": 1.1,
69 "contract_coverage": "is_premium",
70 "new_hiring_status": "onboarding_overdue",
71 "client_legal_entity": {
72 "id": "00000000-0000-0000-0000-000000000000",
73 "name": "Acme Corporation"
74 },
75 "has_eor_termination": true,
76 "compensation_band_id": "9b9fc43a-a90c-4615-ac50-baf1e314b53e",
77 "contract_is_archived": false,
78 "termination_last_day": "2023-03-21T10:27:25.950Z",
79 "contract_has_contractor": true,
80 "is_user_contract_deleted": false,
81 "hris_direct_employee_invitation": {
82 "oid": "rJ7PUDgbp9L6",
83 "status": "DISABLED",
84 "send_at": "2023-03-21T10:27:25.950Z",
85 "timezone": "EST"
86 }
87 }
88 ],
89 "external_id": "9b9fc43a-a90c-4615-ac50-baf1e314b53e",
90 "hiring_type": "contractor",
91 "hiring_status": "onboarding",
92 "nationalities": [
93 "American"
94 ],
95 "person_status": "ACTIVE",
96 "work_location": "Remote",
97 "direct_manager": {
98 "id": "642b0547-9d80-4d35-a085-fd977ef209ef",
99 "last_name": "John",
100 "worker_id": 30,
101 "first_name": "Doe",
102 "work_email": "john.doe@example.com"
103 },
104 "direct_reports": [
105 {
106 "id": "642b0547-9d80-4d35-a085-fd977ef209ef",
107 "last_name": "John",
108 "first_name": "Doe",
109 "work_email": "john.doe@example.com"
110 }
111 ],
112 "completion_date": "2023-06-20T00:00:00.000Z",
113 "new_hiring_status": "onboarding_overdue",
114 "additional_details": [
115 {
116 "type": "socialSecurity",
117 "value": "123-12-1234",
118 "country": "US"
119 }
120 ],
121 "client_legal_entity": {
122 "id": "00000000-0000-0000-0000-000000000000",
123 "name": "Acme Corporation"
124 },
125 "preferred_last_name": "Doe",
126 "direct_reports_count": 0,
127 "preferred_first_name": "John",
128 "hris_organization_user_id": "9b9fc43a-a90c-4615-ac50-baf1e314b53e",
129 "active_worker_termination_status": "IN_PROGRESS",
130 "direct_employee_termination_last_day": "2023-03-21T10:27:25.950Z"
131 }
132 ],
133 "page": {
134 "offset": 1,
135 "total_rows": 1.1,
136 "items_per_page": 1.1
137 }
138}

Returns a paginated list of people records in the organization. Supports filtering by search term, teams, custom fields, and other query parameters. Build people directories, sync HR data, or power search interfaces across your workforce records. Token scopes: people:read

Was this page helpful?
Previous

Retrieve a single person

Next
Built with

Authentication

AuthorizationBearer
## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
OR
AuthorizationBearer
Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

Query parameters

offsetintegerOptional0-999999999Defaults to 0
Return a page of results with given number of records.
limitintegerOptional1-200
Return a page of results with given number of records.
searchstringOptional
Include a contract if by name or contractor name contains given search term.
teamslist of stringsOptional

Filter the results based on the team(group) the users contract is associated with

fieldslist of enumsOptional

Pick the fields you want to see in the response in order to avoid a bloated people list output. Supports dot notation (e.g., ‘employments[0].contract_status’) to access nested fields.

sort_byenumOptional
Sort people by given field name.
sort_orderenumOptional

Order direction of results; ascending or descending.

Allowed values:
hiring_statuseslist of enumsOptional
Employee's current hiring status.
band_placementslist of enumsOptional
Employee's current band placement.
Allowed values:
comparative_ratios_fromdoubleOptional
Employee's minimum band placement
comparative_ratios_todoubleOptional
Employee's maximum band placement
hiring_typeslist of enumsOptional
Filter people by hiring types
person_statuseslist of enumsOptional

Filter people by person (worker profile) lifecycle status.

Allowed values:

Response

Successful response
datalist of objects
pageobject

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error

Authentication

The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.

1curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
2 -H 'Authorization: Bearer YOUR-TOKEN-HERE'

Learn more about authentication

Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/