Skip to content
ContentRemovalDeskDocumentation

CRD for developers

Build protection into your agency workflow.

Connect your agency’s software to CRD. Enroll real creators, request scans, track findings, and receive signed webhooks.

REST API · JSONv0.2.0 · Live CRD integration
On this page

Your experience. CRD infrastructure.

Your backend connects your agency’s creator profiles to CRD. CRD runs eligible scans through its engine and returns progress, findings, and events for your application. Your integration sends the information it is authorized to share; the API does not automatically retrieve data from another platform.

Integration flowtext
Your application → Your backend → CRD Agency API → CRD engine
Your application ← Your backend ← Results & signed webhooks

Start with a verified agency account

Create an agency through the CRD app’s /create-agency flow. Complete agency onboarding and agency KYC. Once the existing KYC review approves the agency, API access is provisioned automatically when the owner opens the API section. Creating an account or submitting KYC does not automatically approve the agency.

The agency owner then uses /agency/api for keys, webhook endpoints, usage, and available billing tools. Every API customer follows this agency account model, including software companies integrating CRD. Each agency receives one assigned workspace.

Connect one agency or several independent agencies

A key belongs to one CRD agency workspace and covers the creators that agency is currently allowed to access. You do not create a new API key for each creator. If your software serves several independent CRD agencies, store and select a separate agency credential and workspace for each customer.

Keep three identifiers distinct: your external_id identifies a creator in your software; crt_… is the creator ID used in CRD API paths; crd_user_id is the existing native CRD account UUID. Store the returned mapping instead of deriving identifiers from names or email addresses.

Use your own backend

Your server sends the creator information it is authorized to share and stores the API secret. The API does not automatically retrieve accounts or data from another platform.

Connect to the live service

The live API uses crd_live_ credentials and dispatches to the configured CRD engine. An unavailable engine or agency verifier returns an error. The service never substitutes a synthetic result for a real request.

The live API is served at https://api.crd.systems, and every example in this reference uses that address. During the preview, access is limited to agencies CRD has enabled.

Requests can have real effects

Creator invitations send real onboarding email. Eligible scans can trigger CRD’s existing reporting workflows. Use authorized creator data and understand the operation before sending a live write.

One integration, your agency workflow

CapabilityHow it works
Creators & aliasesLink an existing agency creator or invite a creator through CRD onboarding.
AuthorizationRead eligibility based on the creator’s actual CRD mandate and entitlement.
ScanningRequest real scans and retrieve findings from those exact jobs.
Google deindexQueue a request in CRD and track its actual processing status.
Events & webhooksReceive signed HTTPS deliveries and recover events through the API.
UsageRead active API scan schedule time and configured price estimates.

Build against the documented contract

This reference defines request fields and response schemas. Examples use fictional identities and placeholder resource IDs. Replace them with your agency’s returned identifiers.

Names, aliases, and supported profile URLs use the same creator data in the API and CRD agency dashboard. Findings for current agency creators come from their existing native CRD leak records, including records found before API scans. Media uploads, biometric matching, bulk enrollment, and profile deletion are not available through this contract. The API’s scan schedule is separate from the creator’s CRD subscription.

Request & response example

EXAMPLE ORIGIN · LOCAL CONNECTION
https://api.crd.systems
POST/v1/creators
curl --request POST 'https://api.crd.systems/v1/creators' \
  --header "Authorization: Bearer $CRD_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "workspace_id": "wsp_example",
  "external_id": "creator_001",
  "crd_user_id": "33333333-3333-4333-8333-333333333333",
  "display_name": "Example Creator",
  "aliases": [
    "example_creator"
  ],
  "profile_urls": [
    "https://onlyfans.com/example_creator"
  ]
}'
Use your secret key in the environment variable.
Example response · 201
{
  "id": "crt_example",
  "workspace_id": "wsp_example",
  "external_id": "creator_001",
  "display_name": "Example Creator",
  "aliases": [
    "example_creator"
  ],
  "profile_urls": [
    "https://onlyfans.com/example_creator"
  ],
  "protection_status": "not_activated",
  "created_at": 1790035200000,
  "enrollment_status": "linked",
  "crd_user_id": "33333333-3333-4333-8333-333333333333",
  "invitation_id": null,
  "simulated": false,
  "scan_schedule_managed_by": "api",
  "crd_subscription_managed_by": "crd",
  "identity_sync_pending": false,
  "email_sent": false
}

Illustrative response. Replace example resource IDs with the IDs returned by your API requests. View endpoint details.