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
}
]
}
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
|
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.