List workers
curl --request GET \
--url https://api.plane.com/v1/workers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plane.com/v1/workers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plane.com/v1/workers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.com/v1/workers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/workers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plane.com/v1/workers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/workers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"workers": [
{
"id": "wr_yLSx6",
"type": "employee",
"number": null,
"title": "Corporate Controller",
"name": "Grace Thompson",
"email": "grace.thompson@mail.example.com",
"dob": null,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
},
"employment": {
"id": "wre_yLSx6",
"current": true,
"status": "active",
"starts": "2025-03-27",
"ends": null,
"primary": true,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"location": {
"address": {
"country": "US",
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 500",
"postal_code": "94103",
"state": "CA"
}
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
}
},
"accounts": []
}
],
"cursor": "WyIyMDI2LTAzLTI3VDIxOjE2OjQwLjM3MTA0Mi0wNzowMCIsIndyX3lMU3g2Il0"
}
Workers
List workers
Returns workers in your Plane workspace.
GET
/
v1
/
workers
List workers
curl --request GET \
--url https://api.plane.com/v1/workers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plane.com/v1/workers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plane.com/v1/workers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.com/v1/workers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/workers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plane.com/v1/workers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/workers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"workers": [
{
"id": "wr_yLSx6",
"type": "employee",
"number": null,
"title": "Corporate Controller",
"name": "Grace Thompson",
"email": "grace.thompson@mail.example.com",
"dob": null,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
},
"employment": {
"id": "wre_yLSx6",
"current": true,
"status": "active",
"starts": "2025-03-27",
"ends": null,
"primary": true,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"location": {
"address": {
"country": "US",
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 500",
"postal_code": "94103",
"state": "CA"
}
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
}
},
"accounts": []
}
],
"cursor": "WyIyMDI2LTAzLTI3VDIxOjE2OjQwLjM3MTA0Mi0wNzowMCIsIndyX3lMU3g2Il0"
}
Parameters
number
A limit on the number of objects to be returned. Limit can range between 1 and 100, and the
default is 10.
string
A value from a previous response that lets you fetch the next page.
string
Search workers by display name.
string
Only return workers whose personal or work email matches this address.
string
Only return workers with this type, one of
employee, contractor, or vendor.string
Only return workers whose current employment location has this country code.
string
Return results after this worker ID.
string
Return results before this worker ID.
string
Only return workers updated after this timestamp. Use an ISO 8601 datetime such as
2026-03-27T00:00:00Z.Returns
Only one ofcursor, starting_after, or ending_before may be provided.
Returns a dictionary with a workers property that contains an array of
Worker objects. When another page is available, the
response also includes a cursor value.
{
"workers": [
{
"id": "wr_yLSx6",
"type": "employee",
"number": null,
"title": "Corporate Controller",
"name": "Grace Thompson",
"email": "grace.thompson@mail.example.com",
"dob": null,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
},
"employment": {
"id": "wre_yLSx6",
"current": true,
"status": "active",
"starts": "2025-03-27",
"ends": null,
"primary": true,
"compensation": {
"amount": "37.0",
"unit": "hour",
"currency": "USD",
"frequency": "monthly",
"stock": null,
"other": null
},
"location": {
"address": {
"country": "US",
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 500",
"postal_code": "94103",
"state": "CA"
}
},
"classification": {
"type": "",
"status": "",
"term": "",
"overtime": null,
"starts": "2026-03-27",
"ends": null
},
"role": {
"title": "Corporate Controller",
"responsibilities": "Financial reporting, internal controls, audit management, compliance",
"level": "Manager"
},
"reporting": {
"department": null,
"manager": {
"name": "",
"email": "priya@airfoil.example.com"
},
"starts": null,
"ends": null
}
},
"accounts": []
}
],
"cursor": "WyIyMDI2LTAzLTI3VDIxOjE2OjQwLjM3MTA0Mi0wNzowMCIsIndyX3lMU3g2Il0"
}
Was this page helpful?
⌘I