Create User Feedback
curl --request POST \
--url https://api.prd.realitydefender.xyz/api/v2/user-feedback \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"label": "<string>",
"feedbackCategory": "<string>",
"comment": "<string>"
}
'import requests
url = "https://api.prd.realitydefender.xyz/api/v2/user-feedback"
payload = {
"requestId": "<string>",
"label": "<string>",
"feedbackCategory": "<string>",
"comment": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
label: '<string>',
feedbackCategory: '<string>',
comment: '<string>'
})
};
fetch('https://api.prd.realitydefender.xyz/api/v2/user-feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prd.realitydefender.xyz/api/v2/user-feedback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'requestId' => '<string>',
'label' => '<string>',
'feedbackCategory' => '<string>',
'comment' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prd.realitydefender.xyz/api/v2/user-feedback"
payload := strings.NewReader("{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prd.realitydefender.xyz/api/v2/user-feedback")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prd.realitydefender.xyz/api/v2/user-feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyEndpoint Examples
Create User Feedback
POST
api
/
v2
/
user-feedback
Create User Feedback
curl --request POST \
--url https://api.prd.realitydefender.xyz/api/v2/user-feedback \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"label": "<string>",
"feedbackCategory": "<string>",
"comment": "<string>"
}
'import requests
url = "https://api.prd.realitydefender.xyz/api/v2/user-feedback"
payload = {
"requestId": "<string>",
"label": "<string>",
"feedbackCategory": "<string>",
"comment": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
label: '<string>',
feedbackCategory: '<string>',
comment: '<string>'
})
};
fetch('https://api.prd.realitydefender.xyz/api/v2/user-feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prd.realitydefender.xyz/api/v2/user-feedback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'requestId' => '<string>',
'label' => '<string>',
'feedbackCategory' => '<string>',
'comment' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prd.realitydefender.xyz/api/v2/user-feedback"
payload := strings.NewReader("{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prd.realitydefender.xyz/api/v2/user-feedback")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prd.realitydefender.xyz/api/v2/user-feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requestId\": \"<string>\",\n \"label\": \"<string>\",\n \"feedbackCategory\": \"<string>\",\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodystring
The media result identifier (required). This is the
requestId returned when a file was processed; you can also obtain it from the Media Detail response or the web app when viewing a result.string
Your label for the content (required). One of:
REAL, SYNTHETIC, MANIPULATED, UNKNOWN.string
The type of feedback (required). One of:
FALSE_POSITIVE, FALSE_NEGATIVE, CONFIRMATION, OTHER.string
Optional free-text comment. If omitted, no comment is stored.
201 Created with the created feedback record.
You may only submit feedback for a result you uploaded, for a result in your same organization, or, for certain roles, on behalf of your organization. If the
requestId is unknown, the API returns 400. If you are not allowed to comment on that result, the API returns 403.Authorization
You must include thex-api-key header in your request. The key must belong to a user with RealScan access to authenticate the request and properly attribute the feedback to the correct user and organization.
Errors
- 400 Bad Request — No media result exists for the given
requestId("Media result does not exist!"). - 403 Forbidden — The authenticated user cannot submit feedback for that result (
"You are not authorized to create feedback for this media result!").
Sample request
curl -X POST \
'https://api.prd.realitydefender.xyz/api/v2/user-feedback' \
-H 'X-API-KEY: your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"requestId": "your-request-id",
"label": "REAL",
"feedbackCategory": "CONFIRMATION",
"comment": "Looks correct in context."
}'
import requests
url = "https://api.prd.realitydefender.xyz/api/v2/user-feedback"
headers = {
"X-API-KEY": "your-api-key-here",
"Content-Type": "application/json",
}
payload = {
"requestId": "your-request-id",
"label": "REAL",
"feedbackCategory": "CONFIRMATION",
"comment": "Looks correct in context.",
}
response = requests.post(url, json=payload, headers=headers)
print(response.status_code, response.json())
Sample response
201 Created — body shape is similar to:
{
"id": "uuid",
"userId": "user-id",
"requestId": "your-request-id",
"institutionId": "institution-id",
"text": "Looks correct in context.",
"category": "CONFIRMATION",
"userName": "Jane Doe",
"userEmail": "jane@example.com",
"orgName": "Organization name",
"mediaType": "VIDEO",
"mediaViewUrl": "https://...",
"mediaSource": "API",
"label": "REAL",
"createdAt": "2025-01-15T12:00:00.000Z"
}
text field is only populated if a comment is included in the request.