Skip to main content
POST
Create a report

Overview

The Report Create endpoint allows you to submit assets (URLs, domains, blockchain addresses, etc.) for review by the ChainPatrol team. This endpoint handles bulk submissions and provides detailed error reporting for validation failures.

Error Responses

422 Unprocessable Content

Returned when the request is syntactically valid but contains validation errors or duplicate assets. This is the most common error type and provides detailed per-asset error information.

Example: Duplicate Assets

Example: Multiple Validation Errors

500 Internal Server Error

Returned for unexpected server conditions, including database errors and other technical failures. The response uses safe, generic messages to avoid exposing internal system details.

Standard Error Response

Database Error Response

Best Practices

Asset Validation

URLs: Include the full protocol (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

Error Handling

Always check the 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

Performance Tips

Batch multiple assets in a single request when possible Validate asset formats client-side before submission Handle rate limiting appropriately

Troubleshooting

Common Issues

“INVALID_FORMAT” errors: Ensure URLs include protocol (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

Rate Limiting

The endpoint implements rate limiting to prevent abuse. If you encounter rate limit errors: Implement exponential backoff in your retry logic Consider batching requests to reduce API calls Contact support for higher rate limits if needed

Notes

Error payload shape is stable across 422 errors; check 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.

Authorizations

X-API-KEY
string
header
required

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.

Body

application/json
assets
object[]
required
organizationSlug
string
discordGuildId
string
telegramGroupId
string
title
string
Minimum string length: 3
description
string
contactInfo
string
attachmentUrls
string<uri>[]
userAgent
string
referrer
string
rawAssetsInput
string
externalReporter
object

Response

Successful response

id
number
required
createdAt
string
required
organization
object | null
required