Submit a Report
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/reports \
--header 'Content-Type: application/json' \
--data '
{
"targetId": "<string>",
"targetType": "<string>",
"reason": "<string>",
"details": "<string>"
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/reports"
payload = {
"targetId": "<string>",
"targetType": "<string>",
"reason": "<string>",
"details": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
targetId: '<string>',
targetType: '<string>',
reason: '<string>',
details: '<string>'
})
};
fetch('https://api.replyke.com/api/v6/:projectId/reports', 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.replyke.com/api/v6/:projectId/reports",
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([
'targetId' => '<string>',
'targetType' => '<string>',
'reason' => '<string>',
'details' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.replyke.com/api/v6/:projectId/reports"
payload := strings.NewReader("{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.replyke.com/api/v6/:projectId/reports")
.header("Content-Type", "application/json")
.body("{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"code": "<string>"
}Moderation Endpoints
Submit a Report
Submit a report for a Comment or Entity to flag inappropriate content
POST
/
:projectId
/
reports
Submit a Report
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/reports \
--header 'Content-Type: application/json' \
--data '
{
"targetId": "<string>",
"targetType": "<string>",
"reason": "<string>",
"details": "<string>"
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/reports"
payload = {
"targetId": "<string>",
"targetType": "<string>",
"reason": "<string>",
"details": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
targetId: '<string>',
targetType: '<string>',
reason: '<string>',
details: '<string>'
})
};
fetch('https://api.replyke.com/api/v6/:projectId/reports', 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.replyke.com/api/v6/:projectId/reports",
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([
'targetId' => '<string>',
'targetType' => '<string>',
'reason' => '<string>',
'details' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.replyke.com/api/v6/:projectId/reports"
payload := strings.NewReader("{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.replyke.com/api/v6/:projectId/reports")
.header("Content-Type", "application/json")
.body("{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetId\": \"<string>\",\n \"targetType\": \"<string>\",\n \"reason\": \"<string>\",\n \"details\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"code": "<string>"
}Submit a report for a
Comment or Entity. Reports are tracked per user to avoid duplicate submissions.
Body Parameters
string
required
ID of the target being reported (comment or entity)
string
required
Type of target being reported. Must be either
Comment or Entitystring
required
Reason for the report (e.g., “Spam”, “Harassment”, “Inappropriate content”)
string
Optional additional information about the report
Response
string
Success message describing the result
string
Response code (e.g., “report/created”, “report/already-reported”, “report/updated”)
Success Responses
New Report Created - 201 Created
New Report Created - 201 Created
{
"message": "Report submitted successfully",
"code": "report/created"
}
Report Already Exists - 200 OK
Report Already Exists - 200 OK
{
"message": "Report already registered by this user",
"code": "report/already-reported"
}
Report Updated - 200 OK
Report Updated - 200 OK
{
"message": "Report updated successfully",
"code": "report/updated"
}
Error Responses
Missing Required Fields - 400 Bad Request
Missing Required Fields - 400 Bad Request
{
"error": "Missing required fields",
"code": "report/missing-data"
}
Invalid Target Type - 400 Bad Request
Invalid Target Type - 400 Bad Request
{
"error": "Invalid targetType",
"code": "report/invalid-type"
}
Target Not Found - 404 Not Found
Target Not Found - 404 Not Found
{
"error": "Comment not found",
"code": "report/target-not-found"
}
Foreign Key Violation - 400 Bad Request
Foreign Key Violation - 400 Bad Request
{
"error": "Invalid targetId or projectId",
"code": "report/invalid-foreign-key"
}
Server Error - 500 Internal Server Error
Server Error - 500 Internal Server Error
{
"error": "Server error",
"code": "report/server-error",
"details": "<Error message>"
}
Notes
- Requires authentication
- Only
CommentandEntityare validtargetTypevalues - Multiple users can report the same target, but each user is recorded only once
- Submitting a second report for the same target updates the reporter list
- Reports are reviewed by moderators through the Replyke dashboard
- Rate limiting: 20 requests per 5 minutes

