---
title: "OpenRosa Form Manifest API"
method: GET
path: "/v1/projects/{projectId}/forms/{xmlFormId}/manifest"
tags: ["OpenRosa Endpoints"]
---

# OpenRosa Form Manifest API

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

_(introduced: version 0.2)_

This is the fully standards-compliant implementation of the [OpenRosa Form Manifest API](https://bitbucket.org/javarosa/javarosa/wiki/FormListAPI#!the-manifest-document). We will not attempt to redocument the standard here.

A Manifest document is available at this resource path for any form in the system. However:

* A link to this document will not be given in the [Form Listing API](/central-api-openrosa-endpoints/#openrosa-form-listing-api) unless we expect the form to have media or data file attachments based on the XForms definition of the form.

* The Manifest will only output information for files the server actually has in its possession. Any missing expected files will be omitted, as we cannot provide a `hash` or `downloadUrl` for them.

* For Attachments that are linked to a Dataset, the value of `hash` is an MD5 sum derived from the last updated timestamp of the Dataset. It is not the MD5 sum for the content of the Dataset CSV file.

[Offline Entities support](https://forum.getodk.org/t/openrosa-spec-proposal-support-offline-entities/48052):

* If an attachment is linked to a Dataset, then `type="entityList"` attribute is added to the `mediaFile` element. If the Dataset requires approval of Submission to create new Entity then `type="approvalEntityList"` is added instead.

* `integrityUrl` is also returned for the attachments that are linked to a Dataset.

## Path parameters

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

## Headers

- `X-OpenRosa-Version` string

## Response `200`

OK

## Changes

- **2025-12-20** `022694254f0d` — 1 info
  - api operation id `OpenRosa Form Manifest API` removed and replaced with `openrosaGetFormManifest`
- **2025-10-27** `b11b54eea487` — 1 info
  - removed the non-success response with the status `403`
- **2025-03-13** `e8c2858fd4eb` — 2 info
  - api operation id `openrosaGetFormManifest` removed and replaced with `OpenRosa Form Manifest API`
  - 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/manifest/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)
