Skip to main content
POST
/
v1
/
positions
Create a position
curl --request POST \
  --url https://api.plane.com/v1/positions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "plan": "<string>",
  "location": {},
  "employer": {},
  "starts": "<string>",
  "ends": "<string>",
  "compensation": {}
}
'
{
  "name": "Canada employee hire",
  "plan": "wfp_R8mK2pQ9xL4s",
  "location": { "country": "CA", "subdivision": "ON" },
  "employer": { "type": "employee" },
  "starts": "2026-09-01",
  "compensation": {
    "amount": "120000.00",
    "currency": "CAD",
    "unit": "year",
    "basis": "regular",
    "frequency": "monthly",
    "source": { "type": "manual" }
  }
}
Use positions as the rows inside a workforce plan. Employee positions include payroll-backed employment costs; contractor positions include contractor pay.

Parameters

name
string
Optional display name for the planned seat.
plan
string
Workforce plan ID.
location
object
required
Position location.
employer
object
required
Employer model for the position. Supported types are employee and contractor.
starts
string
required
Position start date.
ends
string
Position end date.
compensation
object
required
Compensation input for the position.

Returns

Returns the created Position object.
{
  "name": "Canada employee hire",
  "plan": "wfp_R8mK2pQ9xL4s",
  "location": { "country": "CA", "subdivision": "ON" },
  "employer": { "type": "employee" },
  "starts": "2026-09-01",
  "compensation": {
    "amount": "120000.00",
    "currency": "CAD",
    "unit": "year",
    "basis": "regular",
    "frequency": "monthly",
    "source": { "type": "manual" }
  }
}