DSA Feedback Submission

What is DSA

The Digital Services Act (DSA) is an European Union (EU) regulation aimed at creating a safer, more accountable online environment by setting clear rules for digital platforms on content moderation, transparency, and user rights protection. It ensures digital spaces align with EU values of safety, fairness, and democratic integrity. Key requirements of the DSA include obligations for platforms to:

  • Counter illegal content
  • Protect minors
  • Inform users about advertisements
  • Offer users a complaint mechanism

Prerequisite

To use the DSA feedback submission form, make sure DSA Compliance Integration is enabled. If you want to enable it, please contact Bazaarvoice support.

DSA feedback submission API

The Report feature has been enhanced to meet the DSA requirements, allowing users to report inappropriate or illegal content through the DSA feedback submission form. This includes all forms of user-generated content, including native and syndicated reviews (with or without images/videos), questions & answers, and comments.

⚠️

Caution

Bazaarvoice has partnered with a third-party vendor ComplianceOne to manage the DSA feedback form, including its rendering and submission.

To use the DSA Report feature, the API clients are required to load the DSA feedback submission form which allows consumers to submit their report. This form must be embedded within an iframe. The URL for the iframe can be retrieved using the DSA feedback submission API, which provides an environment-specific URL with following domains

For detailed integration steps on embedding the iframe into your webpage, refer to DSA feedback form iframe integration topic.

Below are the full details of the DSA feedback submission API, including the request structure, parameters, and example responses:

Endpoint

[POST] /data/dsafeedbackurl.json

HTTP Method

POST

URL

http://[stg.]api.bazaarvoice.com/data/dsafeedbackurl.json?passkey=[YourPasskey]

Parameters

ℹ️

Note:

Parameters marked with an asterisk (*) are mandatory.

NameDescription
Request Parameters
Content-Typeapplication/json.
ParametersThe request body must be in JSON
passkey*A Conversations API key for authentication. This is a query parameter which is a part of the request url.
domain*The domain of the content which will only be allowed to load the iframe.
url*The url of the content being reported.
contentId*An unique identifier for the content, passed as reference in the url parameter.
lang*The language of the content, passed as the lang in the url parameter.
Example: en (English).
The client should check with Bazaarvoice Support to confirm whether or not the language is supported for DSA feedback form.
subjectThe subject of the content. A text that summarizes the DSA feedback form to differentiate it from others.
Recommended Format: {ClientName}_{ContentType}_{ContentId}
Example: testcustomer_review_417531
displayCode*An unique display code of the current site.
client*A known Bazaarvoice client instance.
Example: walmart.
sourceClient*Identifies the client from which the content originates and it is retrieved from reviews.json. This parameter is mandatory if the content being reported is syndicated. Additionally, for syndicated content, the client instance must be recognized by Bazaarvoice.

This parameter is mandatory if the content is syndicated and from a different Bazaarvoice client. If missing, the report feature will not function.

Clients should not use the DSA report feature if the UGC content is not from Bazaarvoice.
contentType*The type of content that is being reported.
Example: review, question, answer, and review comment.
destSiteId*The Site ID of the current site, which can be found in the Site Manager page of the Bazaarvoice Portal (Portal > Settings > Configuration).
contentLocale*The locale of the content that is being reported. Format should be language_country.
Example: en_US.

Example

Request

curl --location 'http://[stg.]api.bazaarvoice.com/data/dsafeedbackurl.json?passkey=[YourPasskey]'
\
--header 'Content-Type: application/json' \
--data '{
    "domain":"apps-stg.bazaarvoice.com",
    "url": "https://apps-stg.bazaarvoice.com/temp/dsa_iframe/test_dsa_iframe_v2.html?bvmessageType=REVIEW_CONTENT&bvTriggerer=dsa_workflow#review/1617911",
    "contentId": "1359368",
    "lang":"en",
    "subject":"Accounts infrastructures copy",
    "parameters": {
        "displayCode": "12334",
        "client":  "test-editreviews",
        "sourceClient":"testcustomer-concierge-integrat",
        "contentType": "Review",
        "destSiteId":"639",
        "contentLocale": "en_US",
    }
}'

Response

{"formUrl":
 "https://[stg.]dsacompliance.bazaarvoice.com/dsa/iframe/38/6405fc61c072/?reference=1359368&url=https%3A%2F%2Fapps-stg.bazaarvoice.com%2Ftemp%2Fdsa_iframe%2Ftest_dsa_iframe_v2.html%3FbvmessageType%3DREVIEW_CONTENT%26bvTriggerer%3Ddsa_workflow%23review%2F1617911&lang=en&hash=503e9d64638be9a700625e05f3af47c655f713ba6adb0b23852d7f641d3517ad&parameters=%7B%22displayCode%22%3A%2212334%22%2C%22client%22%3A%22test-editreviews%22%2C%22sourceClient%22%3A%22testcustomer-concierge-integrat%22%2C%22contentType%22%3A%22Review%22%2C%22destSiteId%22%3A%221000%22%2C%22contentLocale%22%3A%22en_US%22%2C%22product%22%3A%22RnR%22%7D&subject=synergies XSS SSL&dhash=d9040d8c8e757e379fa6905919e3fde951c4eae538c9ba479f14c018da0f720d&domain=apps-stg.bazaarvoice.com",
 "status":200}

Response Elements

The response includes a DSA feedback form URL and a status code.

  • formUrl (string): A URL that contains the feedback form, including various parameters such as the reference, url, domain hash, and other content-related parameters.
  • status (integer): The HTTP status code indicating the result of the request. A status of 200 indicates success.

Errors

  1. 400 ERROR
    Bad Request error occurs when invalid parameters are provided or required fields are missing.
    {
      "instance": "/data/dsafeedbackurl",
      "title": "Bad Request",
      "status": 400,
      "detail": "Invalid JSON format"
    
  2. 500 ERROR
    Internal Server Error occurs when an issue arises while processing the request.
    {
      "instance": "/data/dsafeedbackurl",
      "title": "Internal Server Error",
      "status": 500,
      "detail": "An unexpected error has occurred, please retry. Contact Bazaarvoice if the problem persists."
    }