Documentation

Pre-generation authorization for AI applications — implements the PRE-GEN protocol. Verify rights before generating content.

@prampta/sdkTypeScriptNode ≥ 18Apache-2.0

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.

the call
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" }
  }'
signed decision
{
  "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.

STD
Personal
Fan art, personal projects, never distributed commercially. The only tier that grants with no human in the loop.
Auto-granted, instantly
RND
Educational / Research / Editorial
Teaching, academic research, journalism and documentary work. Free, but not automatic — request it and wait for the rights holder.
Owner reviews each request
PRM
Commercial
Advertising, marketing, brand content. The only paid tier — an owner can price it for instant checkout or keep it request-only.
Bought, or owner reviews each 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.

PRAMPTA — Generative Rights Registry