API 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
Choose API Version:
V3 V2

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.


URI Type
https://api.id.me/api/public/v3/attributes.json?access_token=ACCESS_TOKEN
https://api.id.me/api/public/v2/attributes.json?access_token=ACCESS_TOKEN
JSON
https://api.id.me/api/public/v3/attributes.json?access_token=ACCESS_TOKEN&callback=callbackFunction
https://api.id.me/api/public/v2/attributes.json?access_token=ACCESS_TOKEN&callback=callbackFunction
JSONP

HTTP Method

GET

Response Content Type

application/json

Response
Choose API Version:
V3 V2

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

Example

{
  "attributes": [
    {
      "handle": "fname",
      "name": "First Name",
      "value": "Frederic"
    },
    {
      "handle": "lname",
      "name": "Last Name",
      "value": "Rohan"
    },
    {
      "handle": "email",
      "name": "Email",
      "value": "frederic.rohan@id.me"
    },
    {
      "handle": "uuid",
      "name": "Unique Identifier",
      "value": "d733a89e2e634f04ac2fe66c97f71612"
    },
    {
      "handle": "zip",
      "name": "Zip Code",
      "value": "21540-8473"
    },
    {
      "handle": "birth_date",
      "name": "Birth Date",
      "value": "1992-07-14"
    },
    {
      "handle": "social",
      "name": "Social Security",
      "value": "288-41-0030"
    },
    {
      "handle": "street",
      "name": "Street",
      "value": "66281 Linwood Overpass"
    },
    {
      "handle": "city",
      "name": "City",
      "value": "Rubinstad"
    },
    {
      "handle": "state",
      "name": "State",
      "value": "Colorado"
    },
    {
      "handle": "npi_number",
      "name": "NPI Number",
      "value": 2796424397
    }
  ],
  "status": [
    {
      "group": "medical",
      "subgroups": [
        [
          "DEA/NPI"
        ]
      ],
      "verified": true
    }
  ]
}
{
  "id": "d733a89e2e634f04ac2fe66c97f71612",
  "verified": true,
  "affiliation": [
    "DEA/NPI"
  ],
  "fname": "Randee",
  "lname": "Cummerata",
  "email": "test.user@id.me",
  "zip": "18051",
  "birth_date": "1998-12-24",
  "social": "437-17-3768",
  "street": "275 Alphonso Pass",
  "city": "Lefflerborough",
  "state": "California"
}
{
  "attributes": [
    {
      "handle": "fname",
      "name": "First Name",
      "value": "Thanh"
    },
    {
      "handle": "lname",
      "name": "Last Name",
      "value": "Rosenbaum"
    },
    {
      "handle": "email",
      "name": "Email",
      "value": "thanh.rosenbaum@id.me"
    },
    {
      "handle": "uuid",
      "name": "Unique Identifier",
      "value": "d733a89e2e634f04ac2fe66c97f71612"
    },
    {
      "handle": "zip",
      "name": "Zip Code",
      "value": "52161-7009"
    },
    {
      "handle": "birth_date",
      "name": "Birth Date",
      "value": "1979-06-10"
    },
    {
      "handle": "social",
      "name": "Social Security",
      "value": "516-57-1490"
    },
    {
      "handle": "street",
      "name": "Street",
      "value": "5691 Jeni Shores"
    },
    {
      "handle": "city",
      "name": "City",
      "value": "East Delma"
    },
    {
      "handle": "state",
      "name": "State",
      "value": "Missouri"
    },
    {
      "handle": "npi_number",
      "name": "NPI Number",
      "value": 7745662269
    }
  ],
  "status": [
    {
      "group": "medical",
      "subgroups": [
        [
          "NPI"
        ]
      ],
      "verified": true
    }
  ]
}
{
  "id": "d733a89e2e634f04ac2fe66c97f71612",
  "verified": true,
  "affiliation": [
    "NPI"
  ],
  "fname": "Juliann",
  "lname": "Schultz",
  "email": "test.user@id.me",
  "zip": "74456-2036",
  "birth_date": "1967-05-26",
  "social": "375-86-6623",
  "street": "4693 Glover Causeway",
  "city": "Runolfsdottirhaven",
  "state": "South Carolina"
}

Values

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

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


Attributes
Handle Name Value 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

Unique email set by user

zip

Zip Code

Zip code set by user

These are typical response values. The data passed back depends on your application configuration.

Status
Attributes
Parameter Description and Value Range
uuid

User unique identifier

fname

First name set by user

lname

Last name set by user

email

Unique email set by user

zip

Zip code set by user

group

EPCS - medical

eRx - medical

subgroups affiliation

EPCS - ["DEA/NPI"]

eRx - ["NPI"]

verified

true or false

These are typical response values. The data passed back depends on your application configuration.

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.

Best Practices

Creating a session

Once you have retreived the user’s attributes it is recommended that you store them in the user’s session to keep the experience consistent in case the page is refreshed, the back button is pressed, etc.

Storing User Attribtues

Storing key attributes about the user is vital to a seamless epcs provider verification experience. It is recommended to store these attributes in a seperate table within your database with some relation to the user record.


Key Attributes

Handle Name Description
uuid Unique Identifer Unique identifier that is randomly generated and unique to user.
email E-Mail Unique email set by the user.
fname First Name First name set by user.
lname Last Name Last name set by user.