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:


  • ID.me users own their data.
  • 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.
  • You may not sell ID.me user data to third party sites.
  • 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/v1/userinfo.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": "Jeffry"
    },
    {
      "handle": "lname",
      "name": "Last Name",
      "value": "Barton"
    },
    {
      "handle": "email",
      "name": "Email",
      "value": "jeffry.barton@id.me"
    },
    {
      "handle": "uuid",
      "name": "Unique Identifier",
      "value": "d733a89e2e634f04ac2fe66c97f71612"
    },
    {
      "handle": "zip",
      "name": "Zip Code",
      "value": "39711-7430"
    },
    {
      "handle": "street",
      "name": "Street",
      "value": "97404 Charlsie Roads"
    },
    {
      "handle": "city",
      "name": "City",
      "value": "Louisefort"
    },
    {
      "handle": "state",
      "name": "State",
      "value": "Virginia"
    },
    {
      "handle": "birthdate",
      "name": "Birth Date",
      "value": "1969-08-30"
    }
  ],
  "status": [
    {
      "group": "pbr",
      "subgroups": [
        "Food Distribution Program on Indian Reservations (FDPIR)"
      ],
      "verified": true
    }
  ]
}

Public Benefits Recipient

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 Pbr Attributes

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


Handle Name Description
pbr_school_name School Name School Name
pbr_relationship Relationship to Recipient Relationship to Recipient
pbr_recipient_fname Recipient's First Name Recipient's First Name
pbr_recipient_lname Recipient's Last Name Recipient's Last Name
pbr_recipient_dob Recipient's Date of Birth Recipient's Date of Birth
public_benefit_program Public Benefit Program

Status

Handle Description
group Community user is verified for
subgroups Subgroup under the community 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.