Complaint Resolution
Postman Workspace
We've created a Postman workspace specifically for our API, which contains example API calls that you can use to test and familiarise yourself with our API.
The workspace includes example API calls for each of our API endpoints, along with detailed descriptions of the request parameters and headers being used.
You can generate most of the client code to call our APIs using the Postman client code generator. With this feature, developers can select a range of programming languages, and generate the corresponding code with a few clicks.
Please note that while both the example API calls and the generated code can be a helpful starting point, it's important to thoroughly test your own API calls before deploying them in production. If you encounter any issues while using the example API calls, or if you have any questions about our API, please don't hesitate to reach out to our support team.
API Domain
Our API is designed to be used in two environments: a sandbox environment and a production environment.
The sandbox environment is intended for testing and development purposes, while the production environment is used for live data and real-world use cases.
To ensure the security and integrity of our API, we use separate API keys for each environment. This means that you will need to obtain different API keys for the sandbox and production environments, and should not use the same key for both.
Domain | Environment |
---|---|
https://moderation.verifymycontent.com | production |
https://moderation.sandbox.verifymycontent.com | sandbox |
Generating the HMAC header
To improve the security of the communication between your implementation and the VerifyMyContent API, we require you to generate a unique hexadecimal encoded SHA256 HMAC hash for each request, based on the input parameters.
The process of generating it depends on the language of your implementation.
If you use our SDK, the HMAC step will be abstracted,
and you don't need to do anything related to it.
Integration
Create a complaint
To start a complaint for previously uploaded content. You need to send the original content and the violations raised by the user.
Important: Please generate a universally unique identifier (UUID v4) for each customer on your site. This UUID should never change. For example, if the customer's username on your site changes, their UUID shouldn't.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
content required
The content with potential issues.
type optional
It can be video
or image
. Defaults to video
.
external_id required
The unique identifier you send to correlate with the complaint.
url required
The URL where we can download the original video or image uploaded by your customer.
title optional
The title of the content being moderated.
description optional
The text written by your customer to describe the content.
tags required
The potential violations raised by the user.
Status | Description |
---|---|
BESTIALITY | All content (images and video) that involves a person performing a sexual act with an animal (bestiality) or any animal genitalia will be rejected. |
DRUGS | All content (images and video) where there is clear and obvious evidence of drug use will be rejected. |
HATE | All content (images and video) where there is clear and obvious evidence of hate or symbols of hate will be rejected. |
NECROPHILIA | All content (images and video) that involves a human corpse or sexual interference with a human corpse (necrophilia) will be rejected. |
UNDERAGE | All content (images and video) that either exclusively or partially contains children will be rejected. Please note: this is based on the site being intended for people who are 18+ |
VIOLENCE | All content (images and video) where there is a clear and obvious threat to a person’s life (and portrayed in an explicit and realistic way) will be rejected. |
URINE_AND_FAECES | All content (images and video) depicting activities involving urine and/or faeces will be rejected. |
DEEPFAKE | All content (images and video) appearing to be using 'Deepfake' technology to replace the participant(s) with someone else's likeness will be rejected |
webhook required
This is the URL where we will post status updates on the complaint.
customer required
Customer information.
id required
Customer's unique ID.
Response parameters
id
Unique identifier generated by the VerifyMyContent API.
external_id
The unique identifier you send to correlate with the complaint.
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Awaiting Automation | The complaint was received. |
Awaiting Moderation | The moderators are about to confirm the moderation decision. |
Confirmed | Violations were found. |
Failed | An error occurred during the content processing. |
Rejected | No violations were found. |
notes
Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.
created_at
The date and time in the UTC timezone when the verification was created.
updated_at
The date and time in the UTC timezone when the verification was updated.
Error responses
Code | Description |
---|---|
400 |
|
422 |
|
401 |
|
401 |
|
500 |
|
POST /api/v1/complaint-moderation HTTP/1.1
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"content": {
"description": "Your description",
"external_id": "YOUR-VIDEO-ID",
"tags": [
"DRUGS"
],
"title": "Your title",
"type": "video",
"url": "https://example.com/video.mp4"
},
"customer": {
"id": "YOUR-USER-ID"
},
"webhook": "https://example.com/webhook"
}
{ "external_id": "YOUR-CORRELATION-ID", "id": "ABC-123-5678-ABC", "notes": "Complaint received.", "status": "Awaiting Automation", "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00" }
Receive the current status of a complaint
The complaint information can also be sent via webhook to your domain if you send it to us when you create a complaint.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
id
Unique identifier generated by the VerifyMyContent API.
external_id
The unique identifier you send to correlate with the complaint.
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Awaiting Automation | The complaint was received. |
Awaiting Moderation | The moderators are about to confirm the moderation decision. |
Confirmed | Violations were found. |
Failed | An error occurred during the content processing. |
Rejected | No violations were found. |
notes
Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.
complaint_tags
The potential violations raised by the user.
moderated_tags
Any tags associated with the moderation when the moderation status is Confirmed.
created_at
The date and time in the UTC timezone when the complaint was created.
updated_at
The date and time in the UTC timezone when the complaint was updated.
POST /your-path HTTP/1.1
Host: https://your-domain.com
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"id": "ABC-123-5678-ABC",
"external_id": "YOUR-CORRELATION-ID",
"status": "Confirmed",
"notes": "Harmful content found.",
"complaint_tags": [
"DRUGS"
],
"moderated_tags":[
"UNDERAGE",
]
"created_at": "2020-11-12 19:06:00",
"updated_at": "2020-11-12 19:06:00"
}
Get current status of the complaint
When you already have the id of a complaint you can see the current details of the complaint.
Authorization Header
Generate HMAC with: Request URIAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Response parameters
id
Unique identifier generated by the VerifyMyContent API.
external_id
The unique identifier you send to correlate with the complaint.
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Awaiting Automation | The complaint was received. |
Awaiting Moderation | The moderators are about to confirm the moderation decision. |
Confirmed | Violations were found. |
Failed | An error occurred during the content processing. |
Rejected | No violations were found. |
notes
Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.
complaint_tags
The potential violations raised by the user.
Status | Description |
---|---|
BESTIALITY | All content (images and video) that involves a person performing a sexual act with an animal (bestiality) or any animal genitalia will be rejected. |
DRUGS | All content (images and video) where there is clear and obvious evidence of drug use will be rejected. |
HATE | All content (images and video) where there is clear and obvious evidence of hate or symbols of hate will be rejected. |
NECROPHILIA | All content (images and video) that involves a human corpse or sexual interference with a human corpse (necrophilia) will be rejected. |
UNDERAGE | All content (images and video) that either exclusively or partially contains children will be rejected. Please note: this is based on the site being intended for people who are 18+ |
VIOLENCE | All content (images and video) where there is a clear and obvious threat to a person’s life (and portrayed in an explicit and realistic way) will be rejected. |
URINE_AND_FAECES | All content (images and video) depicting activities involving urine and/or faeces will be rejected. |
DEEPFAKE | All content (images and video) appearing to be using 'Deepfake' technology to replace the participant(s) with someone else's likeness will be rejected |
moderated_tags
Any tags associated with the moderation when the moderation status is Confirmed.
Status | Description |
---|---|
BESTIALITY | All content (images and video) that involves a person performing a sexual act with an animal (bestiality) or any animal genitalia will be rejected. |
DRUGS | All content (images and video) where there is clear and obvious evidence of drug use will be rejected. |
HATE | All content (images and video) where there is clear and obvious evidence of hate or symbols of hate will be rejected. |
NECROPHILIA | All content (images and video) that involves a human corpse or sexual interference with a human corpse (necrophilia) will be rejected. |
UNDERAGE | All content (images and video) that either exclusively or partially contains children will be rejected. Please note: this is based on the site being intended for people who are 18+ |
VIOLENCE | All content (images and video) where there is a clear and obvious threat to a person’s life (and portrayed in an explicit and realistic way) will be rejected. |
URINE_AND_FAECES | All content (images and video) depicting activities involving urine and/or faeces will be rejected. |
DEEPFAKE | All content (images and video) appearing to be using 'Deepfake' technology to replace the participant(s) with someone else's likeness will be rejected |
created_at
The date and time in the UTC timezone when the verification was created.
updated_at
The date and time in the UTC timezone when the verification was updated.
GET /api/v1/complaint-moderation/{ID} HTTP/1.1
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-URI
{ "id": "ABC-123-5678-ABC", "external_id": "YOUR-CORRELATION-ID", "notes": "Harmful content found.", "status": "Confirmed", "complaint_tags": [ "DRUGS" ], "moderated_tags": [ "UNDERAGE" ], "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00" }
Create a consent complaint
To start a consent complaint, you need to send your content external id.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
content required
The content with potential issues.
external_id required
The unique identifier you send to correlate with the complaint.
customer optional
Customer information.
id optional
Customer's unique ID.
webhook required
This is the URL where we will post status updates on the complaint.
Response parameters
id
Unique identifier generated by the VerifyMyContent API.
redirect_url
If a consent complaint was already created by the user for the same content this field will contain the redirect url to the existing complaint
status
The possible status returned by the consent complaint creation
Status | Description |
---|---|
Created | The complaint was received. |
Delivered | The complaint was delivered. |
Error responses
Code | Description |
---|---|
400 |
|
422 |
|
401 |
|
401 |
|
500 |
|
POST /api/v1/complaint-consent HTTP/1.1
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"content": {
"external_id": "string"
},
"customer": {
"id": "string"
},
"webhook": "string"
}
{ "id": "ABC-123-5678-ABC", "redirect_url": "https://app.verifymycontent.com/v/ABC-123-5678-ABC", "status": "Created" }
Receive the current status of a consent complaint
The complaint information can also be sent via webhook to your domain if you send it to us when you create a complaint.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
id
Unique identifier generated by the VerifyMyContent API.
consent
Consent information
external_id
The unique identifier you send to correlate with the complaint.
customer
Customer information
id
Customer's unique ID
Customer's email address
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Created | The complaint was received. |
Opened | The complaint was opened. |
Delivered | The complaint was delivered. |
created_at
The date and time in the UTC timezone when the complaint was created.
updated_at
The date and time in the UTC timezone when the complaint was updated.
POST /your-path HTTP/1.1
Host: https://your-domain.com
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"id": "ABC-123-5678-ABC",
"consent": {
"external_id": "YOUR-CORRELATION-ID"
},
"customer": {
"id": "YOUR ID",
"email": "customer@email.com"
},
"status": "Delivered",
"created_at": "2020-11-12 19:06:00",
"updated_at": "2020-11-12 19:06:00"
}
Get current status of the complaint consent
When you already have the id of a complaint consent you can see the current details of the complaint consent.
Authorization Header
Generate HMAC with: Request URIAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Response parameters
id
Unique identifier generated by the VerifyMyContent API.
consent
Consent information
external_id
The unique identifier you send to correlate with the complaint.
customer
Customer information
id
Customer's unique ID
Customer's email address
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Created | The complaint was received. |
Opened | When customer inform the email |
Delivered | The complaint was delivered. |
Delivery Error | An error occurred during the complaint delivery. |
created_at
The date and time in the UTC timezone when the complaint was created.
updated_at
The date and time in the UTC timezone when the complaint was updated.
GET /api/v1/complaint-moderation/{ID} HTTP/1.1
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-URI
{ "id": "ABC-123-5678-ABC", "content": { "external_id": "YOUR-CORRELATION-ID" }, "customer": { "id": "YOUR ID", "email": "customer@email.com" }, "status": "Delivered", "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00" }
Create a live stream complaint
To start a complaint, you need to send the live stream information.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
stream required
Represents the live stream with potential issues.
external_id required
The unique identifier you send to correlate with the complaint.
tags required
The potential violations raised by the user.
complained_at required
Date and time when the complaint was raised by the user.
webhook required
This is the URL where we will post status updates on the complaint.
customer optional
Customer information.
id optional
Customer's unique ID.
Response parameters
id
Unique identifier generated by the VerifyMyContent API.
external_id
The unique identifier you send to correlate with the complaint.
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Awaiting Automation | The complaint was received. |
Awaiting Moderation | The moderators are about to confirm the moderation decision. |
Confirmed | Violations were found. |
Failed | An error occurred during the content processing. |
Rejected | No violations were found. |
notes
Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.
created_at
The date and time in the UTC timezone when the verification was created.
updated_at
The date and time in the UTC timezone when the verification was updated.
POST /api/v1/complaint-livestream HTTP/1.1
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"complained_at": "2022-11-04T12:04:08.658Z",
"customer": {
"id": "YOUR-USER-ID"
},
"stream": {
"external_id": "YOUR-LIVESTREAM-ID",
"tags": [
"VIOLATION_1"
]
},
"webhook": "https://example.com/webhook"
}
{ "external_id": "YOUR-CORRELATION-ID", "id": "ABC-123-5678-ABC", "notes": "Complaint received.", "status": "Awaiting Automation", "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00" }
Receive the current status of a live stream complaint
The complaint information can also be sent via webhook to your domain if you send it to us when you create a complaint.
Authorization Header
Generate HMAC with: Request BodyAuthorization: hmac YOUR-API-KEY:GENERATED-HMAC
Request parameters
id
Unique identifier generated by the VerifyMyContent API.
external_id
The unique identifier you send to correlate with the complaint.
status
The current status of the complaint flow. It will change depending on the step of the complaint.
Status | Description |
---|---|
Awaiting Moderation | The moderators are about to confirm the moderation decision. |
Confirmed | Violations were found. |
Failed | An error occurred during the content processing. |
Rejected | No violations were found. |
notes
Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.
complaint_tags
Any tags associated with the complaint when the complaint status is Confirmed.
moderated_tags
Any tags associated with the moderation when the moderation status is Confirmed.
created_at
The date and time in the UTC timezone when the complaint was created.
updated_at
The date and time in the UTC timezone when the complaint was updated.
POST /your-path HTTP/1.1
Host: https://your-domain.com
Content-Type: application/json
Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY
{
"id": "ABC-123-5678-ABC",
"external_id": "YOUR-CORRELATION-ID",
"status": "Confirmed",
"notes": "Harmful content found.",
"complaint_tags": [
"VIOLATION_1"
],
"moderated_tags": [],
"created_at": "2020-11-12 19:06:00",
"updated_at": "2020-11-12 19:06:00"
}