openapi: 3.0.3 info: title: Lattice HRIS Competencies Departments API description: 'REST API (v2) for Lattice''s HRIS product covering employee records, organizational hierarchy, and HR core data. Supports service account Bearer token authentication and is designed for HR system integrations including Okta SCIM provisioning. Also exposes v2 review submission endpoints shared with the Talent API. ' version: v2 contact: name: Lattice Developer Support email: customercare@lattice.com url: https://developers.lattice.com termsOfService: https://lattice.com/legal/terms-of-service license: name: Proprietary url: https://lattice.com/legal/terms-of-service servers: - url: https://api.latticehq.com/v2 description: Lattice HRIS API v2 production server security: - BearerAuth: [] tags: - name: Departments description: Manage and retrieve department records paths: /departments: get: summary: List departments operationId: listDepartments tags: - Departments description: Returns a paginated list of all departments in Lattice. parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/startingAfter' responses: '200': description: Paginated list of departments content: application/json: schema: $ref: '#/components/schemas/DepartmentList' '400': $ref: '#/components/responses/BadRequest' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/ServerError' /department/{id}: get: summary: Get department by ID operationId: getDepartment tags: - Departments description: Returns a department with the given id. If cannot find department, returns a 404. parameters: - name: id in: path required: true schema: type: string description: The department identifier responses: '200': description: Department object content: application/json: schema: $ref: '#/components/schemas/Department' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/ServerError' components: schemas: PaginatedList: type: object properties: object: type: string enum: - list hasMore: type: boolean description: Whether or not there are more elements available after this set endingCursor: type: string nullable: true description: The cursor to use to get the next set of items in the list required: - object - hasMore Department: type: object properties: id: type: string object: type: string url: type: string name: type: string description: type: string nullable: true description: Markdown-formatted description createdAt: type: integer description: Unix timestamp required: - id - object - url - name - createdAt DepartmentList: allOf: - $ref: '#/components/schemas/PaginatedList' - type: object properties: data: type: array items: $ref: '#/components/schemas/Department' required: - data ErrorResponse: type: object properties: error: type: string description: Human-readable error message required: - error parameters: startingAfter: name: startingAfter in: query required: false schema: type: string description: Cursor for fetching the next page of results limit: name: limit in: query required: false schema: type: integer format: int32 description: Maximum number of items to return per page responses: ServerError: description: Server error while processing request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Could not find the requested resource content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' UnprocessableEntity: description: Unprocessable - request is syntactically valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: BearerAuth: type: http scheme: bearer description: 'Service account API key passed as a Bearer token in the Authorization header. Example: Authorization: Bearer '