Recruitee is a cloud-based recruitment platform built for small to midsized businesses that want a cleaner, more structured hiring process. It brings job posting, applicant tracking, and hiring collaboration into one place, so you’re not juggling spreadsheets, inbox threads, and five different tools to move one candidate forward.
As an ATS, Recruitee helps you manage candidate profiles, track progress across stages, and keep the hiring team aligned with notes, evaluations, and shared communication. You also get customizable pipelines, analytics, and career site tools to strengthen employer branding. If you’re planning an integration, the Recruitee API is what turns Recruitee from “the tool recruiters use” into “a system that syncs with the rest of your stack”, HRIS, payroll, background checks, BI dashboards, Slack, and more.
Key highlights of Recruitee APIs
- Create and manage candidates programmatically
Add candidates directly from your sourcing tools, referral forms, or internal systems, without manual entry. - Keep candidate documents in sync
Upload CVs, cover letters, and attachments or update them later, so the ATS stays the source of truth. - Support custom data capture at scale
Add custom fields to candidate profiles (skills, source tags, screening outcomes) to match your hiring workflow. - Automate hiring communications
Manage templates (like auto-replies and event invitations) so messaging stays consistent across roles and teams. - Pull collaboration context like notes
Fetch candidate notes to power internal dashboards, manager views, or audit-ready hiring trails. - Enable cleanup and compliance workflows
Delete candidates, documents, templates, and other records when needed—useful for GDPR-style retention policies. - Connect interview operations to your scheduling layer
Manage interview calendars, events, schedules, meeting rooms, and related templates through APIs. - Track performance and attribution
Use analytics endpoints to measure campaign performance and understand what sources are driving quality applicants.
Recruitee API endpoints
Attachments
- POST
https://api.recruitee.com/c/{company_id}/attachments: This API endpoint allows users to upload files to either an offer or a candidate profile in the Recruitee system. The request is made to the URL 'https://api.recruitee.com/c/{company_id}/attachments' using the POST method. The request must include a 'Content-Type' header set to 'multipart/form-data' and an 'Authorization' header with a Bearer token. The 'company_id' is a required path parameter. The body of the request should contain an 'attachment' object, which can include a 'remote_file_url' (required), 'candidate_id', and 'offer_id'. The response will include details about the uploaded attachment, such as 'admin_id', 'candidate_id', 'created_at', 'file_url', and more. If authentication fails, a 401 error is returned. If the file is not provided, a 422 error is returned.
Auto Reply Templates
- DELETE
https://api.recruitee.com/c/{company_id}/auto_reply_templates/{id}: The Delete Auto Reply Template API allows users to delete a specific auto-reply template by providing the company ID and the template ID as path parameters. The request requires the 'Content-Type' header to be set to 'application/json'. Upon successful deletion, the API returns a 200 response code with details of the deleted auto-reply template, including its ID, title, position, and timestamps for creation and last update.
Candidates
- POST
https://api.recruitee.com/c/{company_id}/candidates: This API endpoint allows users to manually add a candidate to their account in Recruitee. The candidate will not receive an auto-confirmation email, and their profile will indicate they were manually added by the user whose API token was used. The request requires a company ID as a path parameter and a JSON body containing candidate details such as name, emails, phones, social links, and an optional offer ID. The response includes the created candidate's details or an error message if the creation fails. - DELETE
https://api.recruitee.com/c/{company_id}/candidates/{id}: This API endpoint allows you to delete a candidate by their ID from the Recruitee platform. It requires the company ID and candidate ID as path parameters, and an authorization token in the headers. The DELETE method is used, and it will permanently remove the candidate if found. The response includes a detailed JSON object of the deleted candidate if successful, or an error message if the candidate is not found. - DELETE
https://api.recruitee.com/c/{company_id}/candidates/{id}/delete_cover_letter: The 'Delete Candidate's Cover Letter File' API allows you to delete the cover letter file of a specific candidate in a company. The API requires the company ID and candidate ID as path parameters. The request must include the 'Content-Type: application/json' header. Upon successful deletion, the API returns a 200 response code with detailed information about the candidate, including their ID, name, email, and other attributes. The cover letter field will be set to null, indicating that the cover letter file has been successfully deleted. - DELETE
https://api.recruitee.com/c/{company_id}/candidates/{id}/delete_cv: The 'Delete Candidate's CV' API allows you to delete a candidate's CV from the system. It requires the company ID and candidate ID as path parameters. Optionally, you can specify whether to delete data previously extracted from the CV file using the 'delete_parsed_data' query parameter. The request must include the 'Content-Type' header set to 'application/json'. The response returns a detailed JSON object containing the candidate's information, including their last activity, ratings, fields, and GDPR status, among other details. - GET
https://api.recruitee.com/c/{company_id}/candidates/{id}/notes: This API endpoint retrieves notes for a specific candidate identified by the candidate ID. The request requires a valid Bearer token for authorization and the company ID and candidate ID as path parameters. The response includes a list of notes, each containing details such as the admin ID, attachments, body content in various formats (HTML, JSON), creation and update timestamps, reactions, replies, and visibility settings. Additionally, the response provides references to the admins involved, including their contact information and profile pictures. - PATCH
https://api.recruitee.com/c/{company_id}/candidates/{id}/update_cv: This API endpoint allows updating a candidate's CV file, either by uploading a local file or providing a remote URL. The request requires a PATCH method to the specified URL with the company ID and candidate ID as path parameters. The request headers must include an Authorization token and a Content-Type of 'multipart/form-data'. The body can include a 'candidate' object with a 'remote_cv_url' for the CV file. The response returns the updated candidate details, including the CV URL and update timestamp. If authentication fails, a 401 error is returned. - POST
https://api.recruitee.com/c/{company_id}/custom_fields/candidates/{id}/fields: This API allows adding profile fields to a candidate with a specified ID. The request requires the company ID and candidate ID as path parameters. The request body must include the field details, such as the field name, values, and kind, which specifies the input type (e.g., single_line, multi_line, boolean, etc.). The response returns the added field details if successful, or an error message if the request fails.
Devices
- DELETE
https://api.recruitee.com/c/{company_id}/devices/: This API endpoint allows the deletion of an admin's device for push notifications. It requires the company ID as a path parameter and the request must include the 'Content-Type' header set to 'application/json'. The response returns a JSON object containing details of the deleted device, including its ID, kind, token, UID, and app type.
Disqualify Reasons
- DELETE
https://api.recruitee.com/c/{company_id}/disqualify_reasons/{id}: The Delete Disqualify Reason API allows you to delete a specific disqualify reason from the system. It requires the company ID and the disqualify reason ID as path parameters. Optionally, you can provide a fallback disqualify reason ID as a query parameter to replace in OpenQuestionOptions. The request must include the 'Content-Type: application/json' header. The response returns a 200 status code with details of the deleted disqualify reason, including its ID, name, position, and any associated action templates.
Email Templates
- DELETE
https://api.recruitee.com/c/{company_id}/event_invitation_templates/{id}: The Delete Email Template API allows users to delete an email template by specifying the company ID and the template ID in the URL path parameters. The request requires a 'Content-Type' header set to 'application/json'. The response returns a 200 status code with details of the deleted email template, including its ID, position, title, admin ID, subject, timestamps for creation and last update, HTML body, and any template attachment assignments.
Imports
- DELETE
https://api.recruitee.com/c/{company_id}/imports/{id}: The Delete Import API allows you to delete an import record from the Recruitee system. It requires the company ID and the import ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. The response returns a detailed structure of the deleted import, including its ID, status, file name, columns, and associated references. The response body provides information about the import's columns, such as matched fields and values, and details about the admin who performed the import. - DELETE
https://api.recruitee.com/c/{company_id}/imports/{import_id}/cvs/{id}: The Delete Import CV API allows users to delete a specific CV from an import in the Recruitee system. The API requires the company ID, import ID, and the CV ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. The response returns a 200 status code with details of the deleted CV, including its ID, file name, and URLs. The 'import_candidate_id' may be null if not associated with a candidate.
Interview
- DELETE
https://api.recruitee.com/c/{company_id}/interview/calendars/{id}: The Delete Interview Calendar API allows users to delete an interview calendar by specifying the company ID and the interview calendar ID in the path parameters. The request requires the 'Content-Type' header to be set to 'application/json'. Upon successful deletion, the API returns a response with details of the deleted interview calendar, including its access level, name, status, type, associated admin ID, provider, last sync time, external calendar ID, and a list of external calendars associated with it. The response also indicates whether the subscription for the calendar was active. - DELETE
https://api.recruitee.com/c/{company_id}/interview/events/{id}: This API endpoint allows you to delete an interview event and optionally send a notification to the candidate. The endpoint requires the company ID and interview event ID as path parameters. You can also include optional query parameters such as a message to be sent to the candidate and a boolean to notify the candidate. The request must include a 'Content-Type' header set to 'application/json'. The response includes details about the references related to the interview event and the interview event itself, such as the event URL, start time, and associated candidate and admin information. - DELETE
https://api.recruitee.com/c/{company_id}/interview/meeting_rooms/{id}: The Delete Meeting Room API allows users to delete a specific meeting room by its ID for a given company. The API requires the company ID and the meeting room ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. The API does not require a request body. Upon successful deletion, the API returns a 200 response code. No response body is provided. - DELETE
https://api.recruitee.com/c/{company_id}/interview/request_links/{id}: The Delete Interview Request Link API allows users to delete a specific interview request link using the DELETE HTTP method. The API requires two URI parameters: 'id', which is the interview request link ID, and 'company_id', which is the company ID. Both parameters are required and must be integers. There are no request headers, query parameters, or request body needed for this API. The response does not specify any headers or body content. - DELETE
https://api.recruitee.com/c/{company_id}/interview/result_requests/{id}: The Delete Interview Result Request API allows users to delete a specific interview result request identified by its ID for a given company. The API requires two URI parameters: 'id', which is the interview result request ID, and 'company_id', which is the company ID. Both parameters are required and must be integers. There are no request headers, query parameters, or request body needed for this API. The response does not specify any headers or body content. - DELETE
https://api.recruitee.com/c/{company_id}/interview/schedules/{id}: The Delete Interview Schedule API allows users to delete an existing interview schedule by specifying the company ID and interview schedule ID in the URL path parameters. The request requires a 'Content-Type' header set to 'application/json'. The response returns a status code of 200 and includes details of the deleted interview schedule and related references. The response body contains information such as the interview schedule ID, name, location, and other attributes, as well as a list of references associated with the schedule. - DELETE
https://api.recruitee.com/c/{company_id}/interview/templates/{id}: The Delete Interview Template API allows users to delete a specific interview template by providing the company ID and interview template ID in the URL path parameters. The request requires a 'Content-Type' header set to 'application/json'. Upon successful deletion, the API returns a 200 response code with details of the deleted interview template, including references and interview questions. The response includes information such as the template's name, category, kind, and associated questions with their options and hints.
Languages
- DELETE
https://api.recruitee.com/c/{company_id}/lang/languages/: The Delete Language API allows you to delete a language for a specific company identified by the company_id. The API uses the DELETE HTTP method and requires the company_id as a path parameter. There are no request headers, query parameters, or request body required for this API. The response details, including response headers and body, are not specified in the documentation.
Locations
- DELETE
https://api.recruitee.com/c/{company_id}/locations/{id}: The Delete Location API allows you to delete a specific location by its ID for a given company. The request requires the company_id and location id as path parameters. The request header must include 'Content-Type: application/json'. The response returns a detailed JSON object of the location that was deleted, including its ID, name, validity, state name, translations, language code, timestamps, note, city, state code, country code, street, postal code, active offers and requisitions count, deletability, and full address.
Mailbox
- DELETE
https://api.recruitee.com/c/{company_id}/mailbox/messages/{id}: The Delete Message API allows you to delete a specific message from the mailbox of a company using the Recruitee platform. The API requires the company_id as a path parameter, which is mandatory, and optionally the id of the message to be deleted. There are no request headers or body required for this API. The response details are not provided in the documentation.
OAuth
- DELETE
https://api.recruitee.com/c/{company_id}/oauth/personal_tokens/{id}: The Delete Personal Token API allows you to delete a personal token associated with a specific company. The API requires the company ID and the token ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. The response does not include a body, and a successful deletion is indicated by a 200 response code.
Offers
- DELETE
https://api.recruitee.com/c/{company_id}/offers/{offer_id}/fieldsets/fields/{id}: The 'Delete Field from Fieldset' API allows users to delete a specific field from a fieldset associated with an offer in a company. The API requires the company ID, offer ID, and fieldset ID as path parameters. The field ID is optional. The request must include a JSON body with the source fieldset ID. The Content-Type header must be set to 'application/json'. Upon successful deletion, the API returns a 200 response code. No response body is provided. - DELETE
https://api.recruitee.com/c/{company_id}/offers/{offer_id}/open_question_templates/open_questions/{id}: The 'Delete Open Question from a Template' API allows users to delete an open question from a specified template within a company's offer. The API requires the company ID, offer ID, and optionally the open question ID as path parameters. The request must include a JSON body with the source template ID. The request header must specify 'Content-Type' as 'application/json'. Upon successful deletion, the API returns a 200 response code with no response body. - GET
https://{yourcompany}.recruitee.com/api/offers/: This API endpoint retrieves a collection of published job offers from a company's careers site. The offers can be filtered by department or tag using query parameters. The response includes detailed information about each job offer, such as the job title, description, requirements, location, and application URLs. It also includes metadata like the job's status, creation and update timestamps, and various options related to the application process. The response can also include open questions that applicants need to answer. The API returns a 404 error if the requested resource is not found. - GET
https://{yourcompany}.recruitee.com/api/offers/{id}: This API endpoint retrieves the details of a specific company offer (job) using the provided ID or slug. The request requires the 'id' path parameter, which is mandatory. The response includes detailed information about the job offer, such as its title, description, requirements, location, and other attributes. It also includes translations and open questions related to the job offer. If the offer is not found, a 404 error with a 'Not Found' message is returned. - POST
https://{yourcompany}.recruitee.com/api/offers/{offer_slug}/candidates: This API endpoint allows you to apply for a job offer by creating a candidate. The required fields by default are name, phone, email, and cv, but you can adjust these requirements in the offer's settings. The API also supports answering job-related questions by attaching a list of answers to the request. The endpoint requires the 'offer_slug' as a path parameter to identify the job offer. The request body should include candidate details such as name, email, phone, and optionally a remote CV URL and referrer. Upon successful creation, a confirmation email is sent to the candidate. The response includes the candidate's details such as ID, name, emails, phones, and URLs for the photo and CV.
Open Questions
- DELETE
https://api.recruitee.com/c/{company_id}/open_questions/template/{id}: The Delete Open Question Template API allows users to delete a specific open question template identified by its ID for a given company. The API requires the company ID and the template ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. Upon successful deletion, the API returns a response with details of the deleted open question template, including its ID, title, category, and timestamps for creation and last update. - DELETE
https://api.recruitee.com/c/{company_id}/open_questions/template/{template_id}/open_questions/{id}: This API endpoint allows the user to delete an open question from a specified template within a company. The request requires the company ID, template ID, and open question ID as path parameters. The request header must include 'Content-Type: application/json'. The API does not require a request body and returns a 200 response code with no response body upon successful deletion.
Past Subdomains
- DELETE
https://api.recruitee.com/c/{company_id}/past_subdomains/{id}: The 'Delete a Past Subdomain' API allows users to delete a specific past subdomain associated with a company. The API requires the company ID and the past subdomain ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. Upon successful deletion, the API returns a 200 response code with details of the deleted past subdomain, including its ID, name, and timestamps for when it was created and last updated.
Pipeline Templates
- DELETE
https://api.recruitee.com/c/{company_id}/pipeline_templates/{id}: The Delete Pipeline Template API allows users to delete a specific pipeline template identified by its ID for a given company. The request requires the company ID and the pipeline template ID as path parameters. The request header must include 'Content-Type' as 'application/json'. The API returns a 422 response code if there are assigned offers still associated with the pipeline template, along with an error message detailing the issue.
Placements
- DELETE
https://api.recruitee.com/c/{company_id}/placements/{id}: The Delete Placement API allows you to delete a specific placement by its ID for a given company. The API requires the company ID and placement ID as path parameters. The request must include a 'Content-Type' header set to 'application/json'. The response returns a 200 status code with details of the references and the placement that was deleted, including information such as reference ID, position, status, type, and other related details.
Reactions
- DELETE
https://api.recruitee.com/c/{company_id}/reactions/notes/{note_id}: The Delete Note Reaction API allows you to remove a reaction from a note using a specified emoji. The API requires the company ID and note ID as path parameters, and the emoji as a request body parameter. The request must include the 'Content-Type' header set to 'application/json'. Upon successful deletion, the API returns a 200 response code with details of the deleted reaction, including the reaction ID, emoji, base emoji, admin ID, company ID, creation timestamp, and note ID.
Requisitions
- DELETE
https://api.recruitee.com/c/{company_id}/requisitions/settings/approval_flows/{approval_flow_id}: The Delete Approval Flow API allows you to delete an existing approval flow in the Recruitee system. It requires the company ID and the approval flow ID as path parameters. The request must include the 'Content-Type' header set to 'application/json'. The response returns the details of the deleted approval flow, including its ID, title, position, and other attributes. - DELETE
https://api.recruitee.com/c/{company_id}/requisitions/settings/form/{field_name}: The 'Delete Non-Custom Form Field by Name' API allows users to delete a specific non-custom form field by its name from a company's requisition settings. The API requires the company ID and the field name as path parameters. The request must include the 'Content-Type' header set to 'application/json'. Upon successful deletion, the API returns a response with the remaining form fields and a 'pristine' status indicating whether the form is in its original state.
Share
- DELETE
https://api.recruitee.com/c/{company_id}/share/containers/{id}: The Delete Container API allows users to delete a specific container identified by its ID within a company. The API requires the company_id and container id as path parameters. The request must include the 'Content-Type: application/json' header. The response returns a status code of 200 and provides details about the references and the container that was deleted, including information such as reference IDs, types, emails, and container attributes like active status, token, visibility options, and more. - DELETE
https://api.recruitee.com/c/{company_id}/share/guests/{id}: The Delete Guest API allows you to remove a guest from the system using their unique guest ID and company ID. The API requires the 'Content-Type' header to be set to 'application/json'. The endpoint is structured with the company ID and guest ID as path parameters. Upon successful deletion, the API returns a 200 response code with details of the deleted guest, including their ID, name, email, authentication token, and other attributes. - DELETE
https://api.recruitee.com/c/{company_id}/shared_email_providers/{id}: The 'Delete Archived Shared Email Provider' API allows users to delete a shared email provider that has been archived. This API requires two URI parameters: 'company_id', which is the ID of the company, and 'id', which is the ID of the shared email provider to be deleted. Both parameters are required and must be integers. There are no request headers or body required for this API. The response does not specify any headers or body content. - DELETE
https://api.recruitee.com/share/containers/{token}/notes/{id}: The Delete Note API allows users to delete a specific note identified by its ID within a container identified by a token. The request requires the note ID and container token as path parameters, and a guest token as a query parameter. The request header must include 'Content-Type: application/json'. The response returns a 200 status code with details of the deleted note, including its ID, text, HTML body, creation timestamp, guest details, and other metadata. - DELETE
https://api.recruitee.com/share/containers/{token}/results/{id}: The 'Delete Interview Result for Candidate' API allows users to delete an interview result for a specific candidate. The API requires the interview result ID and container token as URI parameters. The request must include the 'Content-Type' header set to 'application/json'. The response returns a 200 status code with details of the deleted interview result, including the interview result ID, kind, associated offer details, admin information, timestamps, guest details, stage information, and rating. - DELETE
https://api.recruitee.com/share/interview/questionnaire/attachments/{id}: The Delete Attachment API allows users to delete an attachment by specifying its ID in the path parameters. The request requires a 'Content-Type' header set to 'application/json'. The response returns a status code of 200 upon successful deletion, along with details of the deleted attachment, including its ID, status, filename, extension, creation timestamp, and URLs for the file, image thumbnail, and image.
Texting
- DELETE
https://api.recruitee.com/c/{company_id}/texting/messages/: The 'Delete Failed or Scheduled Message' API allows users to delete a message that is either failed or scheduled. The API requires the company ID as a path parameter and uses the DELETE HTTP method. The request must include the 'Content-Type' header set to 'application/json'. The response returns a message object containing details such as the message ID, status, text, receiver, sender, and timestamps for creation and last update. The response also includes additional information like unread message IDs, thread ID, and segment count.
Tracking
- DELETE
https://api.recruitee.com/c/{company_id}/tracking/slack_integrations/{id}: The 'Delete Company Slack Integration' API allows users to remove a specific Slack integration from a company's tracking system. It requires two URI parameters: 'id', which is the SlackIntegration ID, and 'company_id', which is the Company ID. Both parameters are mandatory. There are no request headers or body required for this API call. The response details are not provided in the documentation.
Analytics
- POST
https://api.s.recruitee.com/i/p/{partner}/analytics: This API endpoint retrieves aggregate campaign data for specified campaigns. It uses the POST method to handle potentially long arrays of campaign identifiers. The request requires a partner path parameter and optionally includes a secret query parameter for authentication. The request body should contain an array of campaign IDs under 'utm_campaigns'. The response includes detailed analytics for each campaign, such as active and disqualified statuses, unique visits, and total visits. If unauthorized, a 401 error is returned, and if parameters are invalid, a 422 error is returned.
Sample
- POST
https://api.example.com/v1/sample: This API endpoint processes user data and returns a success message.
FAQs for Recruitee API Integration
- Do I need a company_id for every API call?
For most company-scoped endpoints, yes. It’s a required path parameter and determines which Recruitee workspace you’re operating on. - How do I authenticate with the Recruitee API?
Most endpoints expect anAuthorization: Bearer <token>header. Make sure your token management is secure and rotated as needed. - What’s the difference between the careers site offers APIs and the company APIs?
Careers site offer endpoints use the{yourcompany}.recruitee.comdomain and are focused on published job offers and applications. Company APIs useapi.recruitee.comand cover admin-side operations like candidates, templates, interviews, etc. - Can I upload CVs and other files via the API?
Yes. Use multipart/form-data endpoints like attachments and CV update endpoints to upload or link remote files. - How should I handle deletes safely (candidates, templates, notes, etc.)?
Treat delete operations as irreversible unless your internal systems retain a backup. Use role-based access and strict logging around delete calls. - Is there webhook support for real-time updates?
Your highlights reference webhook syncing. If you rely on real-time flows, align your integration around event-driven updates instead of constant polling. - What should I do if I hit rate limits or see 401/422 errors?
401 usually means auth/token issues. 422 typically means validation problems (missing required fields, wrong body shape). For rate limits, implement retries with backoff and reduce noisy polling.
Get Started with Recruitee API Integration
If you want a faster path to production, Knit API can sit in front of your Recruitee integration so you don’t burn cycles on auth, token refresh, edge cases, and ongoing maintenance. Integrate once, and standardize how you connect to Recruitee across workflows, cleaner operations, fewer breakages, and a lot less integration debt.




