Lattice Users API

Manage and retrieve user records

Operations 5

GET /users List users #
GET /user/{id} Get user by ID #
GET /user/{id}/directReports List direct reports for a user #
GET /user/{id}/tasks List tasks for a user #
GET /user/{id}/customAttributes List custom attributes for a user #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lattice-users-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lattice-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lattice HRIS Competencies Users 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: Users
  description: Manage and retrieve user records
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      tags:
      - Users
      description: 'Returns a paginated list of users in Lattice. By default, returns active users. A status parameter of NULL will retrieve all users regardless of status.

        '
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/startingAfter'
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - ACTIVE
          - INVITED
          - CREATED
          - DEACTIVATED
          - null
        description: Filter by user status; NULL returns all users.
      responses:
        '200':
          description: Paginated list of users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
  /user/{id}:
    get:
      summary: Get user by ID
      operationId: getUser
      tags:
      - Users
      description: Returns a user with the given id. If cannot find user, returns a 404.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The user identifier
      responses:
        '200':
          description: User object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
  /user/{id}/directReports:
    get:
      summary: List direct reports for a user
      operationId: listUserDirectReports
      tags:
      - Users
      description: Returns a paginated list of direct reports for a specific user.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The user identifier
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/startingAfter'
      responses:
        '200':
          description: Paginated list of users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
  /user/{id}/tasks:
    get:
      summary: List tasks for a user
      operationId: listUserTasks
      tags:
      - Users
      description: Returns a paginated list of tasks for a specific user.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The user identifier
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/startingAfter'
      responses:
        '200':
          description: Paginated list of tasks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
  /user/{id}/customAttributes:
    get:
      summary: List custom attributes for a user
      operationId: listUserCustomAttributes
      tags:
      - Users
      description: Returns custom attribute values for a specific user.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The user identifier
      responses:
        '200':
          description: List of custom attribute values
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomAttributeValueList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    CustomAttribute:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        type:
          type: string
      required:
      - id
      - object
      - name
      - type
    User:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        url:
          type: string
        name:
          type:
          - string
          - 'null'
        preferredName:
          type:
          - string
          - 'null'
        email:
          type: string
          format: email
        title:
          type:
          - string
          - 'null'
        status:
          type: string
          enum:
          - ACTIVE
          - INVITED
          - CREATED
          - DEACTIVATED
        isAdmin:
          type: boolean
        externalUserId:
          type:
          - string
          - 'null'
        manager:
          $ref: '#/components/schemas/ObjectReference'
        department:
          $ref: '#/components/schemas/ObjectReference'
        directReports:
          $ref: '#/components/schemas/ListReference'
        tasks:
          $ref: '#/components/schemas/ListReference'
        customAttributes:
          $ref: '#/components/schemas/ListReference'
        timezone:
          type:
          - string
          - 'null'
        startDate:
          type:
          - string
          - 'null'
          format: date
        birthDate:
          type:
          - string
          - 'null'
          format: date
        gender:
          type:
          - string
          - 'null'
        jobFunction:
          type:
          - string
          - 'null'
        jobLevel:
          type:
          - string
          - 'null'
        jobType:
          type:
          - string
          - 'null'
        createdAt:
          type: integer
          description: Unix timestamp
        updatedAt:
          type: integer
          description: Unix timestamp
      required:
      - id
      - object
      - url
      - email
      - status
      - isAdmin
      - directReports
      - tasks
      - customAttributes
    CustomAttributeValueList:
      allOf:
      - $ref: '#/components/schemas/PaginatedList'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/CustomAttributeValue'
        required:
        - data
    UserList:
      allOf:
      - $ref: '#/components/schemas/PaginatedList'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/User'
        required:
        - data
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
      required:
      - error
    ObjectReference:
      type: object
      description: A lightweight reference to another Lattice object
      properties:
        id:
          type: string
        object:
          type: string
        url:
          type: string
      required:
      - id
      - object
      - url
    ListReference:
      type: object
      description: A reference to a paginated list of related objects
      properties:
        object:
          type: string
          enum:
          - list
        url:
          type: string
      required:
      - object
      - url
    TaskList:
      allOf:
      - $ref: '#/components/schemas/PaginatedList'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/Task'
        required:
        - data
    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
          - 'null'
          description: The cursor to use to get the next set of items in the list
      required:
      - object
      - hasMore
    Task:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        url:
          type: string
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        dueDate:
          type:
          - string
          - 'null'
          format: date
        completedAt:
          type:
          - integer
          - 'null'
          description: Unix timestamp
        createdAt:
          type: integer
          description: Unix timestamp
        updatedAt:
          type: integer
          description: Unix timestamp
      required:
      - id
      - object
      - url
      - name
      - createdAt
      - updatedAt
    CustomAttributeValue:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        attribute:
          $ref: '#/components/schemas/CustomAttribute'
        value:
          type:
          - string
          - 'null'
      required:
      - id
      - object
      - attribute
  parameters:
    limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        format: int32
      description: Maximum number of items to return per page
    startingAfter:
      name: startingAfter
      in: query
      required: false
      schema:
        type: string
      description: Cursor for fetching the next page of results
  responses:
    UnprocessableEntity:
      description: Unprocessable - request is syntactically valid but cannot be processed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: Server error while processing request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Could not find the requested resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters
      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 <your-api-key>

        '