auth.identity.remove
curl --request POST \
--url https://platform.trylath.com/auth/identity/remove \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accessToken": "<string>",
"identityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({accessToken: '<string>', identityId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://platform.trylath.com/auth/identity/remove', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/identity/remove"
payload = {
"accessToken": "<string>",
"identityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/auth/identity/remove"
payload := strings.NewReader("{\n \"accessToken\": \"<string>\",\n \"identityId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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))
}{
"activityId": "<string>",
"result": {
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"identities": [
"<unknown>"
]
}
}auth.identity.remove
Removes one of the signed-in user’s addresses. Needs a session opened in the last 15 minutes (reauth_required otherwise): a stolen access token must not be enough to lock the owner out. The last remaining address can never be removed, whatever passkeys or password the account has. If the removed address was the primary email, another email identity becomes primary, and every other address is told.
POST
/
auth
/
identity
/
remove
auth.identity.remove
curl --request POST \
--url https://platform.trylath.com/auth/identity/remove \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accessToken": "<string>",
"identityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({accessToken: '<string>', identityId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://platform.trylath.com/auth/identity/remove', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/identity/remove"
payload = {
"accessToken": "<string>",
"identityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/auth/identity/remove"
payload := strings.NewReader("{\n \"accessToken\": \"<string>\",\n \"identityId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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))
}{
"activityId": "<string>",
"result": {
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"identities": [
"<unknown>"
]
}
}Authorizations
A Lath API key: lath_live_sk… or lath_test_sk… on a server, lath_live_pk… or lath_test_pk… in a browser.
Headers
Replays the stored response for the same key and input; refuses different input.
Body
application/json
Last modified on September 13, 2026
Was this page helpful?

