---
title: "Get user documents"
method: GET
path: "/documents/v1/user-documents"
tags: ["Documents:v1:Documents"]
---

# Get user documents

`GET /documents/v1/user-documents`

## Request

- Base URL: `https://api.connecteam.com`
- URL: `https://api.connecteam.com/documents/v1/user-documents`
- Auth: one of:
  - API key in header `X-API-KEY`
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth/v1/token` scopes: `documents.read`

Retrieve which documents are assigned to which users, through document packs the caller is authorized to view, together with each user's status on each document. Filter by document id to see who a document is assigned to and where each user stands, or by user id to see one employee's assigned documents and compliance state. At least one filter is required.

## Query parameters

- `documentIds` integer[], nullable: Only include these document ids, up to 100
- `userIds` integer[], nullable: Only include these user ids, up to 100
- `status` 'pendingUserUpload' | 'pendingUserFilling' | 'pendingAdminFilling' | 'pendingYourCompletion' | 'pendingApproval' | 'approved' | 'rejected'
- `expiringBefore` integer, nullable: Integer with minimum value of 0
- `limit` integer: The maximum number of results to display per page
- `offset` integer: The resource offset of the last successfully read resource will be returned as the paging.offset JSON property of a paginated response containing more results

## Response `200`

Successful Response

- PaginatedBaseResponseV2UserDocumentsListData
  - `requestId` string
  - `data` UserDocumentsListData, required
    - `documents` UserDocumentResponse[], required: Per-user document rows for documents assigned through document packs
      - `userId` integer, required: The unique identifier of the user the document is assigned to
      - `documentId` integer, required: The unique identifier of the document
      - `documentType` 'document' | 'eSign' | 'governmentDocument', required: Member names mirror DocumentType; the values differ because internally "esign" is the government forms system and "esign_v2" is the custom e-sign one.
      - `status` 'pendingUserUpload' | 'pendingUserFilling' | 'pendingAdminFilling' | 'pendingYourCompletion' | 'pendingApproval' | 'approved' | 'rejected', required
      - `uploadedAt` integer, nullable: Integer with minimum value of 0
      - `signedAt` integer, nullable: Integer with minimum value of 0
      - `expiresAt` integer, nullable: Integer with minimum value of 0
  - `paging` PagingResponseModelV2, required
    - `offset` integer, required: The resource offset of the last successfully read resource will be returned as the paging.offset JSON property of a paginated response containing more results
    - `total` integer, nullable: Total number of resources matching the request, ignoring pagination. Use this to retrieve the full count without paginating through every page. Only populated by endpoints that compute it.

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-03** `a01dde7c27fb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/connecteam/apis/connecteam-api-documentation/changes/documents/v1/user-documents/get.md)

---

[API](https://skmtc.dev/connecteam/apis/connecteam-api-documentation.md) - [All operations](https://skmtc.dev/connecteam/apis/connecteam-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/connecteam/apis/connecteam-api-documentation/revisions/a01dde7c27fb?raw)
