Apply for a partnership through the ID.me Government portal at id.me/government; ID.me will provision an OAuth 2.0 client ID and client secret for your application after reviewing your use case.
Implement the OAuth 2.0 authorization code flow: redirect the user to the ID.me authorization endpoint with your client_id, requested scope (e.g., identity for full identity verification), and a state parameter for CSRF protection.
After the user completes ID.me's identity proofing steps — which may include document upload, biometric check, and optionally a human-assisted video call — they are redirected back with an authorization code.
Exchange the code for an access token by POSTing to the ID.me token endpoint with your client credentials; use the access token to call the ID.me userinfo endpoint to retrieve verified identity attributes.
Map the returned attributes (name, date of birth, address, verification level) to your application's user record; store the ID.me sub (subject identifier) as the stable identifier for the user across sessions.
Handle verification failures gracefully: if ID.me cannot verify the user automatically, they may be offered a video call option — your application should present a pending state and check back when verification is complete.
Known gotchas
ID.me's highest assurance level (IAL2-equivalent) may require the user to complete a video call with a human agent, which can take minutes to hours — do not design your flow to expect synchronous completion.
ID.me is used at more than 21 federal agencies; if a user already has an ID.me account from another agency, they can reuse it — avoid prompting users to create a new account when they may already be verified.
Scope selection is consequential: requesting identity scope triggers full IAL2 proofing; requesting only login scope provides authentication without identity verification — choose based on your program's assurance requirements.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp