Reset 3dEye provisioning for a user
Clears the local threedeye_users/recovery rows (force re-provision) and optionally deletes the remote 3dEye account when visible in our customer. Requires dual auth: X-Admin-API-Key + JWT.
curl -X POST "https://api.spkey.co/admin/threedeye/users/example_string/reset" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"clearMapping": true,
"deleteRemote": true,
"reprovision": true
}'
import requests
import json
url = "https://api.spkey.co/admin/threedeye/users/example_string/reset"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"clearMapping": true,
"deleteRemote": true,
"reprovision": true
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.spkey.co/admin/threedeye/users/example_string/reset", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"clearMapping": true,
"deleteRemote": true,
"reprovision": true
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"clearMapping": true,
"deleteRemote": true,
"reprovision": true
}`)
req, err := http.NewRequest("POST", "https://api.spkey.co/admin/threedeye/users/example_string/reset", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.spkey.co/admin/threedeye/users/example_string/reset')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"clearMapping": true,
"deleteRemote": true,
"reprovision": true
}'
response = http.request(request)
puts response.body
{
"userId": "example_string",
"email": "null",
"clearedMapping": true,
"clearedRecovery": true,
"remote": {
"attemptedDelete": true,
"deletedThreedeyeUserId": "null",
"notVisible": true
},
"reprovision": {
"attempted": true,
"threedeyeUserId": "null",
"error": "null"
}
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
/admin/threedeye/users/{userId}/resetTarget server for requests. Edit to use your own host.
JWT token from SmartphoneKey authentication. Identifies the B2C user or B2B service.
API key for B2B organization access. Provided during organization onboarding.
b2c user UUID
The media type of the request body
Delete the local threedeye_users + recovery rows so the next fetch re-provisions.
Also delete the remote 3dEye account if it is visible in our customer. Cannot remove accounts that live outside our customer.
After clearing, immediately re-run provisioning instead of waiting for the next fetch.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (JWT). JWT token from SmartphoneKey authentication. Identifies the B2C user or B2B service.
API Key for authentication. API key for B2B organization access. Provided during organization onboarding.
Path Parameters
b2c user UUID
Body
Delete the local threedeye_users + recovery rows so the next fetch re-provisions.
Also delete the remote 3dEye account if it is visible in our customer. Cannot remove accounts that live outside our customer.
After clearing, immediately re-run provisioning instead of waiting for the next fetch.