01 · KEY
Create a club-scoped API key
In Club admin → Cercle Connect, create a ck_live_ key. It only answers for that club — never other clubs’ membership.
02 · VERIFY
POST /connect/v1/verify
Send Authorization: Bearer ck_live_… and { token } from the member’s passport QR. You get name, city, score, memberSince + membership / paid — no email, no phone.
03 · GRANT
Open your door or site
Use membership none|member|admin and paid on your side. Free clubs work too — membership is join/RSVP, not a paid SKU.
ENDPOINT · V0
POST https://api.cercle.events/connect/v1/verify
Authorization: Bearer ck_live_…
{ "token": "<passport QR / credential>" }
→ 200 { ok, passport:{name,city,score,memberSince}, club:{id,membership,paid} }
→ 401 invalid key · 403 denied · 404 not foundRate-limited. Prefer server-side calls. Not available yet: OAuth2/OIDC, Connect billing, physical passport.
SOFT HOLD · NOT IN V0
No OAuth2 / OIDC “Sign in with Cercle”, no Connect fee, no marketplace, no cross-club graph, no physical passport.