Table of Contents
Greenhouse helps thousands of companies design and automate all aspects of hiring throughout their organizations, helping them compete for and win top talent with the Greenhouse Talent Acquisition suite.
API Overview
Greenhouse is a talent acquisition software that helps organizations manage the entire hiring process, from sourcing and screening candidates to onboarding and performance management. It offers a suite of tools for recruiters to streamline their workflow, including candidate tracking, job posting, applicant tracking, and interview scheduling. Greenhouse also provides analytics and reporting features that help organizations track their hiring performance and identify areas for improvement.
The Greenhouse API provides a programmatic interface to the Greenhouse platform, allowing developers to integrate Greenhouse with other systems and automate various tasks. The API documentation provides comprehensive information on the available endpoints, request and response formats, and error handling. Greenhouse uses REST APIs for communication, following industry-standard HTTP methods and JSON data formats. Webhooks allow for real-time notifications of events within Greenhouse, such as candidate applications or interview scheduling changes. Rate limits are in place to prevent excessive API usage and ensure the stability of the platform.
API Request Limits
Free
100 requests per minute
Growth
200 requests per minute
Pro
500 requests per minute
Enterprise
1000 requests per minute
SDKs
APIs
Method: GET
Description: Retrieve a <strong>single</strong> candidate by their ID..
Endpoint: /v1/candidates/:candidate_id
Parameters: candidate_id
Method: POST
Description: Create a new candidate..
Endpoint: /v1/candidates
Parameters: first_name, last_name, email, [external_id], [source], [source_id], [custom_fields]
Method: PUT
Description: Update a candidate by their ID..
Endpoint: /v1/candidates/:candidate_id
Parameters: candidate_id, [first_name], [last_name], [email], [external_id], [source], [source_id], [custom_fields]
Method: DELETE
Description: Delete a candidate by their ID. This will also delete the candidate's resume and all associated notes..
Endpoint: /v1/candidates/:candidate_id
Parameters: candidate_id
Method: GET
Description: Retrieve a list of all candidates. Candidates can be filtered by a variety of criteria..
Endpoint: /v1/candidates
Parameters: updated_at_min, updated_at_max, recruiter_id, job_id, team_id, status, source, query
Method: DELETE
Description: Permanently delete a candidate by their ID. This will also delete the candidate's resume and all associated notes..
Endpoint: /v1/candidates/:candidate_id/purge
Parameters: candidate_id
Method: GET
Description: Retrieve a <strong>single</strong> job by its ID..
Endpoint: /v1/jobs/:job_id
Parameters: job_id
Method: POST
Description: Create a new job..
Endpoint: /v1/jobs
Parameters: title, content, [job_board_postings], [external_id], [location], [source], [source_id], [custom_fields]
Method: PUT
Description: Update a job by its ID..
Endpoint: /v1/jobs/:job_id
Parameters: job_id, [title], [content], [job_board_postings], [external_id], [location], [source], [source_id], [custom_fields]
Method: DELETE
Description: Delete a job by its ID..
Endpoint: /v1/jobs/:job_id
Parameters: job_id
Method: GET
Description: Retrieve a list of all jobs. Jobs can be filtered by a variety of criteria..
Endpoint: /v1/jobs
Parameters: updated_at_min, updated_at_max, recruiter_id, team_id, title, content, location, stage, status, query
Method: DELETE
Description: Permanently delete a job by its ID..
Endpoint: /v1/jobs/:job_id/purge
Parameters: job_id
Method: GET
Description: Retrieve a <strong>single</strong> team by its ID..
Endpoint: /v1/teams/:team_id
Parameters: team_id
Method: GET
Description: Retrieve a list of all teams..
Endpoint: /v1/teams
Parameters: updated_at_min, updated_at_max, recruiter_id, query
Method: GET
Description: Retrieve a <strong>single</strong> recruiter by their ID..
Endpoint: /v1/recruiters/:recruiter_id
Parameters: recruiter_id
Method: GET
Description: Retrieve a list of all recruiters..
Endpoint: /v1/recruiters
Parameters: updated_at_min, updated_at_max, query
Method: GET
Description: Retrieve a <strong>single</strong> note by its ID..
Endpoint: /v1/notes/:note_id
Parameters: note_id
Method: POST
Description: Create a new note..
Endpoint: /v1/notes
Parameters: [owner_type], [owner_id], body, [pinned], [permalinks]
Method: PUT
Description: Update a note by its ID..
Endpoint: /v1/notes/:note_id
Parameters: note_id, [body], [pinned], [permalinks]
Method: DELETE
Description: Delete a note by its ID..
Endpoint: /v1/notes/:note_id
Parameters: note_id
Method: GET
Description: Retrieve a list of all notes..
Endpoint: /v1/notes
Parameters: updated_at_min, updated_at_max, owner_type, owner_id, query
FAQ
How do I authenticate with the Greenhouse API?
You can authenticate using OAuth 2.0 with the authorization code grant type.
What are the rate limits for the Greenhouse API?
The rate limits vary depending on the endpoint. You can find the specific limits in the API documentation.
How do I create a sandbox account?
You can create a sandbox account by signing up for a free trial of Greenhouse.
How do I get access to a developer account?
You can request access to a developer account by contacting Greenhouse support.
How do I handle pagination in the Greenhouse API?
The Greenhouse API uses cursor-based pagination. You can specify the cursor in the request to retrieve the next or previous page of results.