API documentation

Whether you're building a custom integration or pulling data into your internal tools, this guide will give you the resources to get started with using JOIN's API.

Get started

This reference helps you implement the RESTful JOIN API v2. The API allows you to interact with your JOIN data programmatically – for example, to fetch job listings, retrieve applications, or manage candidate records.

The JOIN API is stateless, meaning each request must include authentication and does not rely on prior interactions. To use the API, you’ll need to generate an API token from your JOIN account.

Read full API documentation


Authentication

To validate your API requests, JOIN requires an API token. This token identifies you and links actions performed via the API to your JOIN account.

Generating an API token

  1. Go to User Settings in your JOIN account

  2. Click API Credentials

  3. Click Generate new Token

Using the API token

You must include your token in the Authorization header of every API request.

Example request:

curl -X GET \
  https://api.join.com/v2/jobs \
  -H 'Authorization: your-api-token-here'

Revoking the API token

You can revoke a token at any time in the API Credentials section of your account. Keep in mind that:

  • Once revoked, the token can no longer be used

  • Tokens cannot be reactivated or regenerated

  • You must update your integration with a new token if one is revoked


Available API resources

JOIN’s API v2 gives you access to various key areas of your recruitment data. Below is a list of available endpoints grouped by category. These endpoints allow you to fetch or manage data, depending on your integration needs.

Click on the provided 'Read more' links to read the full technical documentation:

Jobs

Endpoint
Description

Create job

Create a new job and publish it on JOIN Read more

Get all jobs

Retrieve a list of all jobs Read more

Get job

Fetch detailed information about a single job Read more

Update job

Update an existing job Read more

Update a job status

Modify the status of a job (e.g. published, closed) Read more

Activate job

Activate a job that is currently inactive Read more

Archive job

Archive a job so it no longer appears as active Read more

Applications

Endpoint
Description

Get all applications

Retrieve a list of all applications received Read more

Create application

Add a new application to a job manually Read more

Get application

Fetch detailed data of a specific application Read more

Delete application

Remove an application permanently Read more

Update application tags

Modify tags associated with an application Read more

Application integration data

Endpoint
Description

Update application integration data

Attach an external ID to the application record for third-party system reference Read more

Categories

Endpoint
Description

Get all categories

Returns all available job categories used in JOIN Read more

Employment types

Endpoint
Description

Get all employment types

Returns all standard employment types (e.g. Full-time, Internship) Read more

Seniority levels

Endpoint
Description

Get all seniority levels

Returns all job seniority levels (e.g. Entry-level, Executive) Read more

Offices

Endpoint
Description

Get all offices

Retrieve all offices created in JOIN Read more

Create office

Add a new office location Read more

Get office

Get details of a specific office Read more

Update office

Edit existing office information Read more

Candidates

Endpoint
Description

Create candidate note

Add a note to a candidate profile Read more

Get all candidate notes

View all notes linked to a candidate Read more

Update candidate note

Edit an existing note Read more

Delete candidate note

Remove a note from a candidate profile Read more

Update candidate

Update a candidate's profile fields Read more

Attachments

Endpoint
Description

Get attachment by ID

Retrieve a specific attachment such as a CV Read more

Get application file by ID

Access files submitted with an application Read more

You’ll need appropriate API permissions and an active token to use these endpoints.

Last updated

Was this helpful?