See api-docs Menu

Verify an Authentication Factor

Use this API to authenticate a one-time password (OTP) code provided by a multifactor authentication (MFA) device.

Use this endpoint to verify an OTP code provided by SMS, Email, OneLogin Protect or Authenticator.

Early Preview

This API is in early preview and may be subject to change. Please refer to our V1 API for current production use.

Resource URL

https://<api-domain>/api/2/mfa/users/<user_id>/verifications/<verification_id>

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 either of the following scopes: Manage users or Manage All.

Resource Parameters

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.

verification_id

optional

integer

The verification_id is returned on activation of the factor or you can get the device_id using the Activate Factor API call. For factors that don’t require a trigger event such as OneLogin Protect OTP or Authenticator OTP the verification_id is not required to validate the OTP token.

Request Parameter

otp

string

OTP code provided by the device or SMS message sent to user.

When a device like OneLogin Protect that supports Push has been used you do not need to provide the otp_token and can keep polling this endpoint until the state_token expires.

device_id

string

ID of the specified device which has been registerd for the given user. Available on Get Devices API call.

Request Body

For OneLogin Email and OneLogin SMS:

{
  "otp": "123456"
}

For OneLogin Protect OTP and Authenticator OTP:

{
  "otp": "123456",
  "device_id": "98765"
}

Sample Response

{
    "status": {
        "type": "success",
        "code": 200,
        "message": "Success",
        "error": false
    }
}
{
    "statusCode": 401,
    "name": "InvalidCredentials",
    "message": "Please provide valid credentials"
}
{
    "statusCode": 403,
    "name": "ForbiddenAction",
    "message": "You are not authorised to perform this action or access the resource"
}

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://<api-domain>/api/2/mfa/users/<user_id>/verifications/<verification_id>' \
-X PUT \
-H "Authorization: bearer: <access_token>" \
-d '{
  "otp":"123456"
}'

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.

StackOverflow discussions about "[onelogin] mfa api"

  • 9
    Votes
    2
    Answers

    Q: AWS API credentials with OneLogin SAML and MFA

    Asked Oct 30 2016

    We want to allow our users to retrieve a set of temporary CLI credentials for a given AWS role by signing in to OneLogin with password and MFA. … We have a working solution, but it requires the user to fully re-authenticate to OneLogin (including MFA) every 60 minutes as the AWS temporary credentials expire. …

  • 2
    Votes
    1
    Answers

    Q: Implement custom connector to in-house applications

    Asked Dec 05 2016

    Basically the company I work at wants to implement a "login using OneLogin" to our in-house applications and we have MFA enabled. … I tried the API route but it requires the user to enter the MFA code every time they want to log in, which is great for security but users want simple solution. …

  • 1
    Votes
    1
    Answers

    Q: Getting a SAML assertion after creating a session via API

    Asked Apr 04 2017

    Related to Accessing Third Party Apps After Creating A Session Via API Token and to AWS API credentials with OneLogin SAML and MFA Since AWS assumeRoleWithSAML temporary security credentials are only … It's totally odd to the web base OneLogin usage, where he is logged in once for the whole day or even week (depending on the policy). I know how to get a session via API. …

  • 1
    Votes

    A: Getting a SAML assertion after creating a session via API

    Answered Apr 05 2017

    The "assume user" privilege is locked down pretty tightly in OneLogin, and is not the sort of thing that's given out lightly. … This wouldn't allow for MFA on an app policy, but we are building out the ability to request and verify MFA via API (coming soon) so you could implement MFA in your app (independent of any app policy) …

  • 1
    Votes
    2
    Answers

    Q: Onelogin API - Verify Factor for SAML assertion when using Duo

    Asked Oct 11 2017

    I've been developing an application that hits the api/1/saml_assertion, https://developers.onelogin.com/api-docs/1/saml-assertions/generate-saml-assertion , endpoint of OneLogin with Duo as my MFA. … duo_sig_request looks like this: 'duo_sig_request': 'TX|<base64 encoded elements>|<what looks like a sha1 hash>:APP|<base64 encoded elements>|<what looks like a sha1 hash>' duo_api_hostname is just the API …

Loading...