> 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/submissions.md).

# Submissions

## List submissions

> Returns submissions for a form with pagination.\
> Set \`reference=true\` to return reference data across all forms\
> (omit \`structure\_id\` in that case).<br>

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionListResponse":{"type":"object","properties":{"submissions":{"type":"array","items":{"$ref":"#/components/schemas/Submission"}},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"server_time":{"type":"integer","format":"int64"}}},"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions":{"get":{"summary":"List submissions","description":"Returns submissions for a form with pagination.\nSet `reference=true` to return reference data across all forms\n(omit `structure_id` in that case).\n","tags":["submissions"],"operationId":"listSubmissions","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"structure_id","in":"query","description":"Form identifier (required unless `reference=true`)","schema":{"type":"integer"}},{"name":"per_page","in":"query","schema":{"type":"integer"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"updated_since","in":"query","schema":{"type":"integer","format":"int64"}},{"name":"items_expanded","in":"query","description":"Return list labels instead of IDs only","schema":{"type":"boolean"}},{"name":"reference","in":"query","description":"Set to `true` to return all reference data across all forms (shared reference lists used to prefill fields). Omit `structure_id` in that case.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Paginated submissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionListResponse"}}}}}}}}}
```

## Create a submission

> Creates a new submission. For \`image\`, \`signature\`, or \`file\` fields,\
> upload the file first and use the returned UUID here.<br>

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionInput":{"type":"object","required":["structure_id","structure_version","items"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated if omitted"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64","description":"Defaults to now"},"updated_at":{"type":"integer","format":"int64","description":"Defaults to now"},"trigger_id":{"type":"string","format":"uuid","description":"Workflow transition to apply (PUT/PATCH only)"},"substitute_user_id":{"type":"integer","description":"Sets a different user as creator/owner; authenticated user is always traced in history"},"items":{"type":"object","additionalProperties":true}}},"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions":{"post":{"summary":"Create a submission","description":"Creates a new submission. For `image`, `signature`, or `file` fields,\nupload the file first and use the returned UUID here.\n","tags":["submissions"],"operationId":"createSubmission","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"partial","in":"query","description":"If `true`, ignores required/editable field permissions","schema":{"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionInput"}}}},"responses":{"200":{"description":"Submission created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"}}}}}}}}}
```

## Get submissions by IDs (up to 500)

> Returns submissions for up to 500 UUIDs. Each ID can optionally carry an \`updated\_since\` filter.

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Unique error code prefixed with `DAERR-`"},"message":{"type":"string"},"url":{"type":"string","format":"uri","description":"Link to the detailed error documentation"},"api_version":{"type":"string"},"infos":{"type":"array","items":{},"description":"Additional context (may be empty)"},"server_time":{"type":"string","description":"Unix timestamp as string"}}}}},"paths":{"/{app_short}/submissions/byids":{"post":{"summary":"Get submissions by IDs (up to 500)","description":"Returns submissions for up to 500 UUIDs. Each ID can optionally carry an `updated_since` filter.","tags":["submissions"],"operationId":"getSubmissionsByIds","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"items_expanded","in":"query","schema":{"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["submission_ids"],"properties":{"submission_ids":{"type":"array","maxItems":500,"items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"updated_since":{"type":"integer","format":"int64"}}}}}}}}},"responses":{"200":{"description":"Matching submissions","content":{"application/json":{"schema":{"type":"object","properties":{"submissions":{"type":"array","items":{"$ref":"#/components/schemas/Submission"}}}}}}},"400":{"description":"Too many IDs (max 500)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Search submissions

> Returns submissions matching field-level criteria. Each field can appear\
> only once. Operator case is significant.\
> \
> \| Operator | Compatible field types |\
> \|---|---|\
> \| \`equal\` / \`notequal\` | text, number, boolean, date, email, phone |\
> \| \`isNull\` / \`isNotNull\` | all |\
> \| \`less\` / \`greater\` / \`lesseq\` / \`greatereq\` | number |\
> \| \`contains\` / \`notContains\` / \`startWith\` / \`endWith\` | text, email, phone |\
> \| \`in\` | list, user, text |\
> \| \`range\` | number, date |<br>

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SearchCriteria":{"type":"object","additionalProperties":{"type":"object","required":["operator"],"properties":{"value":{"description":"Search value (omit for isNull / isNotNull)"},"operator":{"type":"string","enum":["equal","notequal","isNull","isNotNull","less","greater","lesseq","greatereq","contains","notContains","startWith","endWith","in","range"]}}},"description":"Object where each key is a valid system field name"},"SubmissionListResponse":{"type":"object","properties":{"submissions":{"type":"array","items":{"$ref":"#/components/schemas/Submission"}},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"server_time":{"type":"integer","format":"int64"}}},"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions/search":{"post":{"summary":"Search submissions","description":"Returns submissions matching field-level criteria. Each field can appear\nonly once. Operator case is significant.\n\n| Operator | Compatible field types |\n|---|---|\n| `equal` / `notequal` | text, number, boolean, date, email, phone |\n| `isNull` / `isNotNull` | all |\n| `less` / `greater` / `lesseq` / `greatereq` | number |\n| `contains` / `notContains` / `startWith` / `endWith` | text, email, phone |\n| `in` | list, user, text |\n| `range` | number, date |\n","tags":["submissions"],"operationId":"searchSubmissions","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"structure_id","in":"query","required":true,"schema":{"type":"integer"}},{"name":"per_page","in":"query","schema":{"type":"integer"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"last_updated_user_id","in":"query","description":"Filters submissions whose last update was performed by the user with this ID. Optional criterion passed directly in the URL.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchCriteria"}}}},"responses":{"200":{"description":"Matching submissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionListResponse"}}}}}}}}}
```

## Create multiple submissions (async)

> Creates up to 100 submissions asynchronously. Poll \`callbackUrl\` for status.

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionInput":{"type":"object","required":["structure_id","structure_version","items"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated if omitted"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64","description":"Defaults to now"},"updated_at":{"type":"integer","format":"int64","description":"Defaults to now"},"trigger_id":{"type":"string","format":"uuid","description":"Workflow transition to apply (PUT/PATCH only)"},"substitute_user_id":{"type":"integer","description":"Sets a different user as creator/owner; authenticated user is always traced in history"},"items":{"type":"object","additionalProperties":true}}},"CallbackUrlResponse":{"type":"object","properties":{"callbackUrl":{"type":"string","description":"URL to poll for async job status"}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Unique error code prefixed with `DAERR-`"},"message":{"type":"string"},"url":{"type":"string","format":"uri","description":"Link to the detailed error documentation"},"api_version":{"type":"string"},"infos":{"type":"array","items":{},"description":"Additional context (may be empty)"},"server_time":{"type":"string","description":"Unix timestamp as string"}}}}},"paths":{"/{app_short}/submissions/multiple":{"post":{"summary":"Create multiple submissions (async)","description":"Creates up to 100 submissions asynchronously. Poll `callbackUrl` for status.","tags":["submissions"],"operationId":"createMultipleSubmissions","parameters":[{"$ref":"#/components/parameters/AppShort"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/SubmissionInput"}}}}},"responses":{"200":{"description":"Async job accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackUrlResponse"}}}},"400":{"description":"Empty payload or more than 100 submissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update multiple submissions (async)

> Updates up to 100 submissions asynchronously. Poll \`callbackUrl\` for status.

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionInput":{"type":"object","required":["structure_id","structure_version","items"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated if omitted"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64","description":"Defaults to now"},"updated_at":{"type":"integer","format":"int64","description":"Defaults to now"},"trigger_id":{"type":"string","format":"uuid","description":"Workflow transition to apply (PUT/PATCH only)"},"substitute_user_id":{"type":"integer","description":"Sets a different user as creator/owner; authenticated user is always traced in history"},"items":{"type":"object","additionalProperties":true}}},"CallbackUrlResponse":{"type":"object","properties":{"callbackUrl":{"type":"string","description":"URL to poll for async job status"}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Unique error code prefixed with `DAERR-`"},"message":{"type":"string"},"url":{"type":"string","format":"uri","description":"Link to the detailed error documentation"},"api_version":{"type":"string"},"infos":{"type":"array","items":{},"description":"Additional context (may be empty)"},"server_time":{"type":"string","description":"Unix timestamp as string"}}}}},"paths":{"/{app_short}/submissions/multiple":{"put":{"summary":"Update multiple submissions (async)","description":"Updates up to 100 submissions asynchronously. Poll `callbackUrl` for status.","tags":["submissions"],"operationId":"updateMultipleSubmissions","parameters":[{"$ref":"#/components/parameters/AppShort"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/SubmissionInput"}}}}},"responses":{"200":{"description":"Async job accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackUrlResponse"}}}},"400":{"description":"Empty payload or more than 100 submissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## GET /{app\_short}/submissions/multiple/callback/{callback\_id}

> Poll async submission job status

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionCallbackResponse":{"type":"object","properties":{"callbackDetails":{"type":"object","properties":{"status":{"type":"string","enum":["Planned","Running","Finished","Finished with errors","Failed","In timeout"]},"nbRecordsTodo":{"type":"integer"},"nbRecordsDone":{"type":"integer"},"nbSuccess":{"type":"integer"},"nbErrors":{"type":"integer"},"success":{"type":"array","items":{"type":"string","format":"uuid"}},"errors":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"paths":{"/{app_short}/submissions/multiple/callback/{callback_id}":{"get":{"summary":"Poll async submission job status","tags":["submissions"],"operationId":"getMultipleSubmissionsCallback","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"callback_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Job status and per-submission results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionCallbackResponse"}}}}}}}}}
```

## Upload a file for a submission

> Uploads a file to attach to a submission field (image, signature, file type).

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"FileUploadResponse":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"Reference this UUID in submission fields of type image/signature/file"},"mime-type":{"type":"string"},"size":{"type":"integer","description":"File size in bytes"}}}}},"paths":{"/{app_short}/submissions/upload":{"post":{"summary":"Upload a file for a submission","description":"Uploads a file to attach to a submission field (image, signature, file type).","tags":["submissions"],"operationId":"uploadSubmissionFile","parameters":[{"$ref":"#/components/parameters/AppShort"}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"File uploaded — use the returned `uuid` in the submission field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResponse"}}}}}}}}}
```

## Upload a file with explicit submission and file IDs

> Alternative upload that pre-assigns both the submission UUID and file UUID.

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"FileUploadResponse":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"Reference this UUID in submission fields of type image/signature/file"},"mime-type":{"type":"string"},"size":{"type":"integer","description":"File size in bytes"}}}}},"paths":{"/{app_short}/submissions/upload/{submissionId}/{fileId}":{"post":{"summary":"Upload a file with explicit submission and file IDs","description":"Alternative upload that pre-assigns both the submission UUID and file UUID.","tags":["submissions"],"operationId":"uploadSubmissionFileWithIds","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"submissionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"fileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"File uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResponse"}}}}}}}}}
```

## GET /{app\_short}/submissions/{id}

> Get a submission

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions/{id}":{"get":{"summary":"Get a submission","tags":["submissions"],"operationId":"getSubmission","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Submission object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"}}}}}}}}}
```

## Update a submission

> Replaces submission data. For workflow-enabled forms, include \`trigger\_id\`\
> to advance the state. Submissions in an end-state cannot be modified.<br>

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionInput":{"type":"object","required":["structure_id","structure_version","items"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated if omitted"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64","description":"Defaults to now"},"updated_at":{"type":"integer","format":"int64","description":"Defaults to now"},"trigger_id":{"type":"string","format":"uuid","description":"Workflow transition to apply (PUT/PATCH only)"},"substitute_user_id":{"type":"integer","description":"Sets a different user as creator/owner; authenticated user is always traced in history"},"items":{"type":"object","additionalProperties":true}}},"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions/{id}":{"put":{"summary":"Update a submission","description":"Replaces submission data. For workflow-enabled forms, include `trigger_id`\nto advance the state. Submissions in an end-state cannot be modified.\n","tags":["submissions"],"operationId":"updateSubmission","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"partial","in":"query","description":"If `true`, ignores required/editable field permissions","schema":{"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionInput"}}}},"responses":{"200":{"description":"Updated submission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"}}}}}}}}}
```

## DELETE /{app\_short}/submissions/{id}

> Delete a submission

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}}},"paths":{"/{app_short}/submissions/{id}":{"delete":{"summary":"Delete a submission","tags":["submissions"],"operationId":"deleteSubmission","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Submission deleted"}}}}}}
```

## Partially update a submission

> Updates only the \`items\` supplied; all other fields remain unchanged.

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}},"schemas":{"SubmissionInput":{"type":"object","required":["structure_id","structure_version","items"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated if omitted"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64","description":"Defaults to now"},"updated_at":{"type":"integer","format":"int64","description":"Defaults to now"},"trigger_id":{"type":"string","format":"uuid","description":"Workflow transition to apply (PUT/PATCH only)"},"substitute_user_id":{"type":"integer","description":"Sets a different user as creator/owner; authenticated user is always traced in history"},"items":{"type":"object","additionalProperties":true}}},"Submission":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"structure_id":{"type":"integer"},"structure_version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"data_created_at":{"type":"integer","format":"int64"},"data_updated_at":{"type":"integer","format":"int64"},"user_id":{"type":"integer"},"channels":{"type":"array","items":{"type":"string"}},"items":{"type":"object","additionalProperties":true,"description":"Key/value map keyed by system field name.\n\n**Simple:** text/email → string | number → float | boolean → bool |\ndate → Unix timestamp | duration → ms | phone → RFC 3966\n\n**location:** `{lat, lng, address}`\n\n**image/signature/file:** `[{id, name, mimeType, extension, size, comment}]`\n\n**list:** `[id, …]`\n\n**relation:** `{submissions: [{id, count?}, …]}`\n\n**user:** `[{id}, …]`\n"},"submission_number":{"type":"integer"},"number_in_structure":{"type":"integer"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"last_updated_user_id":{"type":"integer"},"current_state":{"type":"string","format":"uuid","nullable":true,"description":"Current workflow state UUID"},"assigned_user":{"$ref":"#/components/schemas/UserRef"},"subscribers":{"type":"array","items":{}},"settings":{"type":"array","items":{}}}},"UserRef":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"groups":{"type":"array","items":{}},"system_groups":{"type":"array","items":{}}}}}},"paths":{"/{app_short}/submissions/{id}":{"patch":{"summary":"Partially update a submission","description":"Updates only the `items` supplied; all other fields remain unchanged.","tags":["submissions"],"operationId":"patchSubmission","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionInput"}}}},"responses":{"200":{"description":"Full updated submission returned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"}}}}}}}}}
```

## GET /{app\_short}/submissions/{id}/file/{file\_id}

> Get a file attached to a submission

```json
{"openapi":"3.0.3","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"submissions"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AppShort":{"name":"app_short","in":"path","required":true,"description":"Short name of the workspace instance (e.g. `daxium-test`)","schema":{"type":"string"}}}},"paths":{"/{app_short}/submissions/{id}/file/{file_id}":{"get":{"summary":"Get a file attached to a submission","tags":["submissions"],"operationId":"getSubmissionFile","parameters":[{"$ref":"#/components/parameters/AppShort"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Binary file content","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}}}}}
```


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
