Start TOTP MFA enrollment
curl --request POST \
--url https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init \
--header 'Authorization: Basic <encoded-value>' \
--header 'privy-app-id: <privy-app-id>' \
--header 'privy-user-token: <privy-user-token>'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init")
.header("privy-app-id", "<privy-app-id>")
.header("privy-user-token", "<privy-user-token>")
.header("Authorization", "Basic <encoded-value>")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
'privy-user-token': '<privy-user-token>',
Authorization: 'Basic <encoded-value>'
}
};
fetch('https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"privy-app-id: <privy-app-id>",
"privy-user-token: <privy-user-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("privy-user-token", "<privy-user-token>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"options": {
"secret": "<string>",
"uri": "<string>"
}
}TOTP
Start TOTP MFA enrollment
Creates a TOTP secret for the user to add to an authenticator app.
POST
/
v1
/
users
/
{user_id}
/
mfa
/
totp
/
enrollment
/
init
Start TOTP MFA enrollment
curl --request POST \
--url https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init \
--header 'Authorization: Basic <encoded-value>' \
--header 'privy-app-id: <privy-app-id>' \
--header 'privy-user-token: <privy-user-token>'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init")
.header("privy-app-id", "<privy-app-id>")
.header("privy-user-token", "<privy-user-token>")
.header("Authorization", "Basic <encoded-value>")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
'privy-user-token': '<privy-user-token>',
Authorization: 'Basic <encoded-value>'
}
};
fetch('https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"privy-app-id: <privy-app-id>",
"privy-user-token: <privy-user-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.privy.io/v1/users/{user_id}/mfa/totp/enrollment/init"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("privy-user-token", "<privy-user-token>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"options": {
"secret": "<string>",
"uri": "<string>"
}
}Authorizations
Basic Auth header with your app ID as the username and your app secret as the password.
Headers
ID of your Privy app.
Access token or custom authentication JWT for the user the request acts on.
Minimum string length:
1MFA token from a completed MFA verification, required on MFA-protected requests for users with MFA enrolled.
Minimum string length:
1Path Parameters
Response
200 - application/json
Authenticator setup information.
Authenticator setup information for the started TOTP MFA enrollment.
Authenticator setup information for TOTP MFA enrollment.
Show child attributes
Show child attributes
Was this page helpful?

