# /submissions/{submissionId}

Update an existing submission with new data

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Formstack API v2025.0",
    "version": "0.0.4"
  },
  "servers": [
    {
      "url": "https://www.formstack.com/api/v2025",
      "description": "Production server"
    },
    {
      "url": "https://staging-formstack.com/api/v2025",
      "description": "Staging server"
    },
    {
      "url": "https://dev-formstack.com/api/v2025",
      "description": "Development server"
    }
  ],
  "paths": {
    "/submissions/{submissionId}": {
      "put": {
        "tags": [
          "Submissions",
          "Classic"
        ],
        "description": "Update an existing submission with new data",
        "operationId": "editSubmission",
        "parameters": [
          {
            "name": "submissionId",
            "in": "path",
            "description": "The unique identifier of the submission to edit",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "X-FS-Encryption-Password",
            "in": "header",
            "description": "Required when form has encryption enabled. The encryption password used to decrypt and re-encrypt submission data",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditSubmissionInputApiDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionEditApiDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request: for a file or signature field this includes mixing presigned fileKeys with inline base64 uploads in the same field, an unknown fileKey, or a file that violates the field size limits"
          },
          "401": {
            "description": "Unauthorized - Encryption password required or invalid"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "SubmissionEditApiDto": {
        "title": "Submission Edit",
        "description": "Submission edit response",
        "properties": {
          "id": {
            "description": "The ID of the submission",
            "type": "integer",
            "nullable": false
          },
          "formId": {
            "description": "ID of the submission form",
            "type": "integer",
            "nullable": false
          },
          "timestamp": {
            "description": "Timestamp of the submission",
            "type": "string",
            "nullable": true
          },
          "userAgent": {
            "description": "User agent of the submission",
            "type": "string",
            "nullable": true
          },
          "remoteAddr": {
            "description": "Remote addr of the submission",
            "type": "string",
            "nullable": true
          },
          "paymentStatus": {
            "description": "Payment status of the submission",
            "type": "string",
            "nullable": true
          },
          "read": {
            "description": "Read status of the submission",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "EditSubmissionInputApiDto": {
        "title": "Edit Submission",
        "description": "Edit Submission request",
        "properties": {
          "fields": {
            "description": "Fields of the submission",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubmissionParsedFieldApiDto"
            },
            "nullable": false
          },
          "userAgent": {
            "description": "User agent of the submission",
            "type": "string",
            "nullable": true
          },
          "remoteAddr": {
            "description": "Remote addr of the submission",
            "type": "string",
            "nullable": true
          },
          "paymentStatus": {
            "description": "Payment status of the submission",
            "type": "string",
            "nullable": true
          },
          "read": {
            "description": "Flag to mark the submission as read",
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "description": "Timestamp of the submission",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldAddressValueApiDto": {
        "title": "Submission Parsed Field Address Value",
        "description": "Submission parsed field address value",
        "properties": {
          "address": {
            "description": "First part of the address",
            "type": "string",
            "nullable": true
          },
          "address2": {
            "description": "Second part of the address",
            "type": "string",
            "nullable": true
          },
          "city": {
            "description": "City of the address",
            "type": "string",
            "nullable": true
          },
          "country": {
            "description": "Country of the address",
            "type": "string",
            "nullable": true
          },
          "state": {
            "description": "State of the address",
            "type": "string",
            "nullable": true
          },
          "zip": {
            "description": "Zip of the address",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldCheckboxValueApiDto": {
        "title": "Submission Parsed Field Checkbox Value",
        "description": "Submission parsed field checkbox value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSubValuesApiDto"
          },
          {
            "properties": {
              "subvalues": {
                "description": "Subvalues of the checkbox field",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
                },
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldCreditCardValueApiDto": {
        "title": "Submission Parsed Field Credit Card Value",
        "description": "Submission parsed field credit card value",
        "properties": {
          "card": {
            "description": "Number of the credit card",
            "type": "string",
            "nullable": true
          },
          "cardexp": {
            "description": "Expiration date of the credit card",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldDatetimeValueApiDto": {
        "title": "Submission Parsed Field Datetime Value",
        "description": "Submission parsed field datetime value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the datetime field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldEmailValueApiDto": {
        "title": "Submission Parsed Field Email Value",
        "description": "Submission parsed field email value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the email field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldFileValueApiDto": {
        "title": "Submission Parsed Field File Value",
        "description": "Submission parsed field file value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSubValuesApiDto"
          },
          {
            "properties": {
              "subvalues": {
                "description": "Subvalues of the file field. Each subvalue is one file, supplied as either \"filename;base64data\" (the file embedded inline, bounded by the request body size limit) or a presigned `fileKey` returned by POST /forms/{formId}/fields/{fieldId}/upload-urls after the file has been uploaded directly to S3 (recommended for large files). To attach multiple files, send one subvalue per file. All subvalues within the field must use the same style — either all inline base64 or all presigned `fileKey`s; mixing the two in one field is rejected.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
                },
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldMatrixValueApiDto": {
        "title": "Submission Parsed Field Matrix Value",
        "description": "Submission parsed field matrix value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSubValuesApiDto"
          },
          {
            "properties": {
              "subvalues": {
                "description": "Subvalues of the matrix field",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
                },
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldNameValueApiDto": {
        "title": "Submission Parsed Field Name Value",
        "description": "Submission parsed field name value",
        "properties": {
          "prefix": {
            "description": "Prefix of the name",
            "type": "string",
            "nullable": true
          },
          "first": {
            "description": "First name of the name",
            "type": "string",
            "nullable": true
          },
          "initial": {
            "description": "Initial of the name",
            "type": "string",
            "nullable": true
          },
          "middle": {
            "description": "Middle of the name",
            "type": "string",
            "nullable": true
          },
          "last": {
            "description": "Last name of the name",
            "type": "string",
            "nullable": true
          },
          "suffix": {
            "description": "Suffix of the name",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldNumberValueApiDto": {
        "title": "Submission Parsed Field Number Value",
        "description": "Submission parsed field number value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the number field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldPhoneValueApiDto": {
        "title": "Submission Parsed Field Phone Value",
        "description": "Submission parsed field phone value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the phone field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldProductValueApiDto": {
        "title": "Submission Parsed Field Product Value",
        "description": "Submission parsed field product value",
        "properties": {
          "chargeType": {
            "description": "ChargeType of the product",
            "type": "string",
            "nullable": false
          },
          "quantity": {
            "description": "Quantity of the product",
            "type": "string",
            "nullable": true
          },
          "total": {
            "description": "Total of the product",
            "type": "string",
            "nullable": true
          },
          "unitPrice": {
            "description": "UnitPrice of the product",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldRadioValueApiDto": {
        "title": "Submission Parsed Field Radio Value",
        "description": "Submission parsed field radio value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the radio field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldRatingValueApiDto": {
        "title": "Submission Parsed Field Rating Value",
        "description": "Submission parsed field rating value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the rating field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldSelectValueApiDto": {
        "title": "Submission Parsed Field Select Value",
        "description": "Submission parsed field select value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSubValuesApiDto"
          },
          {
            "properties": {
              "subvalues": {
                "description": "Subvalues of the select field",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
                },
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldSignatureValueApiDto": {
        "title": "Submission Parsed Field Signature Value",
        "description": "Submission parsed field signature value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSubValuesApiDto"
          },
          {
            "properties": {
              "subvalues": {
                "description": "Subvalues of the signature field",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
                },
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldSingleValueApiDto": {
        "title": "Submission Parsed Field Single Value",
        "description": "Submission parsed field single value",
        "properties": {
          "value": {
            "description": "Value of the submissions field",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldSubValueApiDto": {
        "title": "Submission Parsed Field SubValue",
        "description": "Submission parsed field subvalue",
        "properties": {
          "subvalue": {
            "description": "Subvalue of the submission field",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldSubValuesApiDto": {
        "title": "Submission Parsed Field SubValues",
        "description": "Submission parsed field subvalues",
        "properties": {
          "subvalues": {
            "description": "Subvalues of the submission field",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubmissionParsedFieldSubValueApiDto"
            },
            "nullable": true
          }
        },
        "type": "object"
      },
      "SubmissionParsedFieldTableCellValueApiDto": {
        "title": "Submission Parsed Field Table Cell Value",
        "description": "Submission parsed field table cell value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the table cell field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldTextValueApiDto": {
        "title": "Submission Parsed Field Text Value",
        "description": "Submission parsed field text value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the text field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldTextareaValueApiDto": {
        "title": "Submission Parsed Field Textarea Value",
        "description": "Submission parsed field textarea value",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/SubmissionParsedFieldSingleValueApiDto"
          },
          {
            "properties": {
              "value": {
                "description": "Value of the textarea field",
                "type": "string",
                "nullable": true
              }
            },
            "type": "object"
          }
        ]
      },
      "SubmissionParsedFieldApiDto": {
        "title": "Submission Parsed Field",
        "description": "Submission parsed field",
        "properties": {
          "id": {
            "description": "Id of the submission field",
            "type": "string",
            "nullable": false
          },
          "value": {
            "description": "Value of the submission field",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldTextValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldNameValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldAddressValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldCreditCardValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldProductValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldTableCellValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldDatetimeValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldRatingValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldRadioValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldNumberValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldPhoneValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldEmailValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldTextareaValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldMatrixValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldSignatureValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldFileValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldCheckboxValueApiDto"
              },
              {
                "$ref": "#/components/schemas/SubmissionParsedFieldSelectValueApiDto"
              }
            ]
          }
        },
        "type": "object"
      }
    }
  },
  "tags": [
    {
      "name": "Submissions",
      "description": "Submissions are the entries collected by your forms. Use these endpoints to create a submission, list submissions across all forms or for a specific form, count submissions, retrieve a single submission's data, edit or delete a submission, download uploaded files, and generate presigned URLs for direct file uploads. Results support pagination, date ranges, and field-level search."
    },
    {
      "name": "Classic",
      "description": "Classic"
    }
  ]
}
```