Purposes
Every disclosure request declares why it is asking. Purposes are a closed, seeded vocabulary — never free text — so that rules and requests refer to the same seven names and purpose limitation is something the system can actually check.
| Purpose | Description |
|---|---|
social_display |
Show this person in a social or community context |
professional |
Represent this person in a professional or workplace context |
shipping |
Deliver physical goods to this person |
billing |
Invoice or charge this person |
age_verification |
Confirm this person meets an age requirement |
legal_kyc |
Satisfy a legal know-your-customer obligation |
support |
Provide customer support to this person |
The vocabulary is published, without authentication, at GET /v1/purposes on both
API surfaces:
[ { "name": "social_display", "description": "Show this person in a social or community context" }, { "name": "professional", "description": "Represent this person in a professional or workplace context" }]How a purpose travels
Section titled “How a purpose travels”A requester passes it as a query parameter — GET /v1/disclose/alice?purpose=shipping.
It is required; a name outside the vocabulary is 400 invalid_purpose. Carrying the
purpose in the URL makes it a self-documenting input that appears in request logs and
in the audit trail with no extra plumbing.
In a rule, purpose is optional: null means any purpose (a wildcard). A named
purpose adds 1 to the rule’s specificity.