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

# Listing Form Attachments

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

This endpoint allows you to fetch the list of expected attachment files, and will tell you whether the server is in possession of each file or not, and a hash of the file contents. To modify an attachment, you'll need to create a Draft. The property `datasetExists` indicates whether  the attachment is a link to a Dataset instead of an actual file.

## 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 Form Attachments` removed and replaced with `listFormAttachments`
- **2025-10-27** `b11b54eea487` — 1 info
  - removed the non-success response with the status `403`
- **2025-03-13** `e8c2858fd4eb` — 2 info
  - api operation id `listFormAttachments` removed and replaced with `Listing 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/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)
