> For the complete documentation index, see [llms.txt](https://www.center.daxium-air.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.center.daxium-air.com/api-reference/forms.md).

# Forms

Retrieve form definitions and their versions

## List all forms

> Returns all available forms with pagination.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"structures"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"StructureListResponse":{"properties":{"next_page":{"type":"integer"},"required":{"properties":{"linked_list_ids":{"type":"array","items":{"type":"integer"}},"structure_ids":{"type":"array","items":{"type":"integer"}}},"type":"object"},"server_time":{"type":"integer","format":"int64"},"structures":{"type":"array","items":{"$ref":"#/components/schemas/Structure"}},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"workflows":{"type":"array","items":{"$ref":"#/components/schemas/Workflow"}}},"type":"object"},"Structure":{"properties":{"can_have_access_restrictions":{"description":"Whether the form supports restricting submissions by access set.","type":"boolean"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Condition"}},"created_at":{"type":"integer","format":"int64"},"deleted_at":{"description":"Deletion timestamp. Present only when the form has been deleted.","type":"integer","format":"int64"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/Field"}},"id":{"type":"integer"},"is_current_user_allowed":{"description":"Whether the authenticated user is allowed to access this form.","type":"boolean"},"layout":{"properties":{"fields":{"type":"array","items":{}},"pages":{"type":"array","items":{}}},"type":"object"},"name":{"type":"string"},"nb_submissions":{"type":"integer"},"settings":{"type":"object","additionalProperties":true},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/Trigger"}},"updated_at":{"type":"integer","format":"int64"},"version":{"type":"integer"},"workflow_id":{"description":"Identifier of the workflow driving this form, when the form has one.","type":"string","format":"uuid"}},"type":"object"},"Condition":{"properties":{"cdt":{"description":"JavaScript condition expression","type":"string"},"fields":{"type":"array","items":{"type":"string"}},"json_format":{"type":"array","items":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"name":{"type":"string"},"uuid":{"type":"string","format":"uuid"}},"type":"object"},"Field":{"description":"A form field's configuration. Its shape depends on when the form was last edited: forms saved with the current builder describe access rules through `permissions`; forms not re-saved since an older version of the builder may still expose the same rules through the flat `enable` / `readonly` / `required` booleans. A given field has one or the other, not both.","properties":{"barcodescan":{"description":"Whether scanning a barcode can fill this field. Only present on fields that support it.","type":"boolean"},"enable":{"description":"Legacy format only, see the note above. Superseded by `permissions.visible`.","type":"boolean"},"externalscan":{"description":"Whether an external scanner can fill this field. Only present on fields that support it.","type":"boolean"},"label":{"type":"string"},"name":{"description":"System name — used as key in submission `items`","type":"string"},"permissions":{"description":"Current format only, see the note above. Each of the three rules is either a constant value or driven by a form condition.","properties":{"editable":{"$ref":"#/components/schemas/FieldPermissionRule"},"required":{"$ref":"#/components/schemas/FieldPermissionRule"},"visible":{"$ref":"#/components/schemas/FieldPermissionRule"}},"type":"object"},"position":{"type":"integer"},"prefill":{"type":"boolean"},"readonly":{"description":"Legacy format only, see the note above. Superseded by `permissions.editable`.","type":"boolean"},"required":{"description":"Legacy format only, see the note above. Superseded by `permissions.required`.","type":"boolean"},"richtext":{"description":"Whether the field accepts rich text formatting. Only present on text fields.","type":"boolean"},"searchable":{"type":"boolean"},"textRecognition":{"description":"Whether text recognition (OCR) can fill this field. Only present on fields that support it.","type":"boolean"},"type":{"description":"text, number, boolean, date, duration, phone, email, location, image, signature, file, list, relation, user, label…\n","type":"string"}},"type":"object"},"FieldPermissionRule":{"properties":{"type":{"description":"`constant`: the rule always evaluates to `value`. `condition`: the rule evaluates by checking the form conditions listed in `ids`.","type":"string","enum":["constant","condition"]},"value":{"description":"Present when `type` is `constant`.","type":"boolean"},"ids":{"description":"Present when `type` is `condition`. Identifiers of the form conditions driving this rule.","type":"array","items":{"type":"string","format":"uuid"}}},"type":"object"},"Trigger":{"description":"Customises how a workflow transition appears as a save button","properties":{"color":{"type":"string"},"condition_id":{"description":"Identifier of the form condition that must be met for the button to show. Absent when the button always shows.","type":"string","format":"uuid"},"icon":{"type":"string"},"id":{"type":"string","format":"uuid"},"label":{"description":"Localised labels keyed by locale (e.g. `fr`, `en`)","type":"object","additionalProperties":{"type":"string"}},"transition_id":{"type":"string","format":"uuid"},"type":{"type":"string"}},"type":"object"},"Workflow":{"properties":{"id":{"type":"string","format":"uuid"},"name":{"description":"Localised names keyed by locale (e.g. `fr`, `en`)","type":"object","additionalProperties":{"type":"string"}},"start_state":{"type":"string","format":"uuid"},"states":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowState"}},"transitions":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTransition"}}},"type":"object"},"WorkflowState":{"properties":{"color":{"type":"string"},"end":{"description":"Submissions in end states cannot be modified","type":"boolean"},"id":{"type":"string","format":"uuid"},"name":{"description":"Localised names keyed by locale (e.g. `fr`, `en`)","type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"WorkflowTransition":{"properties":{"from":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"label":{"description":"Localised labels keyed by locale (e.g. `fr`, `en`)","type":"object","additionalProperties":{"type":"string"}},"to":{"type":"string","format":"uuid"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/structures":{"get":{"tags":["structures"],"summary":"List all forms","description":"Returns all available forms with pagination.","operationId":"listStructures","parameters":[{"name":"page","in":"query","description":"Page of the overview.","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"0","pattern":"\\d+"}},{"name":"per_page","in":"query","description":"Number of result by page (Max 100)","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"10","pattern":"-?\\d+"}},{"name":"updated_since","in":"query","description":"Get only structure updated from this date","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"","pattern":"\\d+"}},{"name":"include_exclusive_structures","in":"query","description":"If true, superadmins can access all structures including exclusive ones","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"false","pattern":"(true|false)"}},{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Paginated list of forms","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructureListResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Get a form

> Returns the form at the requested version, or the latest one when the version is omitted.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"structures"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"Structure":{"properties":{"can_have_access_restrictions":{"description":"Whether the form supports restricting submissions by access set.","type":"boolean"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Condition"}},"created_at":{"type":"integer","format":"int64"},"deleted_at":{"description":"Deletion timestamp. Present only when the form has been deleted.","type":"integer","format":"int64"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/Field"}},"id":{"type":"integer"},"is_current_user_allowed":{"description":"Whether the authenticated user is allowed to access this form.","type":"boolean"},"layout":{"properties":{"fields":{"type":"array","items":{}},"pages":{"type":"array","items":{}}},"type":"object"},"name":{"type":"string"},"nb_submissions":{"type":"integer"},"settings":{"type":"object","additionalProperties":true},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/Trigger"}},"updated_at":{"type":"integer","format":"int64"},"version":{"type":"integer"},"workflow_id":{"description":"Identifier of the workflow driving this form, when the form has one.","type":"string","format":"uuid"}},"type":"object"},"Condition":{"properties":{"cdt":{"description":"JavaScript condition expression","type":"string"},"fields":{"type":"array","items":{"type":"string"}},"json_format":{"type":"array","items":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"name":{"type":"string"},"uuid":{"type":"string","format":"uuid"}},"type":"object"},"Field":{"description":"A form field's configuration. Its shape depends on when the form was last edited: forms saved with the current builder describe access rules through `permissions`; forms not re-saved since an older version of the builder may still expose the same rules through the flat `enable` / `readonly` / `required` booleans. A given field has one or the other, not both.","properties":{"barcodescan":{"description":"Whether scanning a barcode can fill this field. Only present on fields that support it.","type":"boolean"},"enable":{"description":"Legacy format only, see the note above. Superseded by `permissions.visible`.","type":"boolean"},"externalscan":{"description":"Whether an external scanner can fill this field. Only present on fields that support it.","type":"boolean"},"label":{"type":"string"},"name":{"description":"System name — used as key in submission `items`","type":"string"},"permissions":{"description":"Current format only, see the note above. Each of the three rules is either a constant value or driven by a form condition.","properties":{"editable":{"$ref":"#/components/schemas/FieldPermissionRule"},"required":{"$ref":"#/components/schemas/FieldPermissionRule"},"visible":{"$ref":"#/components/schemas/FieldPermissionRule"}},"type":"object"},"position":{"type":"integer"},"prefill":{"type":"boolean"},"readonly":{"description":"Legacy format only, see the note above. Superseded by `permissions.editable`.","type":"boolean"},"required":{"description":"Legacy format only, see the note above. Superseded by `permissions.required`.","type":"boolean"},"richtext":{"description":"Whether the field accepts rich text formatting. Only present on text fields.","type":"boolean"},"searchable":{"type":"boolean"},"textRecognition":{"description":"Whether text recognition (OCR) can fill this field. Only present on fields that support it.","type":"boolean"},"type":{"description":"text, number, boolean, date, duration, phone, email, location, image, signature, file, list, relation, user, label…\n","type":"string"}},"type":"object"},"FieldPermissionRule":{"properties":{"type":{"description":"`constant`: the rule always evaluates to `value`. `condition`: the rule evaluates by checking the form conditions listed in `ids`.","type":"string","enum":["constant","condition"]},"value":{"description":"Present when `type` is `constant`.","type":"boolean"},"ids":{"description":"Present when `type` is `condition`. Identifiers of the form conditions driving this rule.","type":"array","items":{"type":"string","format":"uuid"}}},"type":"object"},"Trigger":{"description":"Customises how a workflow transition appears as a save button","properties":{"color":{"type":"string"},"condition_id":{"description":"Identifier of the form condition that must be met for the button to show. Absent when the button always shows.","type":"string","format":"uuid"},"icon":{"type":"string"},"id":{"type":"string","format":"uuid"},"label":{"description":"Localised labels keyed by locale (e.g. `fr`, `en`)","type":"object","additionalProperties":{"type":"string"}},"transition_id":{"type":"string","format":"uuid"},"type":{"type":"string"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/structures/{structure_id}":{"get":{"tags":["structures"],"summary":"Get a form","description":"Returns the form at the requested version, or the latest one when the version is omitted.","operationId":"getStructure","parameters":[{"name":"version","in":"query","description":"Version of the structure","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"","pattern":"\\d+"}},{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"name":"structure_id","in":"path","required":true,"schema":{"type":"string","pattern":"\\d+"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Form object","content":{"application/json":{"schema":{"properties":{"structure":{"$ref":"#/components/schemas/Structure"},"server_time":{"type":"integer"}},"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"No form with this identifier in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get a file attached to a form

> Currently limited to the images of Logo fields.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"structures"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}}},"paths":{"/{app_short}/structures/{structure_id}/file/{file_id}":{"get":{"tags":["structures"],"summary":"Get a file attached to a form","description":"Currently limited to the images of Logo fields.","operationId":"getStructureFile","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"name":"structure_id","in":"path","required":true,"schema":{"type":"string","pattern":"\\d+"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Image file","content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"No such file on this form.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.center.daxium-air.com/api-reference/forms.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
