Documentation
Pre-generation authorization for AI applications — implements the PRE-GEN protocol. Verify rights before generating content.
How it works
PRAMPTA is a pre-generation rights registry: before your app generates content involving a real, registered person or brand, it asks PRAMPTA for a signed decision. Allowed means generate; refused means stop — and for the most common refusal, the decision itself carries a ready link for the end user to fix it.
curl -X POST https://api2.prampta.com/v1/verify/ \
-H "X-Provider-ID: prov_9f2b41" \
-H "X-Licensee-ID: lic_acme" \
-H "Authorization: Bearer $PRAMPTA_KEY" \
-d '{
"subject_id": "pre-gen",
"prompt_hash": "9f2b41c8…",
"intended_use": { "channel": "ad", "territory": "US" }
}'{
"decision_id": "dec_7c1a93",
"allowed": false,
"disposition": "deny",
"reason": "no_license",
"policy_version": "2026-09",
"operator_key_id": "pg-ed25519:1904514f…",
"operator_signature": "3a7d…"
}The three license types
Every registered subject offers all three, always, automatically — nobody picks "STD or PRM" at registration. Which one a given generation needs depends on intended_use.use_case in the request.
When a refusal is fixable
Most refusals in the reference list are hard — nothing your user can do fixes them (the subject opted out, a license was revoked). PG_NO_LICENSE is different: it just means no license exists yet, and the decision's remediation.url is a ready link straight to buying or requesting one for that exact subject — send your user there, then retry /verify once they're done. No webhook to build — a refusal that becomes fixable is just a refusal you check again.