Justworks Time Off API

Manage time-off balances, policies, and requests. Balance reports are asynchronous — submit a POST, then poll the report endpoint until ready. Policies and requests are paginated reads with standard cursor semantics.

Justworks Time Off API is one of 7 APIs that Justworks publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Time Off, PTO, Leave, and HR. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

justworks-time-off-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Justworks Time Off API
  description: |
    Manage time-off balances, policies, and requests in the Justworks
    Partner API. Time-off balances are produced as asynchronous reports —
    submit a request, then poll the report endpoint until ready.
  version: '2026-05-25'
  contact:
    name: Justworks Partner Support
    url: https://public-api.justworks.com/v1/docs

servers:
  - url: https://public-api.justworks.com
    description: Production Server

security:
  - OAuth2: []

tags:
  - name: Time Off Balances
    description: Asynchronous balance reports for time-off policies
  - name: Time Off Policies
    description: Read access to time-off policy catalog
  - name: Time Off Requests
    description: Read access to time-off requests submitted by members

paths:
  /v1/time-off/balances:
    post:
      summary: Justworks Create Time Off Balances Report
      description: Request an asynchronous time-off balance report for a member, policy, and as-of date.
      operationId: createTimeOffBalancesReport
      tags:
        - Time Off Balances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - member_id
                - policy_id
                - as_of_date
              properties:
                member_id:
                  type: string
                policy_id:
                  type: string
                as_of_date:
                  type: string
                  format: date
      responses:
        '202':
          description: Report accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  report_id:
                    type: string

  /v1/time-off/balances/{report_id}:
    get:
      summary: Justworks Get Time Off Balances Report
      description: Retrieve a time-off balance report by id. Poll until status indicates the report is ready.
      operationId: getTimeOffBalancesReport
      tags:
        - Time Off Balances
      parameters:
        - name: report_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Time-off balance report
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        member_id:
                          type: string
                        policy_id:
                          type: string
                        unit_type:
                          type: string
                        available:
                          type: number
                        used:
                          type: number

  /v1/time-off/policies:
    get:
      summary: Justworks List Time Off Policies
      description: List time-off policies configured for the company.
      operationId: listTimeOffPolicies
      tags:
        - Time Off Policies
      parameters:
        - name: status
          in: query
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
        - name: cursor
          in: query
          schema:
            type: string
      responses:
        '200':
          description: A paginated list of policies
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimeOffPolicy'
                  next_cursor:
                    type: string
                    nullable: true

  /v1/time-off/requests:
    get:
      summary: Justworks List Time Off Requests
      description: List time-off requests within a date range, optionally filtered by member, policy, or status.
      operationId: listTimeOffRequests
      tags:
        - Time Off Requests
      parameters:
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: member_id
          in: query
          schema:
            type: string
        - name: policy_id
          in: query
          schema:
            type: string
        - name: status
          in: query
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
        - name: cursor
          in: query
          schema:
            type: string
      responses:
        '200':
          description: A paginated list of time-off requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimeOffRequest'
                  next_cursor:
                    type: string
                    nullable: true

components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://secure.justworks.com/oauth/authorize
          tokenUrl: https://public-api.justworks.com/oauth/token
          refreshUrl: https://public-api.justworks.com/oauth/token
          scopes:
            time_off:read: Read time-off policies, balances, and requests

  schemas:
    TimeOffPolicy:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        status:
          type: string
        type:
          type: string
        deactivation_date:
          type: string
          format: date
          nullable: true
        effective_date:
          type: string
          format: date

    TimeOffRequest:
      type: object
      properties:
        id:
          type: string
        member_id:
          type: string
        policy_id:
          type: string
        status:
          type: string
        unit_type:
          type: string
        amount:
          type: number
        end_date:
          type: string
          format: date
        notes:
          type: string
        start_date:
          type: string
          format: date
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time