---
title: "Update Module Submission"
method: PUT
path: "/modules/{moduleId}/submissions/{submissionId}"
tags: ["Submissions"]
---

# Update Module Submission

`PUT /modules/{moduleId}/submissions/{submissionId}`

Updates a single module submission. This operation supports partial "data" updates, i.e. data that is sent in "data" may include some but not all of the submission data. Partial metadata updates are supported without including the entire metadata object. To increment a numeric data key (will also initialize), use "incrementData" To delete a data key, use "unsetData". To delete a metadata key, use "unsetMetadata". Module submission data must be provided as a JSON object.
### Authorization Required:
  - See Submission Access ([Submission Access](#submission-access))

## Path parameters

- `moduleId` string, required
- `submissionId` string, required

## Query parameters

- `transformName` string
- `replaceData` boolean

## Request body

- UpdatedSubmissionRequest
  - `userId` string — Submission owner (can be updated by "Administrator" users only)
  - `data` object — Raw input data
  - `dataFilter` DataFilter — Filter condition against submission "data" field. Value must be a MongoDB query condition (see Examples, below). NOTE: MongoDB selectors that can be nested inside queries (such as [Comparison](https://docs.mongodb.com/manual/reference/operator/query/#comparison) and [Element](https://docs.mongodb.com/manual/reference/operator/query/#element) Selectors, e.g. `$eq`, `$in`, `$exists`) are supported. The following [Logical](https://docs.mongodb.com/manual/reference/operator/query/#logical) Selectors are also supported: `$and`, `$or`, `$nor` Examples: - `dataFilter: {"age": 30}` - `dataFilter: {"age": {"$gt": 30}, "people.1.gender": "male"}` - Will match submission where age > 30 and gender for the 2nd people element equals "male"
  - `incrementData` object — Object containing data keys that should be incremented, and by what number (e.g. `{"incrementData":{"key1":1,"key2":10}}`)
  - `unsetData` object — Object containing data keys that should be deleted (e.g. `{"unsetData":{"key1":"","key2":""}}`)
  - `metadata` MetadataRequest — Object containing key-value pairs. To set nested values, this must be an object like `{"statuses.complete": "yes", "statuses.processed": "no"}`, which is MongoDB [dot notation](https://docs.mongodb.com/manual/core/document/#dot-notation).
  - `metadataFilter` MetadataFilter — Filter condition against submission "metadata" field. Value must be a MongoDB query condition (see Examples, below). MongoDB [dot notation](https://docs.mongodb.com/manual/core/document/#dot-notation) is supported for keys. NOTE: MongoDB selectors that can be nested inside queries (such as [Comparison](https://docs.mongodb.com/manual/reference/operator/query/#comparison) and [Element](https://docs.mongodb.com/manual/reference/operator/query/#element) Selectors, e.g. `$eq`, `$in`, `$exists`) are supported. The following [Logical](https://docs.mongodb.com/manual/reference/operator/query/#logical) Selectors are also supported: `$and`, `$or`, `$nor` Examples: - `metadataFilter: {"checkpoints.complete": 1234}` - `metadataFilter: {"checkpoints.complete": {"$exists": true}, "checkpoints.processed": {"$exists": false}}` - Will return submissions where both `metadata.checkpoints.complete` exists AND `metadata.checkpoints.processed` does not exist
  - `unsetMetadata` object — Object containing metadata keys that should be deleted (e.g. `{"unsetMetadata":{"key.one":"","key.two":""}}`)

## Response `200`

Submission updated

- SavedSubmissionResponse
  - `id` string, required
  - `userId` string — Submission owner
  - `moduleId` string, required
  - `created` string, date-time, required
  - `modified` string, date-time, required
  - `deleted` string, date-time
  - `data` object — Raw output data
    - `rawData` object
  - `metadata` object
  - `validationErrors` object[]
    - `id` string
    - `path` string
    - `label` string
    - `parent` string
    - `message` string

## Other responses

- `default` — Error

---

[API](https://skmtc.net/unqork/apis/unqork-customer-api.md) · [All operations](https://skmtc.net/unqork/apis/unqork-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unqork/unqork-customer-api/revisions/112399a67ebb/schema)
