Remote
App · Jobs & Hiring · 20 actions
Work with your people on Remote: find employees and contractors, record and answer time off, check leave balances and public holidays, and approve or decline expenses.
Actions
| Action | What it does |
|---|---|
| Approve time off | Approve a time off request an employee made in Remote. |
| Cancel time off | Cancel time off that was already approved. |
| Create department | Add a department to the company. |
| Decline time off | Decline a time off request an employee made in Remote. |
| Get connected account | Get the company this connection belongs to and the admin whose API token it uses, and whether it is a sandbox. |
| Get employment | Get one person's employment in full: job, manager, start date, status, and the personal, address and contract details Remote holds (which fields there are depends on the country). |
| Get expense | Get one expense: who, what for, how much and its status. |
| Get leave balances | Get how much leave an employee has left, has booked and has taken, for each of their leave policies. |
| Get time off | Get one time off: who, when, what kind and its status. |
| List company managers | Get everyone who manages the company in Remote (owners, admins and managers) with their user ids, which approvals are recorded under. |
| List countries | Get every country Remote works in, with its three-letter code (what List country holidays takes), region and states or provinces. |
| List country holidays | Get a country's public holidays in a year, optionally for one state or province. |
| List departments | Get every department in the company. |
| List employments | Find the company's people (employees and contractors), by name, email, status, type or model, a page at a time. |
| List expenses | Find expenses employees submitted, newest first, optionally only those in one status (e.g. Pending, to review) or one person's. Amounts are in cents, with a decimal copy for display. |
| List leave policies | Get the leave policies an employee can book time off against, with the ids Record approved time off takes. |
| List time off | Find time off across the company, or one person's, by status, type or dates. |
| List time off types | Get the kinds of leave Remote knows, for employees or contractors, with what each is for. |
| Record approved time off | Book time off for an employee that is already approved, e.g. leave agreed outside Remote. |
| Review expense | Approve or decline an expense an employee submitted. |
Approve time off
Approve a time off request an employee made in Remote. Only requests waiting for approval (status Requested) can be approved.
Inputs
- Time off
timeoff_idtextRequired - The time off request. Use one from an earlier step or List time off.
- Approver
approver_idtext - The company manager the approval is recorded under. Leave it empty for the admin who made the API token.
Outputs
approved_attext- When it was approved (ISO 8601).
approver_idtext- The user id of whoever approved it.
automatictrue/false- True when Remote made it (e.g. a public holiday).
cancel_reasontext- Why it was cancelled.
cancelled_attext- When it was cancelled.
employment_idtext- The employment it belongs to.
end_datetext- The last day (YYYY-MM-DD).
idtext- The time off's id.
leave_policyobject- The leave policy it is booked against.
leave_policy_variant_idtext- The leave policy's id.
notestext- Notes on it.
start_datetext- The first day (YYYY-MM-DD).
statustext- requested, approved, taken, declined, cancelled or cancel_requested.
timeoff_dayslist- Each day, with the time taken that day.
timeoff_typetext- The kind of leave, e.g. paid_time_off, sick_leave.
timezonetext- The time zone the dates are in.
total_minutesnumber- The total time off, in minutes.
Example output
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": null,
"cancelled_at": null,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "approved",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}Cancel time off
Cancel time off that was already approved.
Inputs
- Time off
timeoff_idtextRequired - The approved time off. Use one from an earlier step or List time off.
- Reason
cancel_reasontextRequired - Why it is cancelled.
Outputs
approved_attext- When it was approved (ISO 8601).
approver_idtext- The user id of whoever approved it.
automatictrue/false- True when Remote made it (e.g. a public holiday).
cancel_reasontext- Why it was cancelled.
cancelled_attext- When it was cancelled.
employment_idtext- The employment it belongs to.
end_datetext- The last day (YYYY-MM-DD).
idtext- The time off's id.
leave_policyobject- The leave policy it is booked against.
leave_policy_variant_idtext- The leave policy's id.
notestext- Notes on it.
start_datetext- The first day (YYYY-MM-DD).
statustext- requested, approved, taken, declined, cancelled or cancel_requested.
timeoff_dayslist- Each day, with the time taken that day.
timeoff_typetext- The kind of leave, e.g. paid_time_off, sick_leave.
timezonetext- The time zone the dates are in.
total_minutesnumber- The total time off, in minutes.
Example output
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": "Plans changed",
"cancelled_at": "2026-09-29T09:00:00",
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "cancelled",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}Create department
Add a department to the company. Remote allows two departments with the same name, and departments can't be renamed or deleted through the API, so check List departments first.
Inputs
- Name
nametextRequired - The department's name, up to 255 characters.
Outputs
company_idtext- The company's id.
idtext- The department's id.
nametext- The department's name.
Example output
{
"company_id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"id": "2e4f6a8c-0b1d-4c3e-9f5a-7b9d1e3f5a7c",
"name": "Engineering"
}Decline time off
Decline a time off request an employee made in Remote. Only requests waiting for approval (status Requested) can be declined.
Inputs
- Time off
timeoff_idtextRequired - The time off request. Use one from an earlier step or List time off.
- Reason
decline_reasontext - Why, shown to the employee.
Outputs
approved_attext- When it was approved (ISO 8601).
approver_idtext- The user id of whoever approved it.
automatictrue/false- True when Remote made it (e.g. a public holiday).
cancel_reasontext- Why it was cancelled.
cancelled_attext- When it was cancelled.
employment_idtext- The employment it belongs to.
end_datetext- The last day (YYYY-MM-DD).
idtext- The time off's id.
leave_policyobject- The leave policy it is booked against.
leave_policy_variant_idtext- The leave policy's id.
notestext- Notes on it.
start_datetext- The first day (YYYY-MM-DD).
statustext- requested, approved, taken, declined, cancelled or cancel_requested.
timeoff_dayslist- Each day, with the time taken that day.
timeoff_typetext- The kind of leave, e.g. paid_time_off, sick_leave.
timezonetext- The time zone the dates are in.
total_minutesnumber- The total time off, in minutes.
Example output
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": null,
"cancelled_at": null,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "declined",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}Get connected account
Get the company this connection belongs to and the admin whose API token it uses, and whether it is a sandbox.
Inputs
None.
Outputs
companyobject- The company the token belongs to.
company_idtext- The company's id.
environmenttext- sandbox for a sandbox token, live otherwise.
userobject- The admin who generated the token.
user_idtext- The token owner's user id.
Example output
{
"company": {
"id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"name": "Acme Ltd"
},
"company_id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"environment": "live",
"user": {
"email": "jo@example.com",
"id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"name": "Jo Admin",
"status": "active"
},
"user_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e"
}Get employment
Get one person's employment in full: job, manager, start date, status, and the personal, address and contract details Remote holds (which fields there are depends on the country).
Inputs
- Employee
employment_idtextRequired - The person. Pick one, or use an employment id from an earlier step or a Remote link.
- Include files
include_filestrue/false - Also list their files (contracts, IDs, ...).Default:
false.
Outputs
address_detailsobject- Home address; fields vary by country.
company_idtext- The company's id.
contract_detailsobject- Contract terms; fields vary by country.
countryobject- The country they work in.
created_attext- When the employment was created (ISO 8601).
departmentobject- Their department.
department_idtext- Their department's id.
employment_lifecycle_stagetext- e.g. onboarded, contract_signing.
employment_modeltext- eor, peo or global_payroll.
external_idtext- Your own id for them, if set.
full_nametext- The person's name.
idtext- The employment's id, which the time off and leave actions take.
job_titletext- Their job title.
login_emailtext- The email address they sign in to Remote with.
managertext- Their manager's name.
manager_emailtext- Their manager's email address.
manager_employment_idtext- Their manager's employment id.
personal_detailsobject- Personal details; fields vary by country.
personal_emailtext- Their personal email address.
probation_period_end_datetext- When their probation ends.
provisional_start_datetext- Their planned start date.
seniority_datetext- The date their seniority counts from.
short_idtext- Remote's short reference for them.
statustext- e.g. active, invited, offboarding, archived.
termination_datetext- Their last day, once offboarded.
typetext- employee, contractor, direct_employee or global_payroll_employee.
updated_attext- When it last changed (ISO 8601).
user_statustext- Their Remote account: active, invited, inactive, ...
work_emailtext- Their work email address.
Example output
{
"address_details": {},
"company_id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"contract_details": {},
"country": {
"code": "PRT",
"name": "Portugal"
},
"created_at": "2025-01-10T09:00:00Z",
"department": null,
"department_id": null,
"employment_lifecycle_stage": "onboarded",
"employment_model": "eor",
"external_id": null,
"full_name": "Ana Silva",
"id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"job_title": "Senior Engineer",
"login_email": "ana.silva@example.com",
"manager": "Jo Admin",
"manager_email": "jo@example.com",
"manager_employment_id": null,
"personal_details": {},
"personal_email": "ana@example.org",
"probation_period_end_date": "2025-08-03",
"provisional_start_date": "2025-02-03",
"seniority_date": "2025-02-03",
"short_id": "AB12CD",
"status": "active",
"termination_date": null,
"type": "employee",
"updated_at": "2026-09-01T12:00:00Z",
"user_status": "active",
"work_email": "ana.silva@example.com"
}Get expense
Get one expense: who, what for, how much and its status.
Inputs
- Expense
expense_idtextRequired - The expense. Use one from an earlier step or List expenses.
Outputs
amountnumber- The amount, in cents.
amount_decimalnumber- The amount in the currency's main unit, e.g. 12.5.
categorytext- The legacy category, kept for old expenses.
converted_amountnumber- The amount in the company's billing currency, in cents.
converted_amount_decimalnumber- The amount in the billing currency's main unit.
converted_currencyobject- The currency.
currencyobject- The currency.
employment_idtext- The employment it belongs to.
expense_categoryobject- Its category.
expense_datetext- When it was spent (YYYY-MM-DD).
idtext- The expense's id.
invoice_periodtext- The payroll period it is paid in (YYYY-MM).
notestext- Notes.
reasontext- Why it was declined.
reviewed_attext- When it was reviewed.
reviewerobject- Who reviewed it.
statustext- pending, approved, declined, processing, reimbursed, canceled, draft or archived.
tax_amountnumber- The tax part, in cents.
tax_amount_decimalnumber- The tax part in the currency's main unit.
titletext- What it was for.
Example output
{
"amount": 4250,
"amount_decimal": 42.5,
"category": null,
"converted_amount": 4600,
"converted_amount_decimal": 46.0,
"converted_currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"currency": {
"code": "EUR",
"name": "Euro",
"symbol": "\u20ac"
},
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"expense_category": {
"code": "travel.transport",
"slug": "transport",
"title": "Transport"
},
"expense_date": "2026-09-20",
"id": "e1d2c3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",
"invoice_period": null,
"notes": null,
"reason": null,
"reviewed_at": null,
"reviewer": null,
"status": "pending",
"tax_amount": 0,
"tax_amount_decimal": 0.0,
"title": "Train to client office"
}Get leave balances
Get how much leave an employee has left, has booked and has taken, for each of their leave policies.
Inputs
- Employee
employment_idtextRequired - The employee. Pick one, or use an employment id from an earlier step.
Outputs
balanceslist- The balances, one per policy.
countnumber- How many balances, one per policy came back.
employment_idtext- The employment.
Example output
{
"balances": [
{
"annual_balance": {
"days": 18,
"hours": 0,
"type": "limited"
},
"annual_entitlement": {
"days": 22,
"hours": 0,
"type": "limited"
},
"balance": {
"days": 18,
"hours": 0,
"type": "limited"
},
"booked": {
"days": 4,
"hours": 0,
"type": "limited"
},
"current_entitlement": {
"days": 22,
"hours": 0,
"type": "limited"
},
"leave_policy": {
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"leave_type": "paid_time_off",
"name": "Paid time off",
"unit": "days"
},
"pending_approval": {
"days": 0,
"hours": 0,
"type": "limited"
},
"taken": {
"days": 3,
"hours": 0,
"type": "limited"
},
"upcoming_approved": {
"days": 1,
"hours": 0,
"type": "limited"
},
"upcoming_requested": {
"days": 0,
"hours": 0,
"type": "limited"
},
"used": {
"days": 4,
"hours": 0,
"type": "limited"
},
"working_hours_per_day": 8
},
{
"annual_balance": {
"type": "unlimited"
},
"annual_entitlement": {
"type": "unlimited"
},
"balance": {
"type": "unlimited"
},
"booked": {
"days": 0,
"hours": 0,
"type": "limited"
},
"current_entitlement": {
"type": "unlimited"
},
"leave_policy": {
"leave_policy_variant_id": "sick_leave",
"leave_type": "sick_leave",
"name": "Sick leave",
"unit": "unlimited"
},
"pending_approval": {
"days": 0,
"hours": 0,
"type": "limited"
},
"taken": {
"days": 0,
"hours": 0,
"type": "limited"
},
"upcoming_approved": {
"days": 0,
"hours": 0,
"type": "limited"
},
"upcoming_requested": {
"days": 0,
"hours": 0,
"type": "limited"
},
"used": {
"days": 0,
"hours": 0,
"type": "limited"
},
"working_hours_per_day": 8
}
],
"count": 2,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8"
}Get time off
Get one time off: who, when, what kind and its status.
Inputs
- Time off
timeoff_idtextRequired - The time off. Use one from an earlier step or List time off.
Outputs
approved_attext- When it was approved (ISO 8601).
approver_idtext- The user id of whoever approved it.
automatictrue/false- True when Remote made it (e.g. a public holiday).
cancel_reasontext- Why it was cancelled.
cancelled_attext- When it was cancelled.
employment_idtext- The employment it belongs to.
end_datetext- The last day (YYYY-MM-DD).
idtext- The time off's id.
leave_policyobject- The leave policy it is booked against.
leave_policy_variant_idtext- The leave policy's id.
notestext- Notes on it.
start_datetext- The first day (YYYY-MM-DD).
statustext- requested, approved, taken, declined, cancelled or cancel_requested.
timeoff_dayslist- Each day, with the time taken that day.
timeoff_typetext- The kind of leave, e.g. paid_time_off, sick_leave.
timezonetext- The time zone the dates are in.
total_minutesnumber- The total time off, in minutes.
Example output
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": null,
"cancelled_at": null,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "approved",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}List company managers
Get everyone who manages the company in Remote (owners, admins and managers) with their user ids, which approvals are recorded under.
Inputs
None.
Outputs
countnumber- How many managers came back.
managerslist- The managers.
Example output
{
"count": 1,
"managers": [
{
"company_id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"role": "admin",
"user_email": "jo@example.com",
"user_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"user_name": "Jo Admin"
}
]
}List countries
Get every country Remote works in, with its three-letter code (what List country holidays takes), region and states or provinces.
Inputs
None.
Outputs
countnumber- How many countries came back.
countrieslist- The countries.
Example output
{
"count": 1,
"countries": [
{
"alpha_2_code": "PT",
"code": "PRT",
"country_subdivisions": [],
"eor_onboarding": true,
"name": "Portugal",
"region": "Europe",
"subregion": "Southern Europe"
}
]
}List country holidays
Get a country's public holidays in a year, optionally for one state or province.
Inputs
- Country
country_codetextRequired - The country. Pick one, or give its three-letter code, e.g. PRT or USA.
- Year
yearnumber - The year. Leave it empty for this year.From 1900 to 2100.
- State or province
country_subdivision_codetext - Only for this state or province, by its ISO 3166-2 code, e.g. US-CA. List countries gives the codes.
Outputs
countnumber- How many holidays came back.
country_codetext- The country's three-letter code.
holidayslist- The holidays.
yearnumber- The year.
Example output
{
"count": 1,
"country_code": "PRT",
"holidays": [
{
"day": "2026-12-25",
"name": "Christmas Day",
"note": null,
"observed_day": null
}
],
"year": 2026
}List departments
Get every department in the company.
Inputs
None.
Outputs
countnumber- How many departments came back.
departmentslist- The departments.
Example output
{
"count": 1,
"departments": [
{
"company_id": "0c8b9a3e-7d1f-4b2a-9e6c-5f4d3c2b1a00",
"id": "2e4f6a8c-0b1d-4c3e-9f5a-7b9d1e3f5a7c",
"name": "Engineering"
}
]
}List employments
Find the company's people (employees and contractors), by name, email, status, type or model, a page at a time.
Inputs
- Name
nametext - Only people whose name contains these words.
- Email
emailtext - Only the person with this email.
- Statuses
statuseslist - Only people in these statuses. Leave empty for all.One or more of:
active,created,pre_hire(Pre-hire),created_awaiting_reserve(Created, awaiting reserve),created_reserve_paid(Created, reserve paid),initiated,invited,pending,review(In review),job_title_review(Job title review), and 5 more. - Type
employment_typetext - Only employees, or only contractors, and so on.One of:
employee,contractor,direct_employee(Direct employee),global_payroll_employee(Global Payroll employee). - Employment model
employment_modeltext - Only people employed this way.One of:
eor(Employer of Record (EOR)),peo,global_payroll(Global Payroll). - Page
pagenumber - Which page of people to get. Page 1 is the first.At least 1. Default:
1. - Per page
page_sizenumber - How many people per page, up to 100.From 1 to 100. Default:
20.
Outputs
countnumber- How many employments came back.
current_pagenumber- This page's number.
employmentslist- The employments.
total_countnumber- How many employments match, on every page.
total_pagesnumber- How many pages there are.
Example output
{
"count": 1,
"current_page": 1,
"employments": [
{
"country": {
"code": "PRT",
"name": "Portugal"
},
"department": null,
"department_id": null,
"employment_lifecycle_stage": "onboarded",
"employment_model": "eor",
"external_id": null,
"full_name": "Ana Silva",
"id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"job_title": "Senior Engineer",
"login_email": "ana.silva@example.com",
"personal_email": "ana@example.org",
"short_id": "AB12CD",
"status": "active",
"type": "employee",
"work_email": "ana.silva@example.com"
}
],
"total_count": 1,
"total_pages": 1
}List expenses
Find expenses employees submitted, newest first, optionally only those in one status (e.g. Pending, to review) or one person's. Amounts are in cents, with a decimal copy for display.
Inputs
- Status
statustext - Only in this status.One of:
pending,approved,declined,processing,reimbursed,canceled,draft,archived. - Employee
employment_idtext - Only this person's expenses.
- Maximum expenses
limitnumber - How many expenses to get, up to 500.From 1 to 500. Default:
50.
Outputs
countnumber- How many expenses came back.
expenseslist- The expenses.
has_moretrue/false- True when more expenses match than came back.
total_countnumber- How many expenses the company has, before filtering.
Example output
{
"count": 1,
"expenses": [
{
"amount": 4250,
"amount_decimal": 42.5,
"category": null,
"converted_amount": 4600,
"converted_amount_decimal": 46.0,
"converted_currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"currency": {
"code": "EUR",
"name": "Euro",
"symbol": "\u20ac"
},
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"expense_category": {
"code": "travel.transport",
"slug": "transport",
"title": "Transport"
},
"expense_date": "2026-09-20",
"id": "e1d2c3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",
"invoice_period": null,
"notes": null,
"reason": null,
"reviewed_at": null,
"reviewer": null,
"status": "pending",
"tax_amount": 0,
"tax_amount_decimal": 0.0,
"title": "Train to client office"
}
],
"has_more": false,
"total_count": 1
}List leave policies
Get the leave policies an employee can book time off against, with the ids Record approved time off takes.
Inputs
- Employee
employment_idtextRequired - The employee. Pick one, or use an employment id from an earlier step.
Outputs
countnumber- How many leave policies came back.
employment_idtext- The employment.
leave_policieslist- The leave policies.
Example output
{
"count": 1,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"leave_policies": [
{
"custom": false,
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"name": "Paid time off",
"uses_accrual_as_balance": false
}
]
}List time off
Find time off across the company, or one person's, by status, type or dates. With both dates, you get time off that overlaps them.
Inputs
- Employee
employment_idtext - Only this person's time off.
- Status
statustext - Only in this status.One of:
requested,approved,taken,declined,cancelled,cancel_requested(Cancellation requested). - Type
timeoff_typetext - Only of this type.One of:
time_off(Time off),paid_time_off(Paid time off),sick_leave(Sick leave),public_holiday(Public holiday),unpaid_leave(Unpaid leave),extended_leave(Extended leave),in_lieu_time(In lieu time),maternity_leave(Maternity leave),paternity_leave(Paternity leave),parental_leave(Parental leave), and 38 more. - From
start_datedate - From this day.
- To
end_datedate - Up to this day.
- Sort by
sort_bytext - What to sort by.One of:
timeoff_type(Type),status. - Order
ordertext - Sort order.One of:
desc(Newest first),asc(Oldest first). - Page
pagenumber - Which page of time off records to get. Page 1 is the first.At least 1. Default:
1. - Per page
page_sizenumber - How many time off records per page, up to 100.From 1 to 100. Default:
20.
Outputs
countnumber- How many time off records came back.
current_pagenumber- This page's number.
timeoffslist- The time off records.
total_countnumber- How many time off records match, on every page.
total_pagesnumber- How many pages there are.
Example output
{
"count": 1,
"current_page": 1,
"timeoffs": [
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": null,
"cancelled_at": null,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "approved",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}
],
"total_count": 1,
"total_pages": 1
}List time off types
Get the kinds of leave Remote knows, for employees or contractors, with what each is for.
Inputs
- For
worker_typetext - Whose types.One of:
full_time(Employees),contractor. Default:full_time.
Outputs
countnumber- How many types came back.
timeoff_typeslist- The types.
worker_typetext- full_time or contractor.
Example output
{
"count": 1,
"timeoff_types": [
{
"description": "Time off when ill.",
"name": "sick_leave"
}
],
"worker_type": "full_time"
}Record approved time off
Book time off for an employee that is already approved, e.g. leave agreed outside Remote. Remote's API can't create a time off request for someone to approve. Book it against one of the employee's leave policies, or by type for employees on older plans.
Inputs
- Employee
employment_idtextRequired - The employee. Pick one, or use an employment id from an earlier step.
- First day
start_datedateRequired - The first day off.
- Last day
end_datedate - The last day off. Leave it empty for a single day.
- Leave policy
leave_policytext - The leave policy to book against. Pick one of the employee's, or leave it empty and pick a type.
- Type
timeoff_typetext - The kind of leave, for employees without leave policies. Leave it empty when you picked a leave policy.One of:
time_off(Time off),paid_time_off(Paid time off),sick_leave(Sick leave),public_holiday(Public holiday),unpaid_leave(Unpaid leave),extended_leave(Extended leave),in_lieu_time(In lieu time),maternity_leave(Maternity leave),paternity_leave(Paternity leave),parental_leave(Parental leave), and 8 more. - Hours per day
hours_per_daynumber - Hours off on each day, e.g. 8 for full days or 4 for half days.From 1 to 24. Default:
8. - Skip weekends
skip_weekendstrue/false - Count Saturdays and Sundays as zero hours.Default:
true. - Time zone
timezonetext - The time zone the days are in, e.g. Europe/Lisbon.Default:
Etc/UTC. - Notes
notestext - A note on the time off.
- Approver
approver_idtext - The company manager the approval is recorded under. Leave it empty for the admin who made the API token.
- Approved at
approved_atdate and time - When it was approved. Leave it empty for now.
Outputs
approved_attext- When it was approved (ISO 8601).
approver_idtext- The user id of whoever approved it.
automatictrue/false- True when Remote made it (e.g. a public holiday).
cancel_reasontext- Why it was cancelled.
cancelled_attext- When it was cancelled.
employment_idtext- The employment it belongs to.
end_datetext- The last day (YYYY-MM-DD).
idtext- The time off's id.
leave_policyobject- The leave policy it is booked against.
leave_policy_variant_idtext- The leave policy's id.
notestext- Notes on it.
start_datetext- The first day (YYYY-MM-DD).
statustext- requested, approved, taken, declined, cancelled or cancel_requested.
timeoff_dayslist- Each day, with the time taken that day.
timeoff_typetext- The kind of leave, e.g. paid_time_off, sick_leave.
timezonetext- The time zone the dates are in.
total_minutesnumber- The total time off, in minutes.
Example output
{
"approved_at": "2026-09-28T10:00:00Z",
"approver_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"automatic": false,
"cancel_reason": null,
"cancelled_at": null,
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"end_date": "2026-10-05",
"id": "9d8c7b6a-5f4e-4d3c-b2a1-0f9e8d7c6b5a",
"leave_policy": {
"leave_policy_variant_slug": "paid-time-off",
"leave_type": "paid_time_off",
"name": "Paid time off"
},
"leave_policy_variant_id": "5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d",
"notes": "Dentist",
"start_date": "2026-10-05",
"status": "approved",
"timeoff_days": [
{
"day": "2026-10-05",
"hours": 8,
"minutes": 480
}
],
"timeoff_type": "paid_time_off",
"timezone": "Etc/UTC",
"total_minutes": 480
}Review expense
Approve or decline an expense an employee submitted. Only pending expenses can be reviewed; declining needs a reason, which the employee sees.
Inputs
- Expense
expense_idtextRequired - The pending expense. Use one from an earlier step or List expenses.
- Decision
decisiontextRequired - Approve or decline it.One of:
approved(Approve),declined(Decline). - Reason
reasontext - Why it is declined. Required when declining.
Outputs
amountnumber- The amount, in cents.
amount_decimalnumber- The amount in the currency's main unit, e.g. 12.5.
categorytext- The legacy category, kept for old expenses.
converted_amountnumber- The amount in the company's billing currency, in cents.
converted_amount_decimalnumber- The amount in the billing currency's main unit.
converted_currencyobject- The currency.
currencyobject- The currency.
employment_idtext- The employment it belongs to.
expense_categoryobject- Its category.
expense_datetext- When it was spent (YYYY-MM-DD).
idtext- The expense's id.
invoice_periodtext- The payroll period it is paid in (YYYY-MM).
notestext- Notes.
reasontext- Why it was declined.
reviewed_attext- When it was reviewed.
reviewerobject- Who reviewed it.
statustext- pending, approved, declined, processing, reimbursed, canceled, draft or archived.
tax_amountnumber- The tax part, in cents.
tax_amount_decimalnumber- The tax part in the currency's main unit.
titletext- What it was for.
Example output
{
"amount": 4250,
"amount_decimal": 42.5,
"category": null,
"converted_amount": 4600,
"converted_amount_decimal": 46.0,
"converted_currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"currency": {
"code": "EUR",
"name": "Euro",
"symbol": "\u20ac"
},
"employment_id": "3f9a1c2e-5b7d-4e8f-a1b2-c3d4e5f6a7b8",
"expense_category": {
"code": "travel.transport",
"slug": "transport",
"title": "Transport"
},
"expense_date": "2026-09-20",
"id": "e1d2c3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",
"invoice_period": null,
"notes": null,
"reason": null,
"reviewed_at": "2026-09-28",
"reviewer": {
"user_email": "jo@example.com",
"user_id": "7b2d4f6a-1c3e-4a5b-8d9f-0e1a2b3c4d5e",
"user_name": "Jo Admin"
},
"status": "approved",
"tax_amount": 0,
"tax_amount_decimal": 0.0,
"title": "Train to client office"
}