Working with Countries
The /countries
API enables you to retrieve essential information about countries where Remote operates, including policies, holidays, form requirements and more. It supports global expansion workflows by returning country-specific data needed for onboarding, compliance, and operational readiness.
List all supported countries
Remote supports over 190 countries, with a few exclusions. You can retrieve a list of all supported countries for employment or contractor engagement by calling the List Countries endpoint. For a successful call, you only need to provide a valid bearer token and the response will be a list as follows:
{
"data": [
{
"code": "ALA",
"name": "Åland Islands",
"region": "Europe",
"subregion": "Northern Europe",
"alpha_2_code": "AX",
"eor_onboarding": false,
"country_subdivisions": [],
"supported_json_schemas": []
},
{
"code": "ALB",
"name": "Albania",
"region": "Europe",
"subregion": "Southern Europe",
"alpha_2_code": "AL",
"eor_onboarding": true,
"locked_benefits": "after_first_hire",
"country_subdivisions": [
{
"code": "AL-10",
"name": "Shkoder",
"subdivision_type": "County"
},
{
"code": "AL-11",
"name": "Tirane",
"subdivision_type": "County"
},
...
}
...
]
}
In this response, you have the following important fields:
code
: ISO country code.name
: Full name of the country.region
: Geographic region where the country lies.subregion
: Subregion of the country for finer categorization.alpha_2_code
: ISO alpha-2 code of the country.eor_onboarding
: A boolean that indicates whether Remote supports EOR onboarding in this country.locked_benefits
: Shows benefit availability and locking behavior. Possible values are:no
: Indicates benefits are not locked, meaning different employees can have different benefit packages.after_first_hire
: Indicates benefits are locked after the first employee is hired in that country.no_benefits_available
: Indicates that no benefits are available for this country.
ℹ️ If a country has
no_benefits_available
, it might be because Remote has not yet hired in that country.supported_json_schemas
: A list of JSON schema identifiers, used for dynamically rendering country-specific forms (e.g. for onboarding or compliance). You will get an empty array if no forms apply to the country.
Get public holidays by country
To list down official public holidays for a given country and year, use the List all holidays endpoint. To make the call, you need to provide country_code
and year
for which you want to retrieve the holiday list. Additionally, you can also provide a country_subdivision_code
to filter the results by a specific subdivision.
The following response shows all public holidays listed in USA for the year 2024.
{
"data": [
{
"name": "New Year's Day",
"day": "2024-01-01",
"note": null,
"observed_day": "2024-01-01"
},
{
"name": "Martin Luther King Jr. Day",
"day": "2024-01-15",
"note": null,
"observed_day": "2024-01-15"
},
{
"name": "Memorial Day",
"day": "2024-05-27",
"note": null,
"observed_day": "2024-05-27"
},
{
"name": "Juneteenth National Independence Day",
"day": "2024-06-19",
"note": null,
"observed_day": "2024-06-19"
},
{
"name": "Independence Day",
"day": "2024-07-04",
"note": null,
"observed_day": "2024-07-04"
},
{
"name": "Labor Day",
"day": "2024-09-02",
"note": null,
"observed_day": "2024-09-02"
},
{
"name": "Veterans Day",
"day": "2024-11-11",
"note": null,
"observed_day": "2024-11-11"
},
{
"name": "Thanksgiving Day",
"day": "2024-11-28",
"note": null,
"observed_day": "2024-11-28"
},
{
"name": "Christmas Day",
"day": "2024-12-25",
"note": null,
"observed_day": "2024-12-25"
}
]
}
Get form schema for a country
Use the Show form schema endpoint to get the onboarding form fields specific to a country. This form schema helps ensure all required fields are collected based on local regulations. You need to provide the country_code
and the name of schema form
that you are interested in. Possible form names are:
address_details
: collects residential/work address of the employee.administrative_details
: gathers internal or administrative setup information for employment.bank_account_details
: captures the bank account info used for salary or contractor payments.employment_basic_information
: inclides core employment details like job titles, start date, and working hours, etc.billing_address_details
: specifies the address to be used for invoicing or financial records.contract_details
: contains contract-specific terms such as employment type, duration, and compensation, etc.emergency_contact
: provides contract details of a person to notify in case of an emergency.employment_document_details
: provides fields containing documentation such as ID uploads, work permits, etc.personal_details
: provides basic personal data like full name, date of birth, nationality, etc.pricing_plan_details
: provides fields related to selected pricing plans or billing packages for the employment setup.global_payroll_administrative_details
: provides administrative setup details specifically for Global Payroll employees.global_payroll_contract_details
: provides personal data collected under the Global Payroll workflow.global_payroll_personal_details
: provides personal data collected under the Global Payroll workflow.benefit_renewal_request
: provides information required to review or renew employee benefit plans.
Now, let's say you want to get information about hiring contractors in Indonesia, you can customize your call to get the JSON schema that you can refer to for easier employment.
{
"data": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"work_schedule": {
"const": "full_time"
}
},
"required": [
"work_schedule"
]
},
"then": {
"properties": {
"annual_gross_salary": {
"minimum": 6476112000,
"x-jsf-errorMessage": {
"minimum": "In Indonesia, full-time employees are entitled to a minimum annual salary of IDR 64,761,120.00."
}
}
}
}
},
{
"else": {
"properties": {
"contract_end_date": false
}
},
"if": {
"properties": {
"contract_duration_type": {
"const": "fixed_term"
}
},
"required": [
"contract_duration_type"
]
},
"then": {
"properties": {
"contract_end_date": {
"type": [
"string"
]
}
},
"required": [
"contract_end_date"
]
}
},
{
"else": {
"properties": {
"bonus_amount": false,
"bonus_details": false
}
},
...
Updated 31 minutes ago