API pipeline: Reveal a project's contact
Index: API pipelines — index
Goal: get a project's contact (phone, email, Telegram…) that its owner shows only on request or only to signed-in people.
Steps
- Read the project's contacts.
GET /v0/graph/projects/{nonce | @handle}
→ {"nonce": "470000000000000001", …,
"contacts": [
{"nonce": "470000000000000011", "kind": "Telegram", "value": "@example", "is_primary": true,
"publicity": "Everyone", "requires_reveal": false, "revealed": false},
{"nonce": "470000000000000012", "kind": "Phone", "is_primary": false,
"publicity": "Ecosystem", "requires_reveal": true, "revealed": false}]}
A contact without value is hidden: publicity: "Ecosystem" = for signed-in callers only; requires_reveal: true = shown on request. verified: true on a Website contact = the owner proved that domain is theirs.
- Reveal it (no body).
POST /v0/graph/projects/470000000000000001/contacts/470000000000000012/reveal
→ {"nonce": "470000000000000012", "kind": "Phone", "value": "+10000000000"}
After a signed-in reveal, the project page returns that contact to you with its value and revealed: true.
Behind
- A reveal by a signed-in person is recorded for the project's owner: who revealed which contact (once per person and contact). The owner always sees every value.
Rules
- 401
unauthorized: the contact is for signed-in people and no token was sent. - 404: the project is not visible to you, or the contact is not on that project.
- Contact kinds: Phone, Email, Website, Telegram, WhatsApp, Instagram, Facebook, TikTok, LinkedIn, Discord, X, YouTube, Other.
API surface
| Endpoint | Purpose | FE | AI / oracle |
|---|---|---|---|
GET /v0/graph/projects/{ident} |
Project page with its contacts | yes | yes |
POST /v0/graph/projects/{ident}/contacts/{nonce}/reveal |
Value of a hidden contact | yes (tap the hidden contact) | yes, with a token for Ecosystem contacts |