Welcome to ID.me for developers! If you are interested in integrating ID.me, you are in the right place. Here we will cover how to get started implementing ID.me.

ID.me REST API

To get started with an integration you’ll need to do the following:

Terms of Use

Before you start using the API, we have a few guidelines that we'd like to tell you about. We encourage you to read the full API Terms of Use, but here are the bullet points:


  • Check icon ID.me users own their data.
  • Check icon ID.me is a user-centric, permissions based platform that requires explicit permission for each transmission of information from a user to a partner brand through ID.me.
  • X icon You may not sell ID.me user data to third party sites.
  • X icon You cannot replicate the core user experience of ID.me

Endpoints

Protected REST endpoints can be access by making HTTP requests with the access token for a given user. The ID.me server will validate the access token to ensure it has not expired and that its scope covers the requested resource.


After receiving a successful verification response from the API, you should apply business logic to unlock the benefit you are offering to the end user. From a user experience perspective, it is recommended that you store the verified status in the user's session to keep the experience consistent in case the page is refreshed, the back button is pressed, etc. By hiding or disabling the button that inititiates the API call, you can prevent duplicate calls being made.


If you're writing an AJAX application, require a JSONP response, and would like to wrap our response with a callback, all you have to do is specify a callback parameter with the API call.

Endpoint
https://api.id.me/api/public/v3/attributes.json
HTTP Request Method
GET
Response Content Type
application/json

Parameters

Name Description
access_token The client identifier received during app registration. It is automatically generated and located in your application dashboard.
callback A parameter that defines the policy you are requesting permission to access.

Responses

The response from ID.me's REST API attributes endpoint is returned in JSON format.

Example Responses

{
  "attributes": [
    {
      "handle": "fname",
      "name": "First Name",
      "value": "Cody"
    },
    {
      "handle": "lname",
      "name": "Last Name",
      "value": "Zemlak"
    },
    {
      "handle": "email",
      "name": "Email",
      "value": "cody.zemlak@id.me"
    },
    {
      "handle": "uuid",
      "name": "Unique Identifier",
      "value": "d733a89e2e634f04ac2fe66c97f71612"
    },
    {
      "handle": "zip",
      "name": "Zip Code",
      "value": "16341-5366"
    }
  ],
  "status": [
    {
      "group": "alumni",
      "subgroups": [
        null
      ],
      "verified": true
    }
  ]
}

Alumni

Doctor - Canada

Medical

Employee

Government

Military

Military - Canada

Nurse

Nurse - Canada

Responder

First Responder - Canada

Student

Student - Canada

Teacher

Teacher - Canada

Values

The JSON response contains the verification status and attributes for the user. The specific attributes returned depend on your application configuration and needs.

Attributes

Default Attributes

These are standard response values configured by default. The data passed back depends on your application configuration and requirements.


Handle Name Description
uuid Unique Identifier ID randomly generated and unique to user
fname First Name First name set by user
lname Last Name Last name set by user
email Email Primary email set by user
zip Postal Code Postal code set by user

Additional Groups Attributes

These are standard response values configured by default. The data passed back depends on your application configuration and requirements.


Handle Name Description
alumni_award_date Alumni Award Date Award Date
alumni_degree_status Alumni Degree Status Degree Status
alumni_graduated Alumni Graduated Graduated
alumni_school_type Alumni School Type School Type
alumni_school_name Alumni School Name School Name
alumni_graduation_date Alumni Graduation Date Graduation Date

Status

Handle Description
group Group user is verified for
subgroups Subgroup under group the user is verified for
verified Status of user verification

Transactions

Transactional data can be passed back in the JSON response as well. If you are interested in learning more about the value of transactional data and how to add this data to the JSON response, please contact us.