Skip to main content
POST
/
v1
/
leave-entitlements
Create a leave entitlement
curl --request POST \
  --url https://api.plane.com/v1/leave-entitlements \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "worker": "<string>",
  "policy": "<string>",
  "starts": "<string>",
  "ends": "<string>",
  "overrides": {}
}
'
import requests

url = "https://api.plane.com/v1/leave-entitlements"

payload = {
"worker": "<string>",
"policy": "<string>",
"starts": "<string>",
"ends": "<string>",
"overrides": {}
}
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>',
policy: '<string>',
starts: '<string>',
ends: '<string>',
overrides: {}
})
};

fetch('https://api.plane.com/v1/leave-entitlements', 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/leave-entitlements",
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>',
'policy' => '<string>',
'starts' => '<string>',
'ends' => '<string>',
'overrides' => [

]
]),
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/leave-entitlements"

payload := strings.NewReader("{\n \"worker\": \"<string>\",\n \"policy\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"overrides\": {}\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/leave-entitlements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"worker\": \"<string>\",\n \"policy\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"overrides\": {}\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.plane.com/v1/leave-entitlements")

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 \"policy\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"overrides\": {}\n}"

response = http.request(request)
puts response.read_body

Parameters

worker
string
required
ID of the worker receiving the policy.
policy
string
required
ID of the leave policy to assign.
starts
string
Date when the entitlement begins. Defaults to today.
ends
string
Optional date when the entitlement ends.
overrides
object
Optional sparse policy overrides for this worker.

Returns

Returns the created Leave Entitlement object.