# 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","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":"Filter by the ID of the user who last modified the submission","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: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
