Create a worker contact
curl --request POST \
--url https://api.plane.com/v1/worker-contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"worker": "<string>",
"purpose": "<string>",
"name": {},
"relationship": "<string>",
"phones": [
{}
],
"emails": [
{}
],
"address": {},
"priority": 123,
"status": "<string>"
}
'import requests
url = "https://api.plane.com/v1/worker-contacts"
payload = {
"worker": "<string>",
"purpose": "<string>",
"name": {},
"relationship": "<string>",
"phones": [{}],
"emails": [{}],
"address": {},
"priority": 123,
"status": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
worker: '<string>',
purpose: '<string>',
name: {},
relationship: '<string>',
phones: [{}],
emails: [{}],
address: {},
priority: 123,
status: '<string>'
})
};
fetch('https://api.plane.com/v1/worker-contacts', 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/worker-contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'worker' => '<string>',
'purpose' => '<string>',
'name' => [
],
'relationship' => '<string>',
'phones' => [
[
]
],
'emails' => [
[
]
],
'address' => [
],
'priority' => 123,
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/worker-contacts"
payload := strings.NewReader("{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.plane.com/v1/worker-contacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/worker-contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"priority": 1
}
{
"id": "wcon_8oWZpQ2rL4sk",
"object": "worker_contact",
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "extension": null, "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"address": null,
"priority": 1,
"status": "active",
"created": "2026-06-21T12:00:00Z",
"updated": "2026-06-21T12:00:00Z"
}
Contacts
Create a worker contact
Add a contact to a worker.
POST
/
v1
/
worker-contacts
Create a worker contact
curl --request POST \
--url https://api.plane.com/v1/worker-contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"worker": "<string>",
"purpose": "<string>",
"name": {},
"relationship": "<string>",
"phones": [
{}
],
"emails": [
{}
],
"address": {},
"priority": 123,
"status": "<string>"
}
'import requests
url = "https://api.plane.com/v1/worker-contacts"
payload = {
"worker": "<string>",
"purpose": "<string>",
"name": {},
"relationship": "<string>",
"phones": [{}],
"emails": [{}],
"address": {},
"priority": 123,
"status": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
worker: '<string>',
purpose: '<string>',
name: {},
relationship: '<string>',
phones: [{}],
emails: [{}],
address: {},
priority: 123,
status: '<string>'
})
};
fetch('https://api.plane.com/v1/worker-contacts', 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/worker-contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'worker' => '<string>',
'purpose' => '<string>',
'name' => [
],
'relationship' => '<string>',
'phones' => [
[
]
],
'emails' => [
[
]
],
'address' => [
],
'priority' => 123,
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/worker-contacts"
payload := strings.NewReader("{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.plane.com/v1/worker-contacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/worker-contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"worker\": \"<string>\",\n \"purpose\": \"<string>\",\n \"name\": {},\n \"relationship\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"emails\": [\n {}\n ],\n \"address\": {},\n \"priority\": 123,\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"priority": 1
}
{
"id": "wcon_8oWZpQ2rL4sk",
"object": "worker_contact",
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "extension": null, "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"address": null,
"priority": 1,
"status": "active",
"created": "2026-06-21T12:00:00Z",
"updated": "2026-06-21T12:00:00Z"
}
Parameters
ID of the worker this contact belongs to.
Contact purpose. Currently
emergency.The contact’s name. Same shape as a worker’s name (e.g.
first, last,
full, display).Free-text relationship to the worker.
Phone numbers for this contact. Each entry requires
type and value, and
may include extension and primary. Phone types are mobile, home,
work, or other.Email addresses for this contact. Each entry requires
type and value, and
may include primary. Email types are personal, work, or other.Optional mailing address for this contact.
Contact priority within the purpose. Required for emergency contacts.
Contact status. One of
active or inactive. Defaults to active.Returns
Returns the created Worker contact object.{
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"priority": 1
}
{
"id": "wcon_8oWZpQ2rL4sk",
"object": "worker_contact",
"worker": "wrkr_8oWZpQ2rL4sk",
"purpose": "emergency",
"name": { "full": "Amara Okafor", "display": "Amara Okafor" },
"relationship": "spouse",
"phones": [{ "type": "mobile", "value": "+14155550123", "extension": null, "primary": true }],
"emails": [{ "type": "personal", "value": "amara@example.com", "primary": true }],
"address": null,
"priority": 1,
"status": "active",
"created": "2026-06-21T12:00:00Z",
"updated": "2026-06-21T12:00:00Z"
}
Was this page helpful?
⌘I