For developers
Drop in a popup instead of a signup form. One request tells Passpage what you need. The rest is a redirect and a server-to-server exchange.
window.open(`https://passpage.id/authorize?
client_id=${CLIENT_ID}&
required_scopes=profile:name,profile:email`)
For individuals
Save your name, email, and addresses once. Group them into named profiles, like "Work" or "Shopping," and hand apps only what you choose to.
How the handshake works: three steps, the same shape as the OAuth you already trust.
Passpage doesn't replace sign-in. It sits alongside it, moving structured data instead of authenticating identity.
Authorize
The app opens a Passpage popup naming which fields it needs and which are optional. You pick a saved profile, review the fields, authorize.
POST /authorize → authorization_codeRedirect
Passpage redirects back to the app with a short-lived, single-use code. Nothing else travels in the URL.
302 → redirect_uri?code=...Exchange
The app's backend trades the code plus its own secret, server-to-server, for exactly the fields you approved. Nothing more.
POST /exchange → { profile }What revoking access actually does
Revoking stops an app from receiving anything further and closes off any still-active grant — same as revoking access in any OAuth-style system. It can't delete data an app already received before you revoked. That's governed by the app's own privacy policy, not Passpage's.
Get early access
Passpage isn't public yet. Terms of Service and Privacy Policy are still being finalized. Leave your email and you'll hear the moment it opens.
Built in public by OuterCircle Labs. No spam, one email when it's ready.