Integrate machine-enforceable consent into your AI pipeline. Check visibility, request licenses, submit render receipts, embed cryptographic watermarks, and verify provenance — all through a single REST API.
Get API Key
Developer portal
Verify Image
Check provenance
View Protocol
Full specification
Studio Dashboard
Manage licenses
Get API Key
Sign up as a studio, generate a key from your dashboard
Check Visibility
Verify the talent has consented to platform discovery
Request License
Request usage rights — talent approves or denies
Log Render
Submit a receipt for each AI-generated output
Watermark
Embed provenance into the output image pixels
import fetch from 'node-fetch';
const DIAP_API_KEY = process.env.DIAP_API_KEY;
const BASE_URL = 'https://diap.me';
// 1. Check visibility
const visibility = await fetch(`${BASE_URL}/api/v1/visibility/check`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${DIAP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
talent_diap_id: 'marcus_rivera_001',
module_type: 'FACE_3D',
}),
});
// 2. Request license
const license = await fetch(`${BASE_URL}/api/v1/license/request`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${DIAP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
talent_diap_id: 'marcus_rivera_001',
project: 'Glass City',
rights: ['FACE_RENDER', 'VOICE_RENDER'],
scope: 'Feature Film',
duration_days: 365,
}),
});
const { token_id } = await license.json();
// 3. Submit render receipt
const receipt = await fetch(`${BASE_URL}/api/v1/receipt/submit`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${DIAP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
token_id,
description: 'Scene 12 hero poster',
output_type: 'poster',
ai_modified: true,
ai_mod_flags: ['age_progression'],
}),
});
console.log('Provenance recorded:', await receipt.json());| Code | Meaning |
|---|---|
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
409 | Conflict |
429 | Rate Limited |
500 | Server Error |