---
title: "Search Documents"
method: POST
path: "/v1/documents/search"
tags: ["Document Access"]
---

# Search Documents

`POST /v1/documents/search`

## Request body

- object
  - `product` Product[] — Array of Lucid Suite products to filter by. Default value assumes all valid products for the given scopes.
  - `createdStartTime` string, date-time — Date and time to filter documents that have been created after. Default value assumes the beginning of time.
  - `createdEndTime` string, date-time — Date and time to filter documents that have been created before. Default value assumes the current instant of time.
  - `lastModifiedAfter` string, date-time — Date and time to filter documents that have been modified after. Default value assumes the beginning of time.
  - `keywords` string — Keywords to search against document content and titles. This field is truncated to 400 characters. When provided, results will be sorted by relevance to keyword search.
  - `excludeTrashed` boolean — When set to true, excludes trashed/deleted documents from search results. When set to false or omitted, trashed documents are included in results with their trashedTimestamp populated.
  - `documentLocation` 'repositories' — When provided, restricts search results to documents contained within repositories the authenticated user can access. Only the value "repositories" is supported on this endpoint.

## Response `200`

OK with an array of Document Resource objects containing information about documents the authenticated user has access to.

- Document[]
  - `documentId` string, uuid, required — Unique ID of the document
  - `title` string, required — Title of the document
  - `editUrl` string, uri, required — Link to edit the document
  - `viewUrl` string, uri, required — Link to view the document
  - `version` integer, required — Most recent version
  - `pageCount` integer, required — Number of pages within the document
  - `canEdit` boolean, required — If requesting user can edit the document
  - `created` string, date-time, required — Date and time of when the document was created
  - `creatorId` integer, required — ID of user who created and owns the document
  - `lastModified` string, date-time, required — Date and time of when the document was last modified
  - `lastModifiedUserId` integer, required — ID of user who most recently modified the document
  - `customAttributes` CustomAttribute[], required — List of any custom attributes belonging to the document. Populated for Enterprise Accounts only.
    - `type` 'singleLineText' | 'multiLineText' | 'singleSelectDropdown' | 'multiSelectDropdown' | 'webLink' | 'numericalRange' | 'hierarchicalDropdown', required — The custom attribute type
    - `name` string — Title of the custom attribute. hierarchicalDropdown attributes do not have names.
    - `value` union — The value assigned to the custom attribute. The type of this value is determined by the Attribute Type.
      - string
      - union[]
        - union
          - DataPair — Object representing a key-value pair of data.
            - `name` string, required — Custom data key
            - `value` string, required — Custom data value
          - string
  - `customTags` string[], required — List of any custom tags assigned to the document
  - `product` 'lucidchart' | 'lucidscale' | 'lucidspark', required — The Lucid Suite product that a document was created in.
  - `status` string, nullable — Current assigned status of the document
  - `classification` string, nullable — Current assigned classification of the document
  - `classificationId` string, uuid, nullable — Current assigned classification ID of the document.
  - `trashed` string, date-time, nullable — If defined, the timestamp when the document was moved to the trash
  - `parent` integer, nullable — ID of the parent folder
  - `repository` Repository
    - `repositoryId` string — the ID of the repository
  - `accountId` integer, nullable, required — ID of Lucid account that owns the document
  - `owner` DocumentOwner
    - `id` number — Id of either the user or the account, depending on the type of the document user resource.
    - `type` string — Specifies if the owner resource is referring to a user or an account. Value will be either "user" or "account".
    - `name` string — Full name of the user that owns this document. This field is excluded if this document is owned by an account.

## Other responses

- `400` — Bad Request if the request does not contain a body.
- `403` — Forbidden if the product query parameter is used and the token's scopes do not contain the matching readonly scope for each product.
- `429` — Too Many Requests if the account makes more than 300 requests in 5 seconds.

---

[API](https://skmtc.net/lucid/apis/lucid-rest-api.md) · [All operations](https://skmtc.net/lucid/apis/lucid-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lucid/lucid-rest-api/revisions/6a32cb9e1aa7/schema)
