Partner apps are provisioned manually. Email support@everbility.com to register as a partner and receive your OAuth
client_id and client_secret. If you enable webhooks, Everbility also gives you a separate webhook_secret.How it works
The three building blocks
Connection
A practice admin approves your app once. You exchange the authorization code for tokens and refresh them on a 90-day rolling window.
Launch session
A single report-writing hand-off. You create it with a clinician email and your client ID, then send the clinician to the
launch_url.Document retrieval
Receive a completion webhook, then pull the rendered report as Markdown or HTML into your platform.
Webhooks
Receive signed session opened, completed, and expired events.
Branding
Download approved assets and add an Open in Everbility button.
Base URL
Client mapping
Your platform and Everbility each have their own client records. The first time a clinician opens a session for one of your clients, Everbility asks them to link it to an Everbility client (or they create one). The mapping is remembered per connection, so every later session for thatexternal_client_id skips straight to writing.
Lifetimes at a glance
Security model
- PKCE is mandatory. Every authorization uses
code_challenge_method=S256, in addition to yourclient_secret. - Tokens are opaque and hashed at rest. Everbility stores only SHA-256 hashes of codes, tokens, and your client secret.
- Webhook signing uses a separate secret. Everbility stores the webhook secret encrypted and decrypts it only when signing a delivery.
- Refresh tokens rotate. Reusing an already-consumed refresh token revokes the whole token family and flags the connection for re-authorization.
- Clinicians use their own login. Your platform never handles Everbility user credentials; sessions are bound to a specific clinician by verified email.
Start here
1
Get credentials
Email support@everbility.com with your redirect URI and optional webhook URL. Everbility gives you an OAuth
client_id and client_secret, plus a separate webhook_secret when webhooks are enabled.2
Connect a practice
Send a practice admin through the consent flow and exchange the code for tokens.
3
Launch and retrieve
Create a launch session, hand the clinician the
launch_url, and retrieve the document after the completion webhook.Before you go live
- Register a separate partner app, redirect URI, webhook URL, and credential set for each environment.
- Store OAuth tokens, the OAuth client secret, and the webhook secret in a server-side secret manager.
- Persist each rotated refresh-token pair atomically so you never reuse a consumed refresh token.
- Generate a unique
Idempotency-Keyfor each logical launch session and reuse it only when retrying that request. - Verify webhook signatures against the raw request bytes, reject stale timestamps, and deduplicate by event ID.
- Keep session-status polling as a recovery path if webhook delivery reaches its final retry.