Request account deletion code
curl --request DELETE \
--url https://api.offlineprotocol.com/api/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'X-App-Id: <x-app-id>'import requests
url = "https://api.offlineprotocol.com/api/v1/users/me"
headers = {
"X-App-Id": "<x-app-id>",
"Authorization": "Bearer <token>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'X-App-Id': '<x-app-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.offlineprotocol.com/api/v1/users/me', 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.offlineprotocol.com/api/v1/users/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-App-Id: <x-app-id>"
],
]);
$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.offlineprotocol.com/api/v1/users/me"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-App-Id", "<x-app-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.offlineprotocol.com/api/v1/users/me")
.header("X-App-Id", "<x-app-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offlineprotocol.com/api/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-App-Id"] = '<x-app-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": "<unknown>"
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}Users
Request account deletion code
Send a deletion confirmation code to the account’s email address. It does not delete the account; the code expires in 15 minutes.
DELETE
/
users
/
me
Request account deletion code
curl --request DELETE \
--url https://api.offlineprotocol.com/api/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'X-App-Id: <x-app-id>'import requests
url = "https://api.offlineprotocol.com/api/v1/users/me"
headers = {
"X-App-Id": "<x-app-id>",
"Authorization": "Bearer <token>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'X-App-Id': '<x-app-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.offlineprotocol.com/api/v1/users/me', 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.offlineprotocol.com/api/v1/users/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-App-Id: <x-app-id>"
],
]);
$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.offlineprotocol.com/api/v1/users/me"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-App-Id", "<x-app-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.offlineprotocol.com/api/v1/users/me")
.header("X-App-Id", "<x-app-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offlineprotocol.com/api/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-App-Id"] = '<x-app-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": "<unknown>"
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}{
"message": "<string>",
"data": {},
"error": {
"message": "<string>",
"code": "<string>",
"retryAfter": 123,
"currentHourCount": 123,
"limit": 123
}
}Confirming deletion signs the account out everywhere and deletes it 30 days later. Signing in before then cancels the deletion.
Account deletion purges the user’s indexed location rows. It does not remove permanent onchain Proof of Location records, including historical linkable tasks.

