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.
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.
Your application → Your backend → CRD Agency API → CRD engine
Your application ← Your backend ← Results & signed webhooksStart 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, the API account itself is provisioned automatically when the owner opens the API section. Creating an account or submitting KYC does not automatically approve the agency.
API access is available to all agencies after completed onboarding and KYC approval. No separate pilot approval is needed.
The agency owner then uses /agency/api for keys, webhook endpoints and usage. There is no separate API price to negotiate: API access is included in agency protection; billing depends on the agency agreement, and only your agency’s own owner creates or manages this account, from /agency/api — CRD staff cannot do it for you. 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.
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. Access requires a verified agency account and an owner-issued API key.
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.
What the API supports
There is no public endpoint that sends a Google notice, directly removes a search result, or sends an arbitrary DMCA notice. CRD's own engine already queues de-indexing automatically the moment a scan — yours or CRD's own — finds an actionable match; nothing in your integration needs to request it separately.
| Capability | Available behavior |
|---|---|
| Creators & identity | Read the agency roster, link or invite creators, and update names, aliases, official profiles and profile photos. |
| Protection & scanning | Read authorization and entitlement, activate API protection, and request an additional scan. Recurring scanning is managed by CRD and requires active protection. |
| Reports & removal tracking | Report a leak or impersonation URL to CRD. Read synchronized leak cases and their current status; impersonation statuses have their own collection and signed webhook events. |
| Events & webhooks | Receive signed creator, scan and leak-case updates. Recover recorded events with GET /v1/events. |
| Usage | Read active API protection time. API access is included in the agency plan; usage responses are not invoices. |
Build against the documented contract
The API and agency portal use the same creator identity and native CRD leak records. Synchronization is asynchronous: refresh resources after an event and retain stable IDs. Examples use fictional identities and placeholder IDs, not demo endpoints.
Supported writes include profile photos fetched from a public HTTPS URL. There is no general media-upload API, biometric-matching API, bulk-enrollment endpoint, creator-signature endpoint, or deletion of a creator account. DELETE /v1/creators/{id} cancels a pending invitation or detaches an accepted creator before onboarding completes; it never deletes the underlying user or legal/leak records.
This public reference describes the current agency-account model. Software serving several independent CRD agencies uses separate agency credentials; there is no public reseller master key or delegated manager-signature flow.
Request & response example
https://api.crd.systems/v1/creatorscurl --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"
]
}'{
"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.