Skip to main content
POST
/
v1
/
leaves
Create a leave
curl --request POST \
  --url https://api.plane.com/v1/leaves \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "worker": "<string>",
  "type": "<string>",
  "dates": [
    {}
  ],
  "note": "<string>"
}
'
{
  "id": "lv_1HPCXADYAhh5k1NMU0r1WUqs",
  "status": "approved",
  "type": "vacation",
  "worker": "wr_CgcLakmx4guire",
  "starts": "2026-04-14",
  "ends": "2026-04-16",
  "days": 2.5,
  "hours": 20,
  "schedule": {
    "2026-04-14": 8,
    "2026-04-15": 8,
    "2026-04-16": 4
  },
  "note": "Imported from HRIS",
  "request": {
    "id": "lvr_6r3wLwX44s0Ak0bDkP5n2r7Q",
    "status": "approved",
    "created": "2026-03-10T18:42:11Z",
    "updated": "2026-03-10T18:42:11Z"
  },
  "created": "2026-03-10T18:42:11Z",
  "updated": "2026-03-10T18:42:11Z"
}
Use this endpoint when time off is already approved and you want Plane to record it directly for balances, scheduling, or payroll calculations. For request workflows that still need review, use Create a leave request.

Parameters

worker
string
required
ID of the worker the leave belongs to.
type
string
required
Leave type for the leave.
dates
array
required
List of ISO 8601 leave dates covered by the leave.
note
string
Optional note attached to the leave.

Returns

Returns the created Leave object.
{
  "id": "lv_1HPCXADYAhh5k1NMU0r1WUqs",
  "status": "approved",
  "type": "vacation",
  "worker": "wr_CgcLakmx4guire",
  "starts": "2026-04-14",
  "ends": "2026-04-16",
  "days": 2.5,
  "hours": 20,
  "schedule": {
    "2026-04-14": 8,
    "2026-04-15": 8,
    "2026-04-16": 4
  },
  "note": "Imported from HRIS",
  "request": {
    "id": "lvr_6r3wLwX44s0Ak0bDkP5n2r7Q",
    "status": "approved",
    "created": "2026-03-10T18:42:11Z",
    "updated": "2026-03-10T18:42:11Z"
  },
  "created": "2026-03-10T18:42:11Z",
  "updated": "2026-03-10T18:42:11Z"
}