Get Enrolled Authentication Factors
Use this API to return a list of authentication factors registered to a particular user for multifactor authentication (MFA). The list includes devices that are enabled (used successfully for authentication at least once) or pending enablement (registered but never used).
This API is typically used in a login workflow in which MFA is required, providing the user a selection of their registered MFA devices to choose from. The returned list represents the authentication factors that have been registered by the user on their Profile page or on the OneLogin login page or custom login page.
This API only returns factors that are enrolled and can be verified via API.
For information about how MFA works in the context of a custom login page, see Logging a User In Via API.
Resource URL
Before calling this API, consider using its version /2 equivalent.
https://<subdomain>/api/1/users/<user_id>/otp_devices
Header Parameter
Authorization required string | Set to Set The access token must have been generated using an API credential pair created using the scope required to call this API. This API can be called using any one of the following scopes: |
Resource Parameter
user_id required integer |
Set to the If you don’t know the user’s |
Sample Response
- 200 OK
- 400 Bad Request
- 401 Unauthorized
{
"status": {
"type": "success",
"code": 200,
"message": "Success",
"error": false
},
"data": {
"otp_devices": [
{
"type_display_name": "OneLogin SMS",
"active": true,
"user_display_name": "Rich's Phone",
"default": true,
"phone_number": "+1xxxxxxxxx",
"auth_factor_name": "OneLogin SMS",
"id": 525509,
"needs_trigger": true
},
{
"type_display_name": "OneLogin Protect",
"active": true,
"user_display_name": "OneLogin Protect",
"default": false,
"auth_factor_name": "OneLogin Protect",
"id": 526532,
"needs_trigger": false
},
{
"active": true,
"default": false,
"auth_factor_name": "Google Authenticator",
"needs_trigger": false,
"type_display_name": "Google Authenticator",
"user_display_name": "Google Authenticator",
"id": 526551
}
]
}
}
{
"status": {
"error": true,
"code": 400,
"type": "bad request",
"message": "Authorization Information is incorrect"
}
}
{
"status": {
"type": "bad request",
"code": 400,
"message": "User does not exist",
"error": true
}
}
{
"status": {
"error": true,
"code": 401,
"type": "Unauthorized",
"message": "Authentication Failure"
}
}
Response Elements
|
|
auth_factor_name |
"Official" authentication factor name, as it appears to administrators in OneLogin. |
default |
true = is user’s default MFA device for OneLogin. |
display_name |
Authentication factor display name as it appears to users, as defined in the admininstrative interface at Settings > Authentication Factors. |
id |
MFA device identifier. |
needs_trigger |
MFA factors that provide both push notifications (user accepts notification) and pull code submission (user initiates code submission from device or enters it manually) should appear twice; once with |
phone_number |
For OTP codes sent via SMS, the phone number receiving the SMS message. |
type_display_name |
Authentication factor display name as it appears to users upon initial registration, as defined by admins at Settings > Authentication Factors. |
user_display_name |
Authentication factor display name assigned by users when they register the device. |
Postman Collection
- Clicking Run in Postman button navigates to the page where you can fork the collection to your workspace. Forking the collection into your workspace will enable you to contribute to the source collection using pull requests. You can also view the collection in a public workspace if you like and even import a copy of the collection using the links present on the screen.
Sample Code
cURL
Replace sample values indicated by < >
with your actual values.
curl 'https://<subdomain>/api/1/users/<user_id>/otp_devices' \
-X GET \
-H "Authorization: bearer: <access_token>" \
Have a Question?
Found a problem or a bug? Submit a support ticket.
Looking for walkthroughs or how-to guides on OneLogin's user and admin features? Check out the documentation in our Knowledge Base.
Have a product idea or request? Share it with us in our Ideas Portal.