Skip to main content

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.

DomainEnvironment
https://moderation.verifymycontent.comproduction
https://moderation.sandbox.verifymycontent.comsandbox

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.
Copy

Copied!

<?php

hash_hmac('sha256', $input, 'API_SECRET');
Copy

Copied!

import { HmacSHA256 } from 'crypto-js';

HmacSHA256(JSON.stringify(input), 'API_SECRET').toString()
Copy

Copied!

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 Body
Authorization: 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.

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.

StatusDescription
PendingThe complaint was received.
ConfirmedViolations were found.
FailedAn error occurred during the content processing.
RejectedNo violations were found.

notes

Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.

tags

Any tags associated with the complaint when the complaint status is Confirmed.

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.

API Call
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": [
            "VIOLATION_1"
        ],
        "title": "Your title",
        "type": "video",
        "url": "https://example.com/video.mp4"
    },
    "customer": {
        "id": "YOUR-USER-ID"
    },
    "webhook": "https://example.com/webhook"
}
Copy

Copied!

curl -d '{"content": {"description": "Your description", "external_id": "YOUR-VIDEO-ID", "tags": ["VIOLATION_1"], "title": "Your title", "type": "video", "url": "https://example.com/video.mp4"}, "customer": {"id": "YOUR-USER-ID"}, "webhook": "https://example.com/webhook"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://moderation.sandbox.verifymycontent.com/api/v1/complaint-moderation
Copy

Copied!

Response 201: (application/json)
{
  "external_id": "YOUR-CORRELATION-ID",
  "id": "ABC-123-5678-ABC",
  "notes": "Harmful content found.",
  "status": "Confirmed",
  "tags": [
    "UNDERAGE"
  ],
  "created_at": "2020-11-12 19:06:00",
  "updated_at": "2020-11-12 19:06:00"
}
Copy

Copied!

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 Body
Authorization: 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.

StatusDescription
Awaiting AutomationOur AI is about to process the content to detect any illegal or non-consensual content.
Awaiting ModerationThe moderators are about to confirm the moderation decision.
ConfirmedViolations were found.
FailedAn error occurred during the content processing.
RejectedNo 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.

Webhook Call
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.",
  "tags": [
    "VIOLATION_1"
  ],
  "created_at": "2020-11-12 19:06:00",
  "updated_at": "2020-11-12 19:06:00"
}
Copy

Copied!

curl -d '{"id": "ABC-123-5678-ABC", "external_id": "YOUR-CORRELATION-ID", "status": "Confirmed", "notes": "Harmful content found.", "tags": ["VIOLATION_1"], "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://your-domain.com/your-path
Copy

Copied!

Response 2xx

Create a live stream complaint

To start a complaint, you need to send the live stream information.

Authorization Header

Generate HMAC with: Request Body
Authorization: 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.

StatusDescription
PendingThe complaint was received.
ConfirmedViolations were found.
FailedAn error occurred during the content processing.
RejectedNo violations were found.

notes

Any notes associated with the moderation when the complaint status is 'Confirmed’ or ‘Rejected’.

tags

Any tags associated with the complaint when the complaint status is Confirmed.

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.

API Call
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"
}
Copy

Copied!

curl -d '{"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"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://moderation.sandbox.verifymycontent.com/api/v1/complaint-livestream
Copy

Copied!

Response 201: (application/json)
{
  "external_id": "YOUR-CORRELATION-ID",
  "id": "ABC-123-5678-ABC",
  "notes": "Harmful content found.",
  "status": "Confirmed",
  "tags": [
    "UNDERAGE"
  ],
  "created_at": "2020-11-12 19:06:00",
  "updated_at": "2020-11-12 19:06:00"
}
Copy

Copied!

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 Body
Authorization: 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.

StatusDescription
Awaiting ModerationThe moderators are about to confirm the moderation decision.
ConfirmedViolations were found.
FailedAn error occurred during the content processing.
RejectedNo 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.

Webhook Call
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"
}
Copy

Copied!

curl -d '{"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"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://your-domain.com/your-path
Copy

Copied!

Response 2xx

Create a consent complaint

To start a complaint, you need to send the pre recorded video id and your customer id.

Authorization Header

Generate HMAC with: Request Body
Authorization: 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

StatusDescription
CreatedThe complaint was received.
API Call
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"
}
Copy

Copied!

curl -d '{"content": {"external_id": "string"}, "customer": {"id": "string"}, "webhook": "string"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://moderation.sandbox.verifymycontent.com/api/v1/complaint-consent
Copy

Copied!

Response 201: (application/json)
{
  "id": "string",
  "redirect_url": "string",
  "status": "string"
}
Copy

Copied!

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 Body
Authorization: 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

email

Customer's email address

status

The current status of the complaint flow. It will change depending on the step of the complaint.

StatusDescription
CreatedThe complaint was received.
OpenedThe complaint was opened.
DeliveredThe complaint was delivered.
Delivery ErrorAn 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.

Webhook Call
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": "Created",
  "created_at": "2020-11-12 19:06:00",
  "updated_at": "2020-11-12 19:06:00"
}
Copy

Copied!

curl -d '{"id": "ABC-123-5678-ABC", "consent": { "external_id": "YOUR-CORRELATION-ID" }, "customer": { "id": "YOUR ID", "email": "customer@email.com" }, "status": "Created", "created_at": "2020-11-12 19:06:00", "updated_at": "2020-11-12 19:06:00"}' \
-H "Content-Type: application/json" \
-H "Authorization: hmac YOUR-API-KEY:GENERATE-HMAC-WITH-REQUEST-BODY" \
-X POST https://your-domain.com/your-path
Copy

Copied!

Response 2xx