Developer API Reference
Integrate with the Consented Identity Registry to verify consent before using someone's likeness in AI training or generation.
Feed this entire API reference to your LLM
Copy or download the full docs as markdown — paste into ChatGPT, Claude, or any AI assistant for integration help.
Authentication
All API requests must include an API key in the Authorization header using the Bearer scheme.
mou_live_{64 hex characters}API keys are issued per-platform and scoped to specific permissions. Store them securely and never expose them in client-side code.
Authorization: Bearer mou_live_a1b2c3d4e5f6...registry:readLook up identities and registry statisticsregistry:consent:readCheck consent status for a given identitywebhooks:manageCreate, update, and delete webhook subscriptionsConsent Oracle
/api/platform/v1/registry/consent/checkThe primary endpoint for checking whether a specific identity has granted consent for a given use case. Use this before training on or generating content with a person's likeness.
cidrequireduse_typeregionmodalityverifycurl -X GET \
"https://api.madeofus.ai/api/platform/v1/registry/consent/check?cid=cid_abc123&use_type=commercial®ion=US&modality=face" \
-H "Authorization: Bearer mou_live_a1b2c3d4e5f6..."{
"allowed": true,
"cid": "cid_abc123",
"use_type": "commercial",
"region": "US",
"modality": "face",
"consent_status": "active",
"checked_at": "2025-01-15T10:30:00Z",
"chain_verified": false
}Bulk Lookup
/api/platform/v1/registry/batch/lookupLook up multiple identities in a single request. Useful for batch processing pipelines that need to verify whether identities exist in the registry.
{
"cids": ["cid_abc123", "cid_def456", "cid_ghi789"]
}Maximum of 100 CIDs per request.
{
"results": {
"cid_abc123": {
"found": true,
"status": "verified",
"consent_status": "active"
},
"cid_def456": {
"found": true,
"status": "pending",
"consent_status": "not_set"
},
"cid_ghi789": {
"found": false
}
},
"meta": {
"total": 3,
"found": 2,
"not_found": 1
}
}Bulk Consent Check
/api/platform/v1/registry/batch/consentCheck consent for multiple identities at once. Accepts optional filtering by use type, region, and modality applied uniformly across all CIDs.
{
"cids": ["cid_abc123", "cid_def456"],
"use_type": "commercial",
"region": "US",
"modality": "face"
}Maximum of 100 CIDs per request. The use_type, region, and modality fields are optional.
{
"results": {
"cid_abc123": {
"allowed": true,
"consent_status": "active"
},
"cid_def456": {
"allowed": false,
"consent_status": "revoked"
}
},
"meta": {
"total": 2,
"allowed": 1,
"denied": 1,
"not_found": 0
}
}Single Identity
/api/registry/identity/{cid}Retrieve details for a single registered identity, including verification status and timestamps.
curl -X GET \
"https://api.madeofus.ai/api/registry/identity/cid_abc123" \
-H "Authorization: Bearer mou_live_a1b2c3d4e5f6..."{
"cid": "cid_abc123",
"status": "verified",
"created_at": "2025-01-10T08:00:00Z",
"verified_at": "2025-01-10T08:15:00Z",
"updated_at": "2025-01-12T14:30:00Z"
}Single Consent
/api/registry/identity/{cid}/consentRetrieve the current consent scope and event history summary for a specific identity.
curl -X GET \
"https://api.madeofus.ai/api/registry/identity/cid_abc123/consent" \
-H "Authorization: Bearer mou_live_a1b2c3d4e5f6..."{
"cid": "cid_abc123",
"consent_status": "active",
"scope": {
"use_types": {
"commercial": true,
"editorial": true,
"entertainment": false,
"elearning": true
},
"geographic_scope": {
"type": "allowlist",
"regions": ["US", "GB", "CA"]
},
"modalities": {
"face": true,
"voice": false,
"body": true
}
},
"event_count": 4,
"last_updated": "2025-01-14T12:00:00Z"
}Registry Stats
/api/platform/v1/registry/statsReturns aggregate statistics about the registry, including total identities, verification counts, and consent event totals.
curl -X GET \
"https://api.madeofus.ai/api/platform/v1/registry/stats" \
-H "Authorization: Bearer mou_live_a1b2c3d4e5f6..."{
"total_identities": 12847,
"verified_count": 11203,
"claimed_count": 1644,
"total_consent_events": 38291,
"active_consents": 10856,
"revoked_consents": 347
}Webhooks
Subscribe to real-time events from the registry. Webhooks are delivered as POST requests to your specified endpoint with an HMAC-SHA256 signature for verification.
registry.identity_createdA new identity has been registered in the systemregistry.consent_updatedAn identity's consent scope has been modifiedregistry.consent_revokedAn identity has revoked their consent entirelycontributor.verifiedA contributor has completed identity verificationcontributor.onboardedA contributor has completed the full onboarding flowEvery webhook request includes an X-Webhook-Signature header containing an HMAC-SHA256 signature of the request body. Verify this signature using your webhook secret to ensure the request originated from Made Of Us.
const crypto = require("crypto");
function verifyWebhookSignature(body, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(body, "utf8")
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}/api/platform/v1/webhookscurl -X POST \
"https://api.madeofus.ai/api/platform/v1/webhooks" \
-H "Authorization: Bearer mou_live_a1b2c3d4e5f6..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-platform.com/webhooks/madeofus",
"events": [
"registry.consent_updated",
"registry.consent_revoked"
],
"secret": "your_webhook_secret_here"
}'{
"id": "wh_abc123",
"url": "https://your-platform.com/webhooks/madeofus",
"events": [
"registry.consent_updated",
"registry.consent_revoked"
],
"active": true,
"created_at": "2025-01-15T10:00:00Z"
}Consent Spec v0.1
The ConsentScope object defines the full structure of a contributor's consent preferences. This is the canonical format used across all API responses and webhook payloads.
{
"spec_version": "0.1",
"use_types": {
"commercial": true,
"editorial": true,
"entertainment": false,
"elearning": true
},
"geographic_scope": {
"type": "allowlist", // "allowlist" | "blocklist"
"regions": ["US", "GB", "CA", "AU"]
},
"content_exclusions": [
"adult",
"political",
"tobacco"
],
"modalities": {
"face": true,
"voice": false,
"body": true
},
"temporal": {
"valid_from": "2025-01-01T00:00:00Z",
"valid_until": "2026-01-01T00:00:00Z",
"auto_renew": true
}
}spec_versionrequireduse_typesrequiredgeographic_scoperequiredcontent_exclusionsrequiredmodalitiesrequiredtemporalrequired