---
title: "Listing expected Draft Form Attachments"
method: GET
path: "/v1/projects/{projectId}/forms/{xmlFormId}/draft/attachments"
tags: ["Draft Form"]
---

# Listing expected Draft Form Attachments

`GET /v1/projects/{projectId}/forms/{xmlFormId}/draft/attachments`

Form Attachments for each form are automatically determined when the form is first created, by scanning the XForms definition for references to media or data files. Because of this, it is not possible to directly modify the list of form attachments; that list is fully determined by the given XForm. Instead, the focus of this API subresource is around communicating that expected list of files, and uploading binaries into those file slots.

## Path parameters

- `projectId` number, required
- `xmlFormId` string, required

## Response `200`

OK

- FormAttachment[]
  - `name` string, required — The name of the file as specified in the XForm.
  - `type` 'image' | 'audio' | 'video' | 'file', required
  - `exists` boolean, required — True if the server has the file or the Attachment is linked to a Dataset, otherwise false.
  - `blobExists` boolean, required — True only when a file has been uploaded for this attachment slot. False when no file has been uploaded, or when the attachment is linked to a Dataset instead of a file.
  - `datasetExists` boolean, required — Whether attachment is linked to a Dataset.
  - `size` integer, nullable — The size of the uploaded file in bytes. Only present when `blobExists` is `true`. May be `null` for files on external blob store uploaded before version 2026.3.
  - `updatedAt` string — ISO date format. The last time this file's binary content was set (POST) or cleared (DELETE).

## Changes

- **2026-07-22** `d8f5a0886a8b` — 1 info
  - added the optional property `items/size` to the response with the `200` status
- **2025-12-20** `022694254f0d` — 1 info
  - api operation id `Listing expected Draft Form Attachments` removed and replaced with `listExpectedDraftFormAttachments`
- **2025-10-27** `b11b54eea487` — 1 info
  - removed the non-success response with the status `403`
- **2025-03-13** `e8c2858fd4eb` — 2 info
  - api operation id `listExpectedDraftFormAttachments` removed and replaced with `Listing expected Draft Form Attachments`
  - added the non-success response with the status `403`

[Change history](https://skmtc.dev/getodk/apis/odk-central-api/changes/v1/projects/:projectId/forms/:xmlFormId/draft/attachments/get.md)

---

[API](https://skmtc.dev/getodk/apis/odk-central-api.md) · [All operations](https://skmtc.dev/getodk/apis/odk-central-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getodk/odk-central-api/revisions/d4f5ba77f644/schema)
