---
title: "List form definitions"
method: GET
path: "/api/forms/{formId}/definitions"
tags: ["Forms"]
---

# List form definitions

`GET /api/forms/{formId}/definitions`

Lists form definitions for a given form as a paged envelope (items, page, pageSize, totalRecords, totalPages). Optional sort and created/modified date bounds. Empty form returns 404.

## Path parameters

- `formId` integer, required

## Query parameters

- `page` integer, nullable
- `pageSize` integer, nullable
- `sortBy` string, nullable
- `sortDir` string, nullable
- `createdFrom` string, nullable
- `createdTo` string, nullable
- `modifiedFrom` string, nullable
- `modifiedTo` string, nullable

## Response `200`

Form definitions retrieved successfully.

- PagedOfFormDefinitionModel
  - `page` integer
  - `pageSize` integer
  - `totalRecords` integer
  - `totalPages` integer
  - `items` FormDefinitionModel[]
    - `id` string, nullable — The ID of the form definition.
    - `isDraft` boolean — Indicates if the form definition is a draft.
    - `jsonData` string, nullable — The JSON data of the form definition.
    - `formId` string, nullable — The ID of the associated form.
    - `createdAt` string, date-time — The date and time when the form definition was created.
    - `modifiedAt` string, date-time, nullable — The date and time when the form definition was last modified.
    - `themeModel` string, nullable — The model of the associated theme stored as a stringified JSON object.
    - `customQuestions` string[], nullable — The list of custom questions' JSON data associated with this form definition.
    - `requiresReCaptcha` boolean, nullable — Indicates if reCAPTCHA is enabled for this form definition.

## Other responses

- `400` — Invalid input data.
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Form not found.

## Changes

- **2026-08-27** `01bd299fd100` — 1 breaking, 11 info
  - the response's body type/format changed from `array`/`` to `object`/`` for status `200`
  - added the new optional `query` request parameter `createdFrom`
  - added the new optional `query` request parameter `createdTo`
  - added the new optional `query` request parameter `modifiedFrom`
  - …8 more
- **2025-11-21** `50eff5014b78` — 1 breaking, 3 info
  - removed the media type `application/problem+json` for the response with the status `400`
  - added the optional property `items/customQuestions` to the response with the `200` status
  - added the optional property `items/requiresReCaptcha` to the response with the `200` status
  - added the optional property `items/themeModel` to the response with the `200` status
- **2025-03-24** `fbc3fe6ecbf1` — 3 warning, 1 info
  - removed the optional property `items/customQuestions` from the response with the `200` status
  - removed the optional property `items/requiresReCaptcha` from the response with the `200` status
  - removed the optional property `items/themeModel` from the response with the `200` status
  - added the media type `application/problem+json` for the response with the status `400`

[Change history](https://skmtc.dev/endatix/apis/endatix-platform-rest-api/changes/api/forms/:formId/definitions/get.md)

---

[API](https://skmtc.dev/endatix/apis/endatix-platform-rest-api.md) · [All operations](https://skmtc.dev/endatix/apis/endatix-platform-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/endatix/endatix-platform-rest-api/revisions/01bd299fd100/schema)
