Skip to main content
Version: Next

Forms API

Use the Forms API to deploy and retrieve versioned form definitions by stable form ID.

Operations​

MethodPathSummary
GET/formsGet all form versions
POST/formsDeploy a form
GET/forms/{id}Get form by ID
GET/forms/latestGet latest form version
GET/forms/latest-listGet latest form definitions

GET /forms​

Get all form versions

Retrieve all versions of a form by formId. The name parameter is also supported for lookup by form name.

PropertyValue
Operation IDgetAllVersions
AuthBearer token required unless security is disabled.
Response DTOForm[]

Parameters​

NameInRequiredTypeDescription
formIdqueryNostring
namequeryNostring

Example request​

curl -X GET "http://localhost:8080/forms?formId=expenseReview" \
-H "Authorization: Bearer $TOKEN"

Responses​

StatusDescriptionSchema
200OKForm[]

Example response​

Status: 200 OK

[
{
"id": 12,
"formId": "expenseReview",
"name": "Expense Review",
"version": 1,
"createdAt": "2026-06-17T10:00:00",
"schema": {
"type": "object",
"title": "Expense Review",
"properties": {
"approved": {
"type": "boolean"
},
"comment": {
"type": "string"
}
}
}
}
]

POST /forms​

Deploy a form

Create and deploy a new form definition

PropertyValue
Operation IDdeployForm
AuthBearer token required unless security is disabled.
Request DTODeployFormRequest
Request content typeapplication/json
Response DTOForm

Request body​

RequiredContent typeDTO/schema
Yesapplication/jsonDeployFormRequest

Example request body:

{
"formId": "expenseReview",
"name": "Expense Review",
"schema": {
"type": "object",
"title": "Expense Review",
"required": [
"approved"
],
"properties": {
"approved": {
"type": "boolean",
"title": "Approve request"
},
"comment": {
"type": "string",
"title": "Manager comment"
}
}
}
}

Example request​

curl -X POST "http://localhost:8080/forms" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"formId": "expenseReview",
"name": "Expense Review",
"schema": {
"type": "object",
"title": "Expense Review",
"required": [
"approved"
],
"properties": {
"approved": {
"type": "boolean",
"title": "Approve request"
},
"comment": {
"type": "string",
"title": "Manager comment"
}
}
}
}'

Responses​

StatusDescriptionSchema
200OKForm

Example response​

Status: 200 OK

{
"id": 12,
"formId": "expenseReview",
"name": "Expense Review",
"version": 1,
"createdAt": "2026-06-17T10:00:00",
"schema": {
"type": "object",
"title": "Expense Review",
"properties": {
"approved": {
"type": "boolean"
},
"comment": {
"type": "string"
}
}
}
}

GET /forms/{id}​

Get form by ID

Retrieve a specific form by its ID

PropertyValue
Operation IDgetById
AuthBearer token required unless security is disabled.
Response DTOForm

Parameters​

NameInRequiredTypeDescription
idpathYesinteger(int64)

Example request​

curl -X GET "http://localhost:8080/forms/123" \
-H "Authorization: Bearer $TOKEN"

Responses​

StatusDescriptionSchema
200OKForm

Example response​

Status: 200 OK

{
"id": 12,
"formId": "expenseReview",
"name": "Expense Review",
"version": 1,
"createdAt": "2026-06-17T10:00:00",
"schema": {
"type": "object",
"title": "Expense Review",
"properties": {
"approved": {
"type": "boolean"
},
"comment": {
"type": "string"
}
}
}
}

GET /forms/latest​

Get latest form version

Retrieve the latest version of a form by formId. The name parameter is also supported for lookup by form name.

PropertyValue
Operation IDgetLatest
AuthBearer token required unless security is disabled.
Response DTOForm

Parameters​

NameInRequiredTypeDescription
formIdqueryNostring
namequeryNostring

Example request​

curl -X GET "http://localhost:8080/forms/latest?formId=expenseReview" \
-H "Authorization: Bearer $TOKEN"

Responses​

StatusDescriptionSchema
200OKForm

Example response​

Status: 200 OK

{
"id": 12,
"formId": "expenseReview",
"name": "Expense Review",
"version": 1,
"createdAt": "2026-06-17T10:00:00",
"schema": {
"type": "object",
"title": "Expense Review",
"properties": {
"approved": {
"type": "boolean"
},
"comment": {
"type": "string"
}
}
}
}

GET /forms/latest-list​

Retrieves the latest version of each deployed form. Use this endpoint when the Modeler or an integration needs the current catalog without receiving every historical version.

curl -X GET "http://localhost:8080/forms/latest-list" \
-H "Authorization: Bearer $TOKEN"

The response is an array of Form records.