Create TOTP (beta)
curl --request POST \
--url https://api.moonkey.fun/v1/auth/totps/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1"
}
'import requests
url = "https://api.moonkey.fun/v1/auth/totps/create"
payload = { "user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_id: 'user_26l7dbfAY59ftejmm6m3OTf4oz1'})
};
fetch('https://api.moonkey.fun/v1/auth/totps/create', 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.moonkey.fun/v1/auth/totps/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 'user_26l7dbfAY59ftejmm6m3OTf4oz1'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moonkey.fun/v1/auth/totps/create"
payload := strings.NewReader("{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moonkey.fun/v1/auth/totps/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonkey.fun/v1/auth/totps/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1",
"secret": "G4YD2KSD35HSDKMISNDKDB2QN7372BPT",
"totp_id": "totp_27LbM1TMjS3gQN1vuzb1jn8Fshw",
"recovery_codes": [
"xwbwb-07bjt",
"5jsr0-9nepk",
"25gj8-2lzmw",
"sfmcz-s7o2f",
"5p9k1-01g2c",
"5p5gx-8tlvl",
"l31kr-xwd2f",
"cfz0j-dq8rz",
"st3hz-xgs86",
"drydx-is8j6",
"48qm5-na80k",
"36vyz-s6lsz",
"umzq0-iyp0g",
"nwrnu-68loe",
"797ne-vd5lm",
"zaafh-7zdhk"
],
"qr_base64": "data:image/png;base64,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"
}TOTP (Time-based one-time passcode)
Create TOTP (beta)
Initiates a TOTP authenticator for the specified user.
Returns
A successful response returns an TOTP object.
POST
/
v1
/
auth
/
totps
/
create
Create TOTP (beta)
curl --request POST \
--url https://api.moonkey.fun/v1/auth/totps/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1"
}
'import requests
url = "https://api.moonkey.fun/v1/auth/totps/create"
payload = { "user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_id: 'user_26l7dbfAY59ftejmm6m3OTf4oz1'})
};
fetch('https://api.moonkey.fun/v1/auth/totps/create', 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.moonkey.fun/v1/auth/totps/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 'user_26l7dbfAY59ftejmm6m3OTf4oz1'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moonkey.fun/v1/auth/totps/create"
payload := strings.NewReader("{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moonkey.fun/v1/auth/totps/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonkey.fun/v1/auth/totps/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"user_26l7dbfAY59ftejmm6m3OTf4oz1\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "user_26l7dbfAY59ftejmm6m3OTf4oz1",
"secret": "G4YD2KSD35HSDKMISNDKDB2QN7372BPT",
"totp_id": "totp_27LbM1TMjS3gQN1vuzb1jn8Fshw",
"recovery_codes": [
"xwbwb-07bjt",
"5jsr0-9nepk",
"25gj8-2lzmw",
"sfmcz-s7o2f",
"5p9k1-01g2c",
"5p5gx-8tlvl",
"l31kr-xwd2f",
"cfz0j-dq8rz",
"st3hz-xgs86",
"drydx-is8j6",
"48qm5-na80k",
"36vyz-s6lsz",
"umzq0-iyp0g",
"nwrnu-68loe",
"797ne-vd5lm",
"zaafh-7zdhk"
],
"qr_base64": "data:image/png;base64,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"
}Authorizations
Auth Platform API includes all the Auth related features. All Users, Phone Numbers, Emails, and OTPs are associated with an App as the container.
Endpoints only accept App's Secret API keys other than certain endpoints that are used client side or via SDK that accept the public_token.
Authentication using App Api Key
Header:
Authorization: Bearer {api_key}Authenticated Request
curl \
-X GET https://api.moonkey.fun/v1/auth/users/user_24wFP9pDa9YiMJLun94iKykoZs2 \
-H "Authorization: Bearer sk_test_pRqweh3wvWmJAAVYv7Z0T5iPLzFM4ql0muoyQcjOxGeN3p1r"Body
application/json
Required Unique user ID to associate the TOTP with.
Minimum string length:
1Optional Set expiration time in minutes from now for TOTP instance that must be verified within a given timeframe to be activated. Must be between 5 to 2160 minutes (36 hours), defaults to 30 minutes if not provided.
⌘I