Partner API
Partner API
Everything your app needs to hold a connection with a Geena user: a
“Connect with Geena” popup that logs the user in and captures consent in one
screen, then a small REST plane (/partner/v1) for reading, filling, and
maintaining the data the user granted you.
The model in six sentences
- Your organization publishes a manifest in the Geena dashboard — the versioned shape of what you ask for: slots (a passport, a proof-of-address document, supporting files, …), presentation groups, and terms.
- When a user consents, Geena mints a connection (internally: an accepted
request) pinning that manifest version. The connection id —
request_id— is the address of everything else in this API. - Data rights come from per-slot grants the user controls, never from OAuth scopes: your tokens carry identity only, and every call re-checks the grant behind it.
- Every act on the plane — reading a value, listing candidates, attaching, creating, writing, deleting — is receipted to the user’s timeline with your app’s client id. Design your integration expecting the user to see it.
- A manifest can also ask about people beyond the account holder — subjects (“each child you cover”): the user answers those in your app from their family-member vaults, addressed only by pairwise aliases.
- What the user did not grant is invisible: an ungranted, foreign, malformed
or nonexistent id all answer the same
404 not_found, and apendingslot is indistinguishable from “the user has no such data” (the oracle rule).
Section contents
- Getting started — organization, app registration, manifest authoring and publishing, wiring the ids into your app.
- Connect with Geena — the popup ceremony, PKCE, the code exchange, token lifecycle.
- Connections & status — discovering your connections and driving your UI from per-slot status.
- Reading & writing data — serving granted slots, file content, delegated writes and deletes.
- Filling slots in-app — the native picker: candidates, attach, slot-bound create.
- Relatives & subjects — manifests about the family: person candidates, adding a child, filling per person.
- Recipes — copy-paste sequences for the common jobs: fill, update, relatives, files, login, revocation.
- Errors & step-up — the error envelope, code table, sealed vaults and the hosted verification hand-off.
- OpenAPI specification — the machine-readable
contract for
/partner/v1.
Base URLs (test environment)
| What | URL |
|---|---|
| API (authorize, token, plane) | https://api.test.geena.eu |
| Hosted pages (consent, verify) | https://dashboard.test.geena.eu |
All /partner/v1 calls take Authorization: Bearer <access token>.
Warning
App registration is manual. Your OAuth client — client_id,
client_secret, allowed redirect origins, display name, privacy-policy link,
and the owning organization — is registered by the Geena team. Email
support@geena.eu with your redirect origins and
organization to get credentials. The client_secret is confidential: it lives
on your backend only, never in browser code.