See api-docs Menu

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

https://<subdomain>/api/1/users/<user_id>/otp_devices

Header Parameter

Authorization

required

string

Set to bearer:<access_token>.

Set <access_token> to the access token you generated using the Generate Token API.

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: Read Users, Manage users, Read All, or Manage All.

Resource Parameter

user_id

required

integer

Set to the id of the user.

If you don’t know the user’s id, use the Get Users API call to return all users and their id values.

Sample Response

{
    "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

active

true = enabled (used successfully for authentication at least once). false = pending (registered but never used).

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

true: You MUST Activate this Factor to trigger an SMS or Push notification before Verifying the OTP code.
false: No Activation required. You can Verify the OTP immediately.

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 needs_trigger: true and once with needs_trigger: false.

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

Replace sample variables indicated by {{ }} with your actual values.

Download for the MFA API

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?

Have a how-to question? Seeing a weird error? Ask us about it on StackOverflow.

Found a bug? Submit a support ticket.

Have a product idea or request? Share it with us in our Ideas Portal.