> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# ReportNotSpamSubmission

# Package: forms

# Namespace: FormSpamSubmissionReportService

# Method link: https://dev.wix.com/docs/api-reference/crm/forms/form-spam-submission-report-v4/report-not-spam-submission.md

## Permission Scopes:
Manage form submissions.: SCOPE.FORMS.MANAGE-SUBMISSIONS

## Introduction

Restores a spam submission as a regular submission.

A new submission is created from the report's data, with a new submission ID, and the report is deleted shortly after. A submission that was `PENDING` when reported is restored as `CONFIRMED`. Any other status is kept. Submission automations run as they do for any new submission, and uploaded files are kept.

Supported only for forms in the Wix Forms namespace, `wix.form_app.form`.

To restore multiple submissions in a single API call, call [Bulk Report Not Spam Submission](https://dev.wix.com/docs/api-reference/crm/forms/spam-submissions/bulk-report-not-spam-submission.md).

---

## REST API

### Schema

```
 Method: reportNotSpamSubmission
 Description: Restores a spam submission as a regular submission.  A new submission is created from the report's data, with a new submission GUID, and the report is deleted shortly after. A submission that was `PENDING` when reported is restored as `CONFIRMED`. Any other status is kept. Submission automations run as they do for any new submission, and uploaded files are kept.  Supported only for forms in the Wix Forms namespace, `wix.form_app.form`.  To restore multiple submissions in a single API call, call [Bulk Report Not Spam Submission](https://dev.wix.com/docs/api-reference/crm/forms/spam-submissions/bulk-report-not-spam-submission.md).
 URL: https://www.wixapis.com/form-spam-submission-report-service/v4/form-spam-submission-reports/{formSpamSubmissionReportId}/report-not-spam-submission
 Method: POST
 Return type: ReportNotSpamSubmissionResponse
  - name: submission | type: FormSubmission | description: Submission created from the report.  
     - name: id | type: string | description: Submission GUID.  | read-only: true | validation: format GUID
     - name: formId | type: string | description: GUID of the form which the submission belongs to.  | validation: format GUID, immutable
     - name: namespace | type: string | description: The app which the form submissions belong to. A submission inherits the namespace from its form schema, so you can't set it directly.  For example, a submission of a form visible in the Wix Forms app has the namespace `wix.form_app.form`, the namespace of the Wix Forms app, whose app GUID is `225dd912-7dea-4738-8688-4b8c6955ffc2`.  See a list of namespaces for [apps made by Wix](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/introduction.md#namespaces-of-apps-made-by-wix) section. To retrieve the GUID for a Wix app, see [Apps Created By Wix](https://dev.wix.com/docs/rest/articles/get-started/apps-created-by-wix.md).  | read-only: true | validation: minLength 10, maxLength 50
     - name: status | type: SubmissionStatus | description: Status of the submission.  The status a submission is created with depends on the form's namespace and on whether the form collects payment, so read it from the response rather than assuming.  A submission for a form that collects payment starts as `PAYMENT_WAITING`. Otherwise, most namespaces record the submission immediately as `CONFIRMED`. Namespaces that need to complete another step first, such as taking payment for a pricing plan, create the submission as `PENDING` and confirm it later with Confirm Submission.  A `PENDING` submission isn't recorded yet, and is deleted automatically if it isn't confirmed in time.  
         - enum:
         -     PENDING: A submission is created, but has not yet been recorded in the Wix Forms collection.
         -     CONFIRMED: A submission is recorded in the Wix Forms collection.
         -     PAYMENT_WAITING: A form submission requiring payment is created.
         -     PAYMENT_CANCELED: An order of a form submission is canceled.
     - name: submissions | type: Map<string,Value> | description: Values the visitor submitted.  Each key is the `target` of a field in the form schema, which is the field's stable storage key rather than its GUID or label. Only keys matching a field target are accepted.  Each value's shape follows that field's `inputType`: `STRING` fields submit a string, `NUMBER` a number, `BOOLEAN` a boolean, and `ARRAY` an array of the selected option values. Date and time fields are strings. A choice field submits an option's `value`, not its GUID or its label.  3 input types submit structured values: `ADDRESS` submits an address object, `PAYMENT` an array holding 1 product object per item bought, and `SCHEDULING` an appointment object.  For the full mapping, see [About Submission Values](https://dev.wix.com/docs/api-reference/crm/forms/form-submissions/about-submission-values.md).  | validation: format map
        - ONE-OF: 
           - name: nullValue | type:  | description:   
           - name: numberValue | type: number | description:   
           - name: stringValue | type: string | description:   
           - name: boolValue | type: boolean | description:   
           - name: structValue | type: object | description:   
           - name: listValue | type: ListValue | description:   
              - name: values | type: array<Value> | description:   
     - name: createdDate | type: string | description: Date and time the form submission was created.  | validation: format date-time, immutable
     - name: updatedDate | type: string | description: Date and time the form submission was updated.  | read-only: true | validation: format date-time
     - name: revision | type: string | description: Revision number, which increments by 1 each time the form submission is updated. To prevent conflicting changes, the existing revision must be used when updating a form submission.  | read-only: true | validation: format int64
     - name: submitter | type: Submitter | description: GUID of the visitor that submitted the form.  | read-only: true 
        - ONE-OF: 
           - name: memberId | type: string | description: Member GUID.  | validation: format GUID
           - name: visitorId | type: string | description: Visitor GUID.  | validation: format GUID
           - name: applicationId | type: string | description: Application GUID.  | validation: maxLength 36
           - name: userId | type: string | description: User GUID.  | validation: format GUID
     - name: seen | type: boolean | description: Whether a site owner marked a submission as "seen".  
     - name: extendedFields | type: ExtendedFields | description: Data extension object that holds users' and apps' fields.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: orderDetails | type: OrderDetails | description: Order details. <br> <b>Note</b>: This object is only applicable when submitting a form in the Wix Payments app.  
        - name: orderId | type: string | description: GUID of the order related to submission (only applicable if a form has payments).  | read-only: true | validation: format GUID
        - name: number | type: string | description: Order number.  | read-only: true | validation: format int64
        - name: currency | type: string | description: Currency.  | read-only: true | validation: format CURRENCY
        - name: itemSubtotal | type: string | description: Item subtotal.  | read-only: true | validation: decimalValue {"gte":"0.00","maxScale":2}
        - name: checkoutId | type: string | description: GUID of the checkout related to submission (only applicable if a form has payments).  | read-only: true | validation: format GUID
     - name: contactId | type: string | description: Contact GUID of a site visitor who created the submission.  | read-only: true | validation: format GUID, immutable
     - name: accessRestriction | type: string | description: Authorized viewer GUID.  | validation: format GUID, immutable
     - name: tags | type: PublicTags | description: Tag GUIDs collections associated with the current entity.  
        - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors.  
           - name: tagIds | type: array<string> | description: List of tag GUIDs  | validation: maxItems 100, maxLength 5
     - name: appointmentDetails | type: AppointmentDetails | description: Appointment details. This object is only applicable when submitting a form that creates a booking appointment.  
        - name: staffMemberId | type: string | description: GUID of the staff member assigned to the appointment.  | validation: format GUID
        - name: staffMemberName | type: string | description: Name of the staff member assigned to the appointment.  | validation: minLength 1, maxLength 40
     - name: childMetaSiteId | type: string | description: GUID of the child site the submission was made on.  Only present when the form was submitted on a site that shares its data with a parent site. In that case submissions from every child site are stored on the parent site, and this field identifies which child site the submission came from.  | read-only: true | validation: format GUID


```

### Examples

### Restore a spam submission
Restores the report as a regular submission. The submission gets a new ID.

```curl
curl -X POST \
'https://www.wixapis.com/form-spam-submission-report-service/v4/form-spam-submission-reports/a7c3e2f1-5b8d-4e9a-9c1f-3d2e4b6a8f10/report-not-spam-submission' \
-H 'Authorization: <AUTH>'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.forms.formSpamSubmissionReports.reportNotSpamSubmission(formSpamSubmissionReportId)
 Description: Restores a spam submission as a regular submission.  A new submission is created from the report's data, with a new submission GUID, and the report is deleted shortly after. A submission that was `PENDING` when reported is restored as `CONFIRMED`. Any other status is kept. Submission automations run as they do for any new submission, and uploaded files are kept.  Supported only for forms in the Wix Forms namespace, `wix.form_app.form`.  To restore multiple submissions in a single API call, call [Bulk Report Not Spam Submission](https://dev.wix.com/docs/api-reference/crm/forms/spam-submissions/bulk-report-not-spam-submission.md).
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  formSpamSubmissionReportId
 Method parameters: 
   param name: formSpamSubmissionReportId | type: string | description: GUID of the form spam submission report to restore. | required: true | validation: format GUID
 Return type: PROMISE<ReportNotSpamSubmissionResponse>
  - name: submission | type: FormSubmission | description: Submission created from the report.  
     - name: _id | type: string | description: Submission GUID.  | read-only: true | validation: format GUID
     - name: formId | type: string | description: GUID of the form which the submission belongs to.  | validation: format GUID, immutable
     - name: namespace | type: string | description: The app which the form submissions belong to. A submission inherits the namespace from its form schema, so you can't set it directly.  For example, a submission of a form visible in the Wix Forms app has the namespace `wix.form_app.form`, the namespace of the Wix Forms app, whose app GUID is `225dd912-7dea-4738-8688-4b8c6955ffc2`.  See a list of namespaces for [apps made by Wix](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/introduction.md#namespaces-of-apps-made-by-wix) section. To retrieve the GUID for a Wix app, see [Apps Created By Wix](https://dev.wix.com/docs/rest/articles/get-started/apps-created-by-wix.md).  | read-only: true | validation: minLength 10, maxLength 50
     - name: status | type: SubmissionStatus | description: Status of the submission.  The status a submission is created with depends on the form's namespace and on whether the form collects payment, so read it from the response rather than assuming.  A submission for a form that collects payment starts as `PAYMENT_WAITING`. Otherwise, most namespaces record the submission immediately as `CONFIRMED`. Namespaces that need to complete another step first, such as taking payment for a pricing plan, create the submission as `PENDING` and confirm it later with Confirm Submission.  A `PENDING` submission isn't recorded yet, and is deleted automatically if it isn't confirmed in time.  
         - enum:
         -     PENDING: A submission is created, but has not yet been recorded in the Wix Forms collection.
         -     CONFIRMED: A submission is recorded in the Wix Forms collection.
         -     PAYMENT_WAITING: A form submission requiring payment is created.
         -     PAYMENT_CANCELED: An order of a form submission is canceled.
     - name: submissions | type: Map<string,Value> | description: Values the visitor submitted.  Each key is the `target` of a field in the form schema, which is the field's stable storage key rather than its GUID or label. Only keys matching a field target are accepted.  Each value's shape follows that field's `inputType`: `STRING` fields submit a string, `NUMBER` a number, `BOOLEAN` a boolean, and `ARRAY` an array of the selected option values. Date and time fields are strings. A choice field submits an option's `value`, not its GUID or its label.  3 input types submit structured values: `ADDRESS` submits an address object, `PAYMENT` an array holding 1 product object per item bought, and `SCHEDULING` an appointment object.  For the full mapping, see [About Submission Values](https://dev.wix.com/docs/api-reference/crm/forms/form-submissions/about-submission-values.md).  | validation: format map
        - ONE-OF: 
           - name: nullValue | type:  | description:   
           - name: numberValue | type: number | description:   
           - name: stringValue | type: string | description:   
           - name: boolValue | type: boolean | description:   
           - name: structValue | type: object | description:   
           - name: listValue | type: ListValue | description:   
              - name: values | type: array<Value> | description:   
     - name: _createdDate | type: Date | description: Date and time the form submission was created.  | validation: immutable
     - name: _updatedDate | type: Date | description: Date and time the form submission was updated.  | read-only: true 
     - name: revision | type: string | description: Revision number, which increments by 1 each time the form submission is updated. To prevent conflicting changes, the existing revision must be used when updating a form submission.  | read-only: true | validation: format int64
     - name: submitter | type: Submitter | description: GUID of the visitor that submitted the form.  | read-only: true 
        - ONE-OF: 
           - name: memberId | type: string | description: Member GUID.  | validation: format GUID
           - name: visitorId | type: string | description: Visitor GUID.  | validation: format GUID
           - name: applicationId | type: string | description: Application GUID.  | validation: maxLength 36
           - name: userId | type: string | description: User GUID.  | validation: format GUID
     - name: seen | type: boolean | description: Whether a site owner marked a submission as "seen".  
     - name: extendedFields | type: ExtendedFields | description: Data extension object that holds users' and apps' fields.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: orderDetails | type: OrderDetails | description: Order details. <br> <b>Note</b>: This object is only applicable when submitting a form in the Wix Payments app.  
        - name: orderId | type: string | description: GUID of the order related to submission (only applicable if a form has payments).  | read-only: true | validation: format GUID
        - name: number | type: string | description: Order number.  | read-only: true | validation: format int64
        - name: currency | type: string | description: Currency.  | read-only: true | validation: format CURRENCY
        - name: itemSubtotal | type: string | description: Item subtotal.  | read-only: true | validation: decimalValue {"gte":"0.00","maxScale":2}
        - name: checkoutId | type: string | description: GUID of the checkout related to submission (only applicable if a form has payments).  | read-only: true | validation: format GUID
     - name: contactId | type: string | description: Contact GUID of a site visitor who created the submission.  | read-only: true | validation: format GUID, immutable
     - name: accessRestriction | type: string | description: Authorized viewer GUID.  | validation: format GUID, immutable
     - name: tags | type: PublicTags | description: Tag GUIDs collections associated with the current entity.  
        - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors.  
           - name: tagIds | type: array<string> | description: List of tag GUIDs  | validation: maxItems 100, maxLength 5
     - name: appointmentDetails | type: AppointmentDetails | description: Appointment details. This object is only applicable when submitting a form that creates a booking appointment.  
        - name: staffMemberId | type: string | description: GUID of the staff member assigned to the appointment.  | validation: format GUID
        - name: staffMemberName | type: string | description: Name of the staff member assigned to the appointment.  | validation: minLength 1, maxLength 40
     - name: childMetaSiteId | type: string | description: GUID of the child site the submission was made on.  Only present when the form was submitted on a site that shares its data with a parent site. In that case submissions from every child site are stored on the parent site, and this field identifies which child site the submission came from.  | read-only: true | validation: format GUID


```

### Examples

### Restore a spam submission
Restores the report as a regular submission. The submission gets a new ID.

```javascript
import { formSpamSubmissionReports } from "@wix/forms";

async function reportNotSpamSubmission() {
  const response = await formSpamSubmissionReports.reportNotSpamSubmission(
    "a7c3e2f1-5b8d-4e9a-9c1f-3d2e4b6a8f10",
  );
}

/* Promise resolves to:
 * {
 *   "submission": {
 *     "_id": "d2f4a6c8-5e7b-4d9a-b1c3-9f2e4a6d8b71",
 *     "formId": "21bcb6c7-02b3-4ed1-b6db-7856094fac03",
 *     "namespace": "wix.form_app.form",
 *     "status": "CONFIRMED",
 *     "submissions": {
 *       "first_name_e7a1": "Jordan",
 *       "email_3c9f": "jordan.lee@example.com",
 *       "long_answer_b42d": "Hi, I would like a quote for a kitchen renovation."
 *     },
 *     "_createdDate": "2026-10-12T09:14:31.512Z",
 *     "_updatedDate": "2026-10-14T11:02:47.390Z",
 *     "revision": "1",
 *     "submitter": {
 *       "visitorId": "9a3f5c7e-2d4b-4e6a-8c1f-5b7d9e2a4c68"
 *     },
 *     "seen": false,
 *     "contactId": "3b5d7f9a-1c2e-4b4d-9f6a-8c1e3a5b7d02"
 *   }
 * }
 */

```

### reportNotSpamSubmission (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { formSpamSubmissionReports } from '@wix/forms';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { formSpamSubmissionReports },
  // Include the auth strategy and host as relevant
});


async function reportNotSpamSubmission(formSpamSubmissionReportId) {
  const response = await myWixClient.formSpamSubmissionReports.reportNotSpamSubmission(formSpamSubmissionReportId);
};
```

---