openapi: 3.1.0 info: title: Lever API version: v1 description: >- Minimal OpenAPI 3.1 spec for the Lever talent acquisition platform REST API. Lever's API is organized around the Opportunity (candidate-centric) data model and exposes postings, requisitions, applications, interviews, feedback, offers, files, users, and audit events. contact: name: Lever Developer Documentation url: https://hire.lever.co/developer/documentation x-generated-from: https://hire.lever.co/developer/documentation x-generated-by: claude-crawl-2026-05-08 servers: - url: https://api.lever.co/v1 description: Lever production API security: - basicAuth: [] - bearerAuth: [] tags: - name: Opportunities - name: Contacts - name: Postings - name: Requisitions - name: Applications - name: Interviews - name: Feedback - name: Forms - name: Files - name: Resumes - name: Notes - name: Offers - name: Stages - name: ArchiveReasons - name: Sources - name: Tags - name: Users - name: AuditEvents - name: EEO paths: /opportunities: get: tags: [Opportunities] summary: List opportunities responses: '200': $ref: '#/components/responses/Collection' post: tags: [Opportunities] summary: Create opportunity requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /opportunities/deleted: get: tags: [Opportunities] summary: List deleted opportunities responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Opportunities] summary: Retrieve opportunity responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/stage: parameters: - $ref: '#/components/parameters/OpportunityId' put: tags: [Opportunities] summary: Update stage requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/archived: parameters: - $ref: '#/components/parameters/OpportunityId' put: tags: [Opportunities] summary: Update archived state requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/links: parameters: - $ref: '#/components/parameters/OpportunityId' put: tags: [Opportunities] summary: Update contact links requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/tags: parameters: - $ref: '#/components/parameters/OpportunityId' put: tags: [Opportunities] summary: Update tags requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/sources: parameters: - $ref: '#/components/parameters/OpportunityId' put: tags: [Opportunities] summary: Update sources requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/applications: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Applications] summary: List applications for opportunity responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/applications/{application}: parameters: - $ref: '#/components/parameters/OpportunityId' - name: application in: path required: true schema: type: string get: tags: [Applications] summary: Retrieve application responses: '200': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/notes: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Notes] summary: List notes responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/feedback: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Feedback] summary: List feedback forms responses: '200': $ref: '#/components/responses/Collection' post: tags: [Feedback] summary: Create feedback form requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/feedback/{feedback}: parameters: - $ref: '#/components/parameters/OpportunityId' - name: feedback in: path required: true schema: type: string get: tags: [Feedback] summary: Retrieve feedback form responses: '200': $ref: '#/components/responses/Resource' put: tags: [Feedback] summary: Update feedback form requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' delete: tags: [Feedback] summary: Delete feedback form responses: '204': description: Deleted /opportunities/{opportunity}/forms: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Forms] summary: List forms responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/files: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Files] summary: List files responses: '200': $ref: '#/components/responses/Collection' post: tags: [Files] summary: Upload file requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /opportunities/{opportunity}/file-actions: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Files] summary: List file actions responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/resumes: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Resumes] summary: List resumes responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/interviews: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Interviews] summary: List interviews responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/panels: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Interviews] summary: List interview panels responses: '200': $ref: '#/components/responses/Collection' /opportunities/{opportunity}/offers: parameters: - $ref: '#/components/parameters/OpportunityId' get: tags: [Offers] summary: List offers responses: '200': $ref: '#/components/responses/Collection' /candidates: get: tags: [Opportunities] summary: List candidates (deprecated) deprecated: true responses: '200': $ref: '#/components/responses/Collection' /candidates/{candidate}: parameters: - name: candidate in: path required: true schema: type: string get: tags: [Opportunities] summary: Retrieve candidate (deprecated) deprecated: true responses: '200': $ref: '#/components/responses/Resource' /contacts/{contact}: parameters: - name: contact in: path required: true schema: type: string get: tags: [Contacts] summary: Retrieve contact responses: '200': $ref: '#/components/responses/Resource' put: tags: [Contacts] summary: Update contact requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /postings: get: tags: [Postings] summary: List postings responses: '200': $ref: '#/components/responses/Collection' post: tags: [Postings] summary: Create posting requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /postings/{posting}: parameters: - name: posting in: path required: true schema: type: string get: tags: [Postings] summary: Retrieve posting responses: '200': $ref: '#/components/responses/Resource' put: tags: [Postings] summary: Update posting requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' /postings/{posting}/applications: parameters: - name: posting in: path required: true schema: type: string get: tags: [Postings] summary: List application questions responses: '200': $ref: '#/components/responses/Collection' /postings/{posting}/apply: parameters: - name: posting in: path required: true schema: type: string post: tags: [Postings] summary: Apply to posting requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /postings/{posting}/users: parameters: - name: posting in: path required: true schema: type: string get: tags: [Postings] summary: List users with access responses: '200': $ref: '#/components/responses/Collection' /requisitions: get: tags: [Requisitions] summary: List requisitions responses: '200': $ref: '#/components/responses/Collection' post: tags: [Requisitions] summary: Create requisition requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /requisitions/{requisition}: parameters: - name: requisition in: path required: true schema: type: string get: tags: [Requisitions] summary: Retrieve requisition responses: '200': $ref: '#/components/responses/Resource' put: tags: [Requisitions] summary: Update requisition requestBody: $ref: '#/components/requestBodies/Generic' responses: '200': $ref: '#/components/responses/Resource' delete: tags: [Requisitions] summary: Delete requisition responses: '204': description: Deleted /stages: get: tags: [Stages] summary: List stages responses: '200': $ref: '#/components/responses/Collection' /stages/{stage}: parameters: - name: stage in: path required: true schema: type: string get: tags: [Stages] summary: Retrieve stage responses: '200': $ref: '#/components/responses/Resource' /disposition_stages: get: tags: [Stages] summary: List disposition stages responses: '200': $ref: '#/components/responses/Collection' /archive_reasons: get: tags: [ArchiveReasons] summary: List archive reasons responses: '200': $ref: '#/components/responses/Collection' /archive_reasons/{archive_reason}: parameters: - name: archive_reason in: path required: true schema: type: string get: tags: [ArchiveReasons] summary: Retrieve archive reason responses: '200': $ref: '#/components/responses/Resource' /sources: get: tags: [Sources] summary: List sources responses: '200': $ref: '#/components/responses/Collection' /tags: get: tags: [Tags] summary: List tags responses: '200': $ref: '#/components/responses/Collection' /profile_forms: get: tags: [Forms] summary: List profile forms responses: '200': $ref: '#/components/responses/Collection' /users: get: tags: [Users] summary: List users responses: '200': $ref: '#/components/responses/Collection' post: tags: [Users] summary: Create user requestBody: $ref: '#/components/requestBodies/Generic' responses: '201': $ref: '#/components/responses/Resource' /users/{user}: parameters: - name: user in: path required: true schema: type: string get: tags: [Users] summary: Retrieve user responses: '200': $ref: '#/components/responses/Resource' /audit_events: get: tags: [AuditEvents] summary: List audit events responses: '200': $ref: '#/components/responses/Collection' /eeo/responses: get: tags: [EEO] summary: List anonymous EEO responses responses: '200': $ref: '#/components/responses/Collection' /eeo/responses/pii: get: tags: [EEO] summary: List EEO responses with PII responses: '200': $ref: '#/components/responses/Collection' components: securitySchemes: basicAuth: type: http scheme: basic description: API key supplied as the basic auth username with empty password. bearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer access token (Lever Partner OAuth apps). parameters: OpportunityId: name: opportunity in: path required: true schema: type: string description: Opportunity identifier (UUID). requestBodies: Generic: required: true content: application/json: schema: type: object additionalProperties: true responses: Resource: description: Single resource response content: application/json: schema: type: object properties: data: type: object additionalProperties: true additionalProperties: true Collection: description: Collection response with cursor pagination content: application/json: schema: type: object properties: data: type: array items: type: object additionalProperties: true hasNext: type: boolean next: type: string additionalProperties: true