> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.sesametime.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List absence justification documents

> List the justification documents attached to absence requests, most recently uploaded first. Returns ONE row per document, carrying the absence request it justifies — the complement of GET /public/schedule/v1/absence-day-off-requests, which returns one row per absence with its documentIds. Justifications of clock-in requests, stored in the same directory, are never returned. A document whose absence request no longer exists is still returned, with absence set to null. The file itself is downloaded through GET `/public/document/v1/documents/{documentId}/download`.

<div className="endpoint-versions" data-nav-page="/api-reference-v2/schedule/v4/absence-justifications-get" data-nav-group="Absence Justifications">
  <span className="endpoint-versions-label">Version:</span>
  <span data-version="v4" data-current>v4</span>
</div>


## OpenAPI

````yaml openapi-v2.json GET /schedule/v4/absence-justifications
openapi: 3.0.0
info:
  title: Sesame Public API v2
  description: >-
    Public API v2 — additive surface `/public/{context}/v{N}`,
    endpoint-versioned from v4
  version: 1.0.0
servers:
  - url: https://api.sesamehr.com
    description: Production
security:
  - Bearer: []
paths:
  /schedule/v4/absence-justifications:
    get:
      tags:
        - Absence Justifications
      summary: List absence justification documents
      description: >-
        List the justification documents attached to absence requests, most
        recently uploaded first. Returns ONE row per document, carrying the
        absence request it justifies — the complement of GET
        /public/schedule/v1/absence-day-off-requests, which returns one row per
        absence with its documentIds. Justifications of clock-in requests,
        stored in the same directory, are never returned. A document whose
        absence request no longer exists is still returned, with absence set to
        null. The file itself is downloaded through GET
        `/public/document/v1/documents/{documentId}/download`.
      operationId: ListAbsenceJustifications
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 20
            maximum: 100
        - name: employeeId
          in: query
          description: >-
            Only justifications of this employee. The employee must exist and
            belong to your company.
          required: false
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Paginated absence justification documents. meta counts DOCUMENTS,
            not absences.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAbsenceJustificationsResponse'
        '401':
          description: Missing or invalid API key
        '403':
          description: API consumer lacks permission over the requested resource
        '422':
          description: Validation error
components:
  schemas:
    ListAbsenceJustificationsResponse:
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AbsenceJustificationEntry'
        meta:
          $ref: '#/components/schemas/PaginationMetaEntry'
      type: object
    AbsenceJustificationEntry:
      properties:
        documentId:
          description: >-
            Document id. Download it through GET
            `/public/document/v1/documents/{documentId}/download`.
          type: string
          format: uuid
        name:
          description: File name as uploaded.
          type: string
        fileType:
          description: File extension / type.
          type: string
        fileSize:
          description: File size in bytes.
          type: integer
        createdAt:
          description: When the document was uploaded (ISO 8601).
          type: string
          nullable: true
        absence:
          oneOf:
            - $ref: '#/components/schemas/AbsenceJustificationAbsenceEntry'
          nullable: true
      type: object
    PaginationMetaEntry:
      properties:
        currentPage:
          description: Current page number (1-based).
          type: integer
        lastPage:
          description: Last available page number.
          type: integer
        total:
          description: Total number of items across all pages.
          type: integer
        perPage:
          description: Number of items per page.
          type: integer
      type: object
    AbsenceJustificationAbsenceEntry:
      properties:
        dayOffRequestId:
          description: Absence request id.
          type: string
          format: uuid
        employeeId:
          description: Employee the absence belongs to.
          type: string
          format: uuid
        status:
          description: Absence request status.
          type: string
        from:
          description: >-
            First day the request covers (YYYY-MM-DD). null when it covers no
            day.
          type: string
          format: date
          nullable: true
        to:
          description: >-
            Last day the request covers (YYYY-MM-DD). null when it covers no
            day.
          type: string
          format: date
          nullable: true
      type: object
  securitySchemes:
    Bearer:
      type: http
      description: 'Sesame Public API consumer token (Authorization: Bearer <token>)'
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.