Lever is a talent acquisition platform that helps companies simplify and improve their hiring process. With tools for tracking applicants and managing relationships, Lever makes it easy for teams to attract, engage, and hire the best talent. Its user-friendly design and smart features help companies of all sizes make better hiring decisions while improving the candidate experience.
Lever also offers APIs that allow businesses to integrate the platform with their existing systems. These APIs automate tasks like syncing candidate data and managing job postings, making the hiring process more efficient and customizable.
Key highlights of Lever APIs are as follows:
- Seamless Integration: Easily connects with existing HR systems, CRMs, and other tools to streamline recruitment workflows.
- Automation: Automates tasks such as syncing candidate data, managing job postings, and updating applicant status in real time.
- Custom Endpoints: Provides flexible endpoints for candidates, jobs, opportunities, and interviews, allowing for tailored solutions.
- Real-time Data: Offers real-time updates, ensuring your recruitment process stays up to date with minimal manual effort.
- Well-documented: Comes with comprehensive documentation to help developers quickly build and maintain custom integrations.
- Scalable: Supports businesses of all sizes, from startups to enterprises, helping them automate and improve their hiring processes.
This article will provide an overview of the Lever API endpoints. These endpoints enable businesses to build custom solutions, automate workflows, and streamline HR operations.
Lever API Endpoints
Here are the most commonly used API endpoints in the latest version -
Opportunities
- POST /opportunities : The 'Create an opportunity' API endpoint allows integrations to create candidates and opportunities in a Lever account. It supports both JSON and multipart/form-data requests, enabling the inclusion of candidate information and resume files. The API deduplicates candidates based on email and links new opportunities to existing contacts if a match is found. It accepts various parameters such as perform_as, parse, and perform_as_posting_owner, and fields like name, headline, stage, location, phones, emails, links, tags, sources, origin, owner, followers, resumeFile, files, postings, createdAt, archived, and contact. The response includes the opportunity ID, status, and a message indicating the result of the request.
- POST /opportunities/:opportunity/addLinks : The 'Update Contact Links by Opportunity' API allows users to add or remove links associated with a contact through a specified opportunity. The API requires the opportunity ID as a path parameter and accepts an optional 'perform_as' parameter to perform the update on behalf of a specified user. The body of the request must include an array of links to be added or removed. The response includes a status and a message indicating the result of the operation.
- POST /opportunities/:opportunity/addSources : The 'Update Opportunity Sources' API allows users to add or remove sources from a specified opportunity. The API requires the opportunity ID as a path parameter and an array of sources in the request body. Optionally, the request can include a 'perform_as' header to specify the user on whose behalf the operation is performed. The response indicates whether the operation was successful and provides a descriptive message.
- POST /opportunities/:opportunity/addTags : The Update Opportunity Tags API allows users to add or remove tags from a specified opportunity. The API requires the opportunity ID as a path parameter. Users can optionally specify a 'perform_as' parameter to perform the update on behalf of another user. The request body must include an array of tags to be added or removed. The response indicates whether the operation was successful and provides a message detailing the result.
- PUT /opportunities/:opportunity/archived : This API updates the archived state of an Opportunity. If the Opportunity is already archived, the archive reason can be changed, or it can be unarchived by specifying null as the reason. If the Opportunity is active, it will be archived with the provided reason. The API accepts an optional 'perform_as' header to perform the update on behalf of a specified user. The request body requires a 'reason' for archiving, and optionally accepts 'cleanInterviews' to remove pending interviews and 'requisitionId' to hire a candidate against a specific requisition. The response includes the status of the operation, a message, and details of the updated opportunity.
- POST /opportunities/:opportunity/files : The 'Upload a Single File' API endpoint allows users to upload a file to a specified opportunity. The request must be made using the POST method to the '/opportunities/:opportunity/files' URL, where ':opportunity' is the ID of the opportunity. The request must include a 'perform_as' query parameter to specify the user on whose behalf the upload is performed. The file must be included in the request body as a binary file with a maximum size of 30MB, and the request must be of type 'multipart/form-data'. Upon successful upload, the API returns a response containing details of the uploaded file, including its ID, download URL, extension, name, upload timestamp, status, and size. In case of an error, such as a timeout, an error response with a code and message is returned.
- DELETE /opportunities/:opportunity/files/:file : The 'Delete a file' API endpoint allows for the deletion of a specified file associated with an opportunity. The request must include the 'perform_as' header to specify the user on whose behalf the operation is performed. The endpoint requires the 'opportunity' and 'file' path parameters to identify the specific file to be deleted. An optional 'offset' query parameter can be used to skip a number of items before starting to collect the result set for pagination. Upon successful deletion, the API returns a 204 No Content response, indicating that the file has been successfully removed. The response includes details of the user who created the file. Note that the endpoint via /candidates/ is deprecated, and it is recommended to use the /opportunities/ endpoint for this operation.
- PUT /opportunities/:opportunity/stage : The 'Update Opportunity Stage' API allows users to change the current stage of a specified opportunity. The endpoint requires the opportunity's unique identifier as a path parameter. Optionally, the update can be performed on behalf of another user by providing their identifier in the 'perform_as' query parameter. The request body must include the new stage ID for the opportunity. The response indicates whether the update was successful and provides a message with additional information.
- GET /opportunities/deleted : The 'List Deleted Opportunities' API endpoint allows users to retrieve a list of all deleted opportunities from their Lever account. The endpoint supports filtering by the timestamp of deletion using the optional query parameters 'deleted_at_start' and 'deleted_at_end'. If 'deleted_at_start' is provided, the API returns opportunities deleted from that timestamp onwards. If 'deleted_at_end' is provided, it returns opportunities deleted up to that timestamp. The response includes an array of deleted opportunities, each with a unique 'opportunity_id' and the 'deleted_at' timestamp.
Archive Reasons
- GET https://api.lever.co/v1/archive_reasons : The 'List all archive reasons' API endpoint allows users to retrieve a list of all archive reasons from their Lever account. The endpoint supports filtering by the type of archive reason, which can be either 'hired' or 'non-hired'. The request requires basic authentication using an API key. The response includes a list of archive reasons, each with an ID, text description, status (active or inactive), and type (hired or non-hired).
- GET https://api.lever.co/v1/archive_reasons/:archive_reason : The 'Retrieve a Single Archive Reason' API endpoint allows users to fetch details of a specific archive reason by its unique identifier. The request requires an API key for authentication and the archive reason ID as a path parameter. The response includes the archive reason's ID, description, status, and type.
Audit Events
- GET https://api.lever.co/v1/audit_events : The 'List all audit events' API retrieves all audit events from your Lever account, sorted in descending chronological order. It supports filtering by event type, user ID, target type, target ID, and creation timestamps. The response includes detailed information about each event, such as the event ID, creation time, type, user details, target details, and additional metadata.
Contacts
- GET https://api.lever.co/v1/contacts/:contact : The 'Retrieve a Single Contact' API endpoint allows users to fetch details of a specific contact using their unique identifier. The request requires an API key for authentication, which should be included in the headers. The contact ID is specified as a path parameter. The response includes detailed information about the contact, such as their name, headline, location, email addresses, and phone numbers.
EEO Responses
- GET https://api.lever.co/v1/eeo/responses : The 'Retrieve anonymous EEO responses' API endpoint allows users to list anonymous Equal Employment Opportunity (EEO) responses. The API requires an API key for authentication and supports optional query parameters 'fromDate' and 'toDate' to filter the responses by date range. The response includes details such as application timestamps, current stage, gender, race, veteran status, and disability information of the applicants.
- GET https://api.lever.co/v1/eeo/responses/pii : This API endpoint retrieves EEO (Equal Employment Opportunity) responses with Personally Identifiable Information (PII) from the Lever platform. It supports optional query parameters such as 'expand' to expand user IDs and posting ID into full objects, 'created_at_start' to specify the start date for retrieving data, and 'created_at_end' to specify the end date. The response includes detailed information about each EEO response, such as application dates, current stage, contact information, gender, race, veteran status, disability status, and more.
Feedback Templates
- POST https://api.lever.co/v1/feedback_templates : This API endpoint allows the creation of a feedback template for an account. The request must include the name of the feedback template, instructions, the group UID, and an array of fields. Each field can have various types such as date, currency, multiple-select, and score-system, among others. The fields array must include at least one field of type score-system. The response returns the created feedback template with its unique ID, name, instructions, group details, fields, and timestamps for creation and last update.
- DELETE https://api.lever.co/v1/feedback_templates/:feedback_template : The 'Delete a feedback template' API endpoint allows users to delete a specific feedback template associated with their account. This endpoint requires the unique identifier of the feedback template to be specified in the path parameters. Only templates that were created via the 'Create a feedback template' endpoint can be deleted using this endpoint. The request must be authenticated using an API key provided in the headers. Upon successful deletion, the API returns no content.
Form Templates
- GET https://api.lever.co/v1/form_templates : This API endpoint retrieves all active profile form templates for an account. It includes all form data such as instructions and fields. The response can be customized to include only specific attributes like id, text, and group using the 'include' query parameter. The API requires an API key for authentication. The response contains details about each form template, including its id, creation and update timestamps, text, instructions, group information, whether it is secret by default, and the fields it contains. Each field has its own id, type, text, description, and whether it is required.
- GET https://api.lever.co/v1/form_templates/:form_template : The Retrieve a Profile Form Template API endpoint allows users to fetch a single profile form template by its unique identifier. This endpoint is useful for obtaining a reference template when creating a new profile form. The request requires an API key for authentication and the form template ID as a path parameter. The response includes details such as the template's creation and update timestamps, text description, instructions, group information, and fields with their respective types, descriptions, and requirement status.
Opportunities
- GET https://api.lever.co/v1/opportunities : The 'List all opportunities' API endpoint retrieves all pipeline opportunities for contacts in your Lever account. It supports various optional query parameters to filter the results, such as 'include', 'expand', 'tag', 'email', 'origin', 'source', 'confidentiality', 'stage_id', 'posting_id', 'archived_posting_id', 'created_at_start', 'created_at_end', 'updated_at_start', 'updated_at_end', 'advanced_at_start', 'advanced_at_end', 'archived_at_start', 'archived_at_end', 'archived', 'archive_reason_id', 'snoozed', and 'contact_id'. The response includes detailed information about each opportunity, such as 'id', 'name', 'headline', 'contact', 'emails', 'phones', 'confidentiality', 'location', 'links', 'createdAt', 'updatedAt', 'lastInteractionAt', 'lastAdvancedAt', 'snoozedUntil', 'archivedAt', 'archiveReason', 'stage', 'stageChanges', 'owner', 'tags', 'sources', 'origin', 'sourcedBy', 'applications', 'resume', 'followers', 'urls', 'dataProtection', and 'isAnonymized'.
- GET https://api.lever.co/v1/opportunities/:opportunity : The 'Retrieve a Single Opportunity' API endpoint allows users to fetch detailed information about a specific opportunity using its unique identifier. The request requires basic authentication using an API key and the opportunity ID as a path parameter. The response includes comprehensive details about the opportunity, such as contact information, confidentiality status, location, associated tags, sources, and data protection settings. It also provides timestamps for creation, updates, interactions, and stage changes, along with URLs for candidate lists and specific candidate views.
- POST https://api.lever.co/v1/opportunities/:opportunity/feedback : This API endpoint allows the creation of a feedback form for a specific opportunity. The request requires the opportunity ID as a path parameter and the user ID to perform the action on behalf of as a query parameter. The request body must include the base template ID and can optionally include panel and interview IDs, field values, and timestamps for creation and completion. The response returns the details of the created feedback form, including its fields, associated panel and interview, and timestamps.
- PUT https://api.lever.co/v1/opportunities/:opportunity/feedback/:feedback : The Update Feedback API allows you to update a feedback form for a specific opportunity. The endpoint requires the opportunity ID and feedback ID as path parameters. You can perform the update on behalf of a specified user by providing the 'perform_as' query parameter. The request body can include a 'completedAt' timestamp and an array of 'fieldValues' to update specific fields in the feedback form. The response includes detailed information about the updated feedback, including account ID, user ID, profile ID, and the fields with their respective values and options.
- GET https://api.lever.co/v1/opportunities/:opportunity/files : The 'List all files for an opportunity' API endpoint allows users to retrieve a list of all files associated with a specific opportunity. The endpoint requires an API key for authentication and the unique identifier of the opportunity as a path parameter. Users can optionally filter the files by their upload timestamp using the 'uploaded_at_start' and 'uploaded_at_end' query parameters. The response includes an array of file objects, each containing details such as the file ID, download URL, extension, name, upload timestamp, processing status, and size.
- GET https://api.lever.co/v1/opportunities/:opportunity/files/:file : The Retrieve a Single File API endpoint allows users to retrieve metadata for a specific file associated with an opportunity. The endpoint requires the opportunity ID and file ID as path parameters and uses an API key for authentication. The response includes details such as the file ID, download URL, file extension, name, upload timestamp, status, and size. Note that the endpoint via /candidates/ is deprecated, and users should use the /opportunities/ endpoint for the same response.
- GET https://api.lever.co/v1/opportunities/:opportunity/files/:file/download : The 'Download a file' API endpoint allows users to download a file associated with a specific opportunity in Lever. The endpoint requires the opportunity ID and file ID as path parameters, and an API key for authentication in the headers. The response includes the file's binary content and headers indicating the file type and disposition. Note that if the file could not be processed correctly by Lever, a 422 Unprocessable Entity status will be returned.
- GET https://api.lever.co/v1/opportunities/:opportunity/forms : This API endpoint retrieves all profile forms associated with a specific opportunity for a candidate. The request requires an API key for authentication and the unique identifier of the opportunity as a path parameter. The response includes details of the form such as its ID, type, text, instructions, base template ID, fields, user, stage, and timestamps for creation, completion, and deletion. Each field in the form has attributes like type, text, description, requirement status, ID, value, and currency if applicable.
- GET https://api.lever.co/v1/opportunities/:opportunity/forms/:form : The Retrieve a Profile Form API endpoint allows you to retrieve a specific profile form associated with an opportunity. The endpoint requires the opportunity ID and form ID as path parameters. The response includes detailed information about the form, such as its ID, type, text, instructions, base template ID, fields, user ID, stage ID, and timestamps for when the form was completed, created, and deleted. The fields array contains various types of fields, each with its own properties like type, text, description, required status, ID, value, and currency if applicable.
- GET https://api.lever.co/v1/opportunities/:opportunity/interviews : The 'List all interviews for an opportunity' API endpoint retrieves all interview events associated with a specific opportunity. The endpoint requires an API key for authentication and the unique identifier of the opportunity as a path parameter. The response includes detailed information about each interview, such as the interview ID, panel, subject, notes, interviewers, timezone, creation date, interview date, duration, location, feedback templates, feedback forms, feedback reminders, user who scheduled the interview, stage, cancellation timestamp, related postings, and Google Calendar event URL. This endpoint is useful for obtaining a comprehensive list of interviews for a given opportunity.
- PUT https://api.lever.co/v1/opportunities/:opportunity/interviews/:interview : The 'Update an Interview' API endpoint allows users to update an existing interview associated with a specific opportunity. This endpoint requires the entire interview object to be present in the PUT request, as missing fields will be deleted. It is important to note that this endpoint cannot be used to update interviews created within the Lever application; only interviews within panels where 'externallyManaged' is true can be updated. The request must include the 'perform_as' query parameter to specify the user on whose behalf the update is performed. The request body should contain details such as the panel ID, subject, note, interviewers, date, duration, location, feedback template, and feedback reminder. The response includes the updated interview details, including the interview ID, panel, subject, note, interviewers, timezone, creation date, duration, location, feedback template, feedback forms, feedback reminder, user, stage, and postings.
- GET https://api.lever.co/v1/opportunities/:opportunity/notes : The 'List all notes' API endpoint retrieves all notes associated with a specific opportunity. The endpoint is accessed via a GET request to '/opportunities/:opportunity/notes', where ':opportunity' is the unique identifier for the opportunity. The request requires an API key for authentication. The response includes an array of notes, each with details such as the note ID, text, fields, user, and timestamps for creation, completion, and deletion. The 'hasNext' boolean indicates if there are more notes to fetch. Note that the endpoint via '/candidates/' is deprecated.
- GET https://api.lever.co/v1/opportunities/:opportunity/notes/:note : The Retrieve a Single Note API endpoint allows users to fetch a specific note associated with an opportunity using the opportunity and note identifiers. The request requires an API key for authentication and the unique identifiers for both the opportunity and the note as path parameters. The response includes detailed information about the note, such as its text content, associated fields, user information, and timestamps for creation, completion, and deletion. This endpoint is part of the Lever API and is used to access notes related to opportunities.
- DELETE https://api.lever.co/v1/opportunities/:opportunity/notes/:noteId : The 'Delete a Note' API endpoint allows users to delete a note associated with a specific opportunity. This endpoint is restricted to notes created via the API and cannot delete notes created within the Lever application. The request requires the opportunity ID and note ID as path parameters, and the API key for authentication in the headers. A successful deletion will result in a 204 No Content response, indicating that the note has been successfully deleted.
- GET https://api.lever.co/v1/opportunities/:opportunity/offers : The 'List all offers' API endpoint retrieves all offers associated with a specific opportunity. The endpoint is accessed via a GET request to '/opportunities/:opportunity/offers'. The request requires an API key for authentication, passed in the Authorization header. The 'opportunity' path parameter is mandatory and specifies the unique identifier for the opportunity. An optional query parameter 'expand' can be used to expand the creator ID into a full object in the response. The response includes an array of offer objects, each containing details such as the offer ID, creation timestamp, status, creator ID, and various fields related to the offer. Additionally, information about sent and signed documents is provided, including file names, upload timestamps, and download URLs. The response also indicates if there are more offers to fetch with the 'hasNext' boolean.
- GET https://api.lever.co/v1/opportunities/:opportunity/offers/:offer/download : The 'Download Offer File' API allows users to download a specific version of an offer file associated with an opportunity. The endpoint requires the opportunity and offer identifiers as path parameters. An optional query parameter 'status' can be used to specify whether to download the 'sent' or 'signed' version of the offer file. If no status is provided, the most recent document is returned. The API requires an API key for authentication. The response includes a 'downloadUrl' from which the offer file can be downloaded.
- POST https://api.lever.co/v1/opportunities/:opportunity/panels : The 'Create a Panel' API endpoint allows users to create a panel and associate it with a specific opportunity. The endpoint requires the opportunity ID as a path parameter and the 'perform_as' user ID as a query parameter. The request body must include the timezone and a non-empty array of interview objects. Optional fields include applications, feedback reminders, notes, and an external URL. The response returns details of the created panel, including its ID, associated applications, interviews, and other metadata.
- DELETE https://api.lever.co/v1/opportunities/:opportunity/panels/:panel : This API endpoint deletes a panel associated with a specific opportunity. Only panels with 'externallyManaged' set to true can be deleted via this API. The request requires the opportunity ID and panel ID as path parameters, and a 'perform_as' query parameter to specify the user on whose behalf the delete operation is performed. The API key must be included in the headers for authentication. The endpoint returns a 204 No Content status upon successful deletion. Note that the endpoint via /candidates/ is deprecated, and the /opportunities/ endpoint should be used instead.
- GET https://api.lever.co/v1/opportunities/:opportunity/referrals : The 'List all referrals for a candidate for an Opportunity' API endpoint retrieves all referrals associated with a specific opportunity. The endpoint is accessed via a GET request to '/opportunities/:opportunity/referrals', where ':opportunity' is the unique identifier for the opportunity. The request requires an API key for authentication, provided in the headers. The response includes a list of referral objects, each containing details such as the referral ID, type, text, instructions, fields (including referrer name, relationship, and comments), base template ID, user ID, referrer ID, stage, and timestamps for creation and completion. The response also indicates if there are more referrals to fetch with the 'hasNext' boolean.
- GET https://api.lever.co/v1/opportunities/:opportunity/referrals/:referral : The 'Retrieve a Single Referral' API endpoint allows users to fetch details of a specific referral associated with a given opportunity. The endpoint requires the opportunity ID and referral ID as path parameters. The response includes detailed information about the referral, such as the referral ID, type, text, instructions, fields (including referrer name, relationship, and comments), base template ID, user ID, referrer ID, stage ID, and timestamps for creation and completion. This endpoint is authenticated using an API key.
- GET https://api.lever.co/v1/opportunities/:opportunity/resumes : The 'List all resumes for an opportunity' API endpoint allows users to retrieve all resumes associated with a specific opportunity. The endpoint is accessed via a GET request to the URL 'https://api.lever.co/v1/opportunities/:opportunity/resumes', where ':opportunity' is the unique identifier for the opportunity. The request requires an 'Authorization' header with a Basic authentication API key. Optional query parameters 'uploaded_at_start' and 'uploaded_at_end' can be used to filter resumes by their upload timestamps. The response includes a list of resumes, each with details such as the resume ID, creation timestamp, file information (name, extension, download URL, upload timestamp, status, and size), and parsed data including positions and educational background. The endpoint is designed to provide comprehensive resume data for a given opportunity.
- GET https://api.lever.co/v1/opportunities/:opportunity/resumes/:resume : The 'Retrieve a Single Resume' API endpoint allows users to retrieve metadata for a specific resume associated with an opportunity. The endpoint requires the opportunity ID and resume ID as path parameters. The response includes details such as the resume's creation timestamp, file information (name, extension, download URL, upload timestamp, status, and size), and parsed data including positions and educational background. This endpoint is accessed via a GET request and requires an API key for authentication. Note that the endpoint via /candidates/ is deprecated, and users should use the /opportunities/ endpoint for the same response.
- GET https://api.lever.co/v1/opportunities/:opportunity/resumes/:resume/download : The 'Download a resume file' API allows users to download a resume file associated with a specific opportunity if it exists. The endpoint requires the opportunity ID and resume ID as path parameters. It uses basic authentication with an API key. The response includes the binary content of the resume file, typically in PDF format, along with headers indicating the content type and disposition. If the file cannot be processed, a 422 Unprocessable Entity status is returned. Note that the endpoint via /candidates/ is deprecated, and users should use the /opportunities/ endpoint instead.
Postings
- POST https://api.lever.co/v1/postings : The 'Create a Posting' API endpoint allows integrations to create job postings in a Lever account. This API does not trigger the approvals chain, but postings can be created as drafts and later go through approvals within Lever Hire. The API accepts requests in JSON format and requires a 'perform_as' query parameter to specify the user on whose behalf the posting is created. The request body includes details such as the job title, state, distribution channels, owner, hiring manager, categories, tags, content, workplace type, and requisition codes. The response returns the created posting's details, including its ID, title, timestamps, user information, categories, content, distribution channels, salary details, state, tags, URLs, workplace type, and requisition codes.
- GET https://api.lever.co/v1/postings/:posting : The 'Retrieve a Single Posting' API endpoint allows users to fetch the details of a specific job posting, including the job description and associated metadata. The endpoint requires the unique posting ID as a path parameter and optionally accepts a 'distribution' query parameter to specify whether to return internal or external custom application questions. The response includes detailed information about the job posting, such as its title, creation and update timestamps, user and owner details, confidentiality level, categories like team and department, job content including descriptions and lists, location, state, distribution channels, requisition codes, salary details, and URLs for listing, viewing, and applying for the job. The API is authenticated using an API key.
- GET https://api.lever.co/v1/postings/:posting/apply : The Retrieve Posting Application Questions API endpoint provides a list of questions included in a job posting's application form. It indicates whether each field is required. The API is accessed via a GET request to the specified URL with the posting ID as a path parameter. The request requires an API key for authentication. The response includes custom questions, EEO questions, personal information fields, and URLs related to the application. Custom questions may include fields like previous work experience and favorite programming language. EEO questions cover topics such as gender, race, veteran status, and disability, with options for each. Personal information fields include full name, email, current company, phone, resume, and additional information. URLs may include LinkedIn, other websites, and GitHub profiles. Note that collecting disability information is only allowed for US contractors, and EEO questions may not be saved if legally restricted.
Requisition Fields
- POST https://api.lever.co/v1/requisition_fields : The 'Create a requisition field' API allows users to create a set of requisition field schemas that can be used across their account for any requisition. The API accepts POST requests with a JSON body containing the field identifier, human-readable field name, field type, and optionally, whether the field is required. Fields can be of type 'number', 'text', 'date', 'object', or 'dropdown'. For 'object' type fields, subfields must be specified, and for 'dropdown' type fields, options must be provided. The response includes the created field's details, including its identifier, name, type, and any subfields or options.
- PUT https://api.lever.co/v1/requisition_fields/:requisition_field : The 'Update a requisition field' API allows users to update an existing requisition field by sending a PUT request to the specified endpoint. The request must include the full requisition_field object with updated properties in the request body. Any properties not included will be considered deleted. The API requires a Content-Type header set to 'application/json' and an API key for authentication. The response returns the updated requisition field data.
- POST https://api.lever.co/v1/requisition_fields/:requisition_field/options : The 'Updating Dropdown Fields' API allows users to append, update, or delete options in a dropdown field without needing to replace the entire object. The API supports POST, PUT, and DELETE methods. The POST method is used to add new options to the dropdown. The request requires a 'Content-Type' header set to 'application/json' and an 'Authorization' header with the API key. The path parameter ':requisition_field' specifies the dropdown field to be updated. The request body contains an array of 'values', each with a 'text' property representing the dropdown option. The response returns the 'id' and 'text' of the newly created option.
Requisitions
- GET https://api.lever.co/v1/requisitions : The 'List all requisitions' API endpoint allows users to retrieve a list of requisitions from the Lever platform. Users can filter the requisitions based on various query parameters such as 'created_at_start', 'created_at_end', 'requisition_code', 'status', and 'confidentiality'. The API requires an API key for authentication. The response includes detailed information about each requisition, including its ID, requisition code, name, confidentiality status, creation timestamp, creator ID, headcount details, status, hiring manager, owner, compensation band, employment status, location, internal notes, postings, department, team, offer IDs, approval details, custom fields, and timestamps for closure and updates.
- GET https://api.lever.co/v1/requisitions/:requisition : The 'Retrieve a Single Requisition' API endpoint allows users to fetch detailed information about a specific requisition using its unique identifier. The API requires an API key for authentication and the requisition ID as a path parameter. The response includes comprehensive details about the requisition such as its code, name, status, headcount, compensation band, location, department, and more. It also provides information about the approval process, custom fields, and timestamps related to the requisition's lifecycle.
Sources
- GET https://api.lever.co/v1/sources : The 'List all sources' API endpoint retrieves a list of all sources in your Lever account. It requires a GET request to the URL 'https://api.lever.co/v1/sources' with basic authentication using an API key. The response includes a JSON object with a 'data' array, where each element contains a 'text' field representing the name of the source and a 'count' field indicating the number of occurrences of that source.
Stages
- GET https://api.lever.co/v1/stages : The 'List all stages' API retrieves all pipeline stages available in your Lever account. It requires a GET request to the endpoint 'https://api.lever.co/v1/stages' with basic authentication using an API key. The response includes an array of stages, each with a unique 'id' and a 'text' field representing the name of the stage. This API does not require any path or query parameters, nor does it require a request body.
- GET https://api.lever.co/v1/stages/:stage : The 'Retrieve a Single Stage' API endpoint allows users to fetch details of a specific stage using its unique identifier. The request requires an API key for authentication, which should be included in the headers. The stage ID is a path parameter that specifies which stage to retrieve. The response includes the stage's unique identifier and its name or description.
Diversity Surveys
- GET https://api.lever.co/v1/surveys/diversity/:posting : The 'Retrieve a diversity survey' API endpoint allows users to retrieve a diversity survey associated with a specific location. The endpoint requires a posting ID as a path parameter and optionally accepts a country code as a query parameter to filter candidate self-select location surveys. If no country code is provided and the account's survey type is set to candidate self-select, all active surveys will be returned. The response includes details such as survey ID, creation and update timestamps, survey text, candidate locations, instructions, and fields with options.
Tags
- GET https://api.lever.co/v1/tags : The 'List all tags' API endpoint allows users to retrieve all tags associated with their Lever account. The request requires an API key for authentication, which should be included in the headers. The response returns a list of tags, each with a 'text' field indicating the tag name and a 'count' field indicating the number of times the tag is used.
Uploads
- POST https://api.lever.co/v1/uploads : The 'Upload a file' API endpoint allows users to upload files temporarily to be used in conjunction with the 'Apply to a posting' endpoint. This endpoint accepts requests of type 'multipart/form-data' and allows uploading of binary files up to 30MB in size. The uploaded file will be available for 24 hours, after which it cannot be referenced. The response includes details such as the expiration timestamp, filename, unique file ID, URI for accessing the file, and the file size.
Users
- POST https://api.lever.co/v1/users : This API endpoint allows integrations to create a user in the Lever account with a default role of Interviewer. Users can also be created with roles such as Limited Team Member, Team Member, Admin, or Super Admin. The request must be of type application/json and include the user's name and email as required fields. Optional fields include accessRole, externalDirectoryId, jobTitle, and managerId. The response includes the user's ID, name, username, email, timestamps for creation and deactivation, external directory ID, access role, photo URL, linked contact IDs, job title, and manager ID.
- GET https://api.lever.co/v1/users/:user : The 'Retrieve a Single User' API endpoint allows you to fetch the full user record for a specific user by their user ID. The request requires an API key for authentication, which should be included in the Authorization header. The user ID is specified as a path parameter in the URL. The response includes detailed information about the user, such as their ID, name, username, email, creation and deactivation timestamps, external directory ID, access role, photo URL, linked contact IDs, job title, and manager ID.
- POST https://api.lever.co/v1/users/:user/deactivate : The 'Deactivate a user' API allows you to deactivate a user in the Lever system. Deactivated users remain in the system for historical record keeping but can no longer log in and use Lever. The API requires a POST request to the endpoint '/users/:user/deactivate' with the user's unique identifier in the path parameter. The request must include the 'Content-Type' header set to 'application/json' and an 'Authorization' header with the API key. The response includes details of the deactivated user such as their ID, name, username, email, creation and deactivation timestamps, external directory ID, access role, photo URL, linked contact IDs, job title, and manager ID.
- POST https://api.lever.co/v1/users/:user/reactivate : The Reactivate a User API allows you to reactivate a user that has been previously deactivated. The endpoint requires a POST request to '/users/:user/reactivate' with the user's unique identifier in the path parameters. The request must include headers for 'Content-Type' as 'application/json' and 'Authorization' with a valid API key. The response returns the user's details including id, name, username, email, creation timestamp, and other relevant information. The 'deactivatedAt' field will be null indicating the user is active.
Webhooks
- POST https://api.lever.co/v1/webhooks : The 'Create a Webhook' API allows users to create a new webhook by specifying the webhook URL and event type. The API requires the 'url' and 'event' parameters, while 'configuration', 'conditions', and 'verifyConnection' are optional. Upon successful creation, the API returns a response containing the webhook's unique ID, event type, URL, configuration details including a signature token, and timestamps for creation and last update. A Super Admin must enable the webhook group in account settings for data transmission to commence.
- DELETE https://api.lever.co/v1/webhooks/:webhookId : The 'Delete a Webhook' API allows users to delete a specific webhook by its unique identifier. The request requires an API key for authentication, which should be included in the headers. The 'webhookId' is a required path parameter that specifies the webhook to be deleted. Upon successful deletion, the API returns a 204 No Content status, indicating that the webhook has been successfully removed.
Here’s a detailed reference to all the Lever API Endpoints.
Lever API FAQs
Here are the frequently asked questions about Lever APIs to help you get started:
- What is the difference between the Lever API and Postings API? Answer
- Does the Lever API archive encompass all candidates either rejected or somehow stopped the interview process? Answer
- Does each company customize stages in Lever API? Answer
- How do I add global tags to a Lever account? Answer
- Does each company customize tags in Lever? Answer
- What are the rate limits for the Lever API? Answer
- How can I get a sandbox account to test the Lever API? Answer
Find more FAQs here.
Get started with Lever API
Lever API access is only available for integration after a careful internal review based on your interest. However, if you want to integrate with multiple HRMS or Recruitment APIs quickly, you can get started with Knit, one API for all top HR integrations.
To sign up for free, click here. To check the pricing, see our pricing page.