---
title: "Query for the latest versions of multiple documents"
method: POST
path: "/document-versions"
tags: ["Query"]
---

# Query for the latest versions of multiple documents

`POST /document-versions`

This endpoint can be called when querying for the latest versions for multiple documents. It's an aggregate endpoint that should make periodic polling of a collection of documents easier.

## Headers

- `If-None-Match` string, etag_value

## Request body

- DocumentQuery — An array of document IDs to track
  - `document_ids` string[], required

## Response `200`

A list of DocumentVersion objects, where each DocumentVersion represents the latest version for each given document on the server.

- DocumentQueryResult — The versions array contains all the latest document version objects.
  - `versions` DocumentVersion[], required
    - `links` DocumentVersionLinks, required — * __document_version__ is a self-URL that can be used for future retrieval of the document version information * __document_version_metadata__ is a URL for retrieving the metadata associated with this document version * __document_version_download__ is a URL for downloading the file backing this document version * __document_versions__ is a URL for retrieving all the versions of the document * __document_details__ is a URL that should be opened in the system browser. It leads to a page on the CDE where users can view or edit document details
      - `document_version` LinkData, required
        - `url` string, required
      - `document_version_metadata` LinkData, required
        - `url` string, required
      - `document_version_download` LinkData, required
        - `url` string, required
      - `document_versions` LinkData, required
        - `url` string, required
      - `document_details` LinkData
        - `url` string, required
    - `version_number` string, required — A human readable version number. This is not expected to be in any specific format across CDEs and may hold any value
    - `version_index` integer, required — A machine readable sequence number of the version of the document. The sequence must be ordered, so that newer versions have higher values than previous ones. Each version index must be unique for that document, but there may be gaps in the sequence
    - `creation_date` string, date-time, required — The creation date of the document revision
    - `title` string, required — A human readable code or identifier
    - `file_description` FileDescription, required — Basic file information
      - `name` string, required
      - `size_in_bytes` integer, required
    - `document_id` string, required — A machine readable identifier that can be used to uniquely identify this version it future calls - see `Query` section

## Changes

- **2022-08-16** `6fc737b62ff0` — 1 info
  - added the new optional `header` request parameter `If-None-Match`
- **2022-08-11** `2d09dcd8ade2` — 1 info
  - api operation id `/document-versions` was added
- **2022-04-11** `587e089ee996` — 2 warning
  - removed the request property `latest_only`
  - removed the request property `since`
- **2022-04-04** `12bb2ad9cc6b` — 1 info
  - added the new optional request property `latest_only`
- **2022-04-04** `307e62e8cf00` — 2 breaking
  - the request property `since` became required
  - the `since` request property's minLength was increased from `0` to `1`

[Full history](https://skmtc.dev/buildingsmart/apis/opencde-documents-api/changes/document-versions/post.md)

---

[API](https://skmtc.dev/buildingsmart/apis/opencde-documents-api.md) · [All operations](https://skmtc.dev/buildingsmart/apis/opencde-documents-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/buildingsmart/opencde-documents-api/revisions/b6d5b5ee5da6/schema)
