curl --request POST \
--url https://app.chainpatrol.io/api/v2/report/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"assets": [
{
"content": "<string>",
"status": "BLOCKED",
"reporterConfidence": "HIGH",
"enrichments": [
{
"type": "content_and_metadata",
"source": "<string>",
"output": {}
}
]
}
],
"organizationSlug": "<string>",
"discordGuildId": "<string>",
"telegramGroupId": "<string>",
"title": "<string>",
"description": "<string>",
"contactInfo": "<string>",
"attachmentUrls": [
"<string>"
],
"externalSubmissionLink": "<string>",
"userAgent": "<string>",
"referrer": "<string>",
"rawAssetsInput": "<string>",
"externalReporter": {
"platformIdentifier": "<string>",
"platform": "<string>",
"displayName": "<string>",
"avatarUrl": "<string>"
}
}
'{
"id": 123,
"createdAt": "<string>",
"organization": {
"id": 123,
"slug": "<string>",
"name": "<string>"
}
}Create a new report on ChainPatrol for a particular organization
curl --request POST \
--url https://app.chainpatrol.io/api/v2/report/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"assets": [
{
"content": "<string>",
"status": "BLOCKED",
"reporterConfidence": "HIGH",
"enrichments": [
{
"type": "content_and_metadata",
"source": "<string>",
"output": {}
}
]
}
],
"organizationSlug": "<string>",
"discordGuildId": "<string>",
"telegramGroupId": "<string>",
"title": "<string>",
"description": "<string>",
"contactInfo": "<string>",
"attachmentUrls": [
"<string>"
],
"externalSubmissionLink": "<string>",
"userAgent": "<string>",
"referrer": "<string>",
"rawAssetsInput": "<string>",
"externalReporter": {
"platformIdentifier": "<string>",
"platform": "<string>",
"displayName": "<string>",
"avatarUrl": "<string>"
}
}
'{
"id": 123,
"createdAt": "<string>",
"organization": {
"id": 123,
"slug": "<string>",
"name": "<string>"
}
}| Error Type | Description | Resolution |
|---|---|---|
DUPLICATE_ASSETS | Same asset appears multiple times in the report | Remove duplicate assets from submission |
INVALID_FORMAT | Asset format is invalid | Use valid URLs, domains, or blockchain addresses |
ASSET_NOT_FOUND | Asset could not be located or created | Verify asset format and accessibility |
ASSET_ALREADY_CORRECT | Asset already has the requested status | No action needed - asset is already in desired state |
ALREADY_PENDING_REVIEW | Asset has a pending proposal for the requested status | Wait for existing proposal to be processed |
REPORT_ALREADY_EXISTS | A pending report/proposal for this asset exists | Check existing reports or wait for processing |
PROCESSING_FAILED | Technical error occurred during asset processing | Retry the request or contact support |
DOMAIN_NOT_ALLOWED | Asset’s domain is on the ignore list | Domain is excluded from reports per content policy |
VALIDATION_ERROR | Generic validation error | Check asset format and requirements |
{
"message": "Report creation failed: Duplicate assets found. 2 asset(s) appear multiple times in the same report.",
"code": "UNPROCESSABLE_CONTENT",
"data": {
"errors": [
{
"asset": "scam.example",
"errorType": "DUPLICATE_ASSETS",
"message": "This asset appears multiple times in the same report",
"suggestion": "Remove duplicate assets from your submission - each asset should only appear once per report"
}
]
}
}
{
"message": "Report creation failed: 2 of 3 assets are invalid. All assets must be valid to create a report.",
"code": "UNPROCESSABLE_CONTENT",
"data": {
"errors": [
{
"asset": "http",
"errorType": "INVALID_FORMAT",
"message": "This asset couldn't be processed due to invalid format",
"suggestion": "Use valid URLs (https://example.com), domains (example.com), or blockchain addresses (eip155:1:0x123...)"
},
{
"asset": "decen-masters.com",
"errorType": "DOMAIN_NOT_ALLOWED",
"message": "This domain cannot be reported as it's on the ignore list",
"suggestion": "This domain is currently excluded from reports based on our content policy. Please reach out to us if you believe this is an error"
}
]
}
}
{
"message": "Unable to process your report. Please try again or contact support if the issue persists.",
"code": "INTERNAL_SERVER_ERROR"
}
{
"message": "A database error occurred. This has been reported internally - please contact support@chainpatrol.io for assistance.",
"code": "INTERNAL_SERVER_ERROR"
}
https:// or http://)
Domains: Use clean domain names without protocols or paths
Blockchain Addresses: Use EIP-155 format for Ethereum addresses
Avoid Duplicates: Each asset should appear only once per report
data.errors array in 422 responses for per-asset details
Use the suggestion field in error responses to guide users
Implement retry logic for 500 errors with exponential backoff
https:// or http://)
Verify domain names don’t include protocols or paths
Check blockchain address format matches EIP-155 standard
“DUPLICATE_ASSETS” errors:
Remove duplicate entries from the assets array
Check for case sensitivity differences
Verify URL normalization (trailing slashes, etc.)
“DOMAIN_NOT_ALLOWED” errors:
The domain is on ChainPatrol’s ignore list
Contact disputes@chainpatrol.io to dispute this decision
Consider reporting specific URLs instead of the entire domain
“ASSET_ALREADY_CORRECT” errors:
The asset already has the status you’re requesting
Check the current asset status before reporting
No action needed - the asset is already in the desired state
data.errors for per-asset details
Provide the organizationSlug and valid assets to minimize 500s caused by invalid state
All assets must be valid for the report to be created
A report can only be created once per email address for a specific asset
For technical issues or questions about error responses, contact support@chainpatrol.io and include the full error response in your request.Your API key. This is required by most endpoints to access our API programatically. Reach out to us at support@chainpatrol.io to get an API key for your use.
Show child attributes
3Show child attributes
Was this page helpful?