Erase one app user: every record with their user.hash, and each of their sessions
curl --request POST \
--url https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures \
--header 'Content-Type: application/json' \
--cookie apsio_session= \
--data '
{
"user_hash": "3f9a0c5e1b7d",
"reason": "Request #1234"
}
'import requests
url = "https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures"
payload = {
"user_hash": "3f9a0c5e1b7d",
"reason": "Request #1234"
}
headers = {
"cookie": "apsio_session=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {cookie: 'apsio_session=', 'Content-Type': 'application/json'},
body: JSON.stringify({user_hash: '3f9a0c5e1b7d', reason: 'Request #1234'})
};
fetch('https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures', 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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures",
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_hash' => '3f9a0c5e1b7d',
'reason' => 'Request #1234'
]),
CURLOPT_COOKIE => "apsio_session=",
CURLOPT_HTTPHEADER => [
"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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures"
payload := strings.NewReader("{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "apsio_session=")
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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures")
.header("cookie", "apsio_session=")
.header("Content-Type", "application/json")
.body("{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'apsio_session='
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}"
response = http.request(request)
puts response.read_bodyConsole API
Erase one app user: every record with their user.hash, and each of their sessions
Scheduled until a day from now (cancelable meanwhile), then every record of the project that carries this user.hash and every session that does, whole, are deleted, with the sessions’ replays and crash reports. A session where the app called setUser with another hash midway goes whole too. Another project with the same hash is untouched. Records the app sends after the erasure ran are not erased: stop sending the hash first. Owners and admins; audited without the hash.
POST
/
orgs
/
{orgId}
/
projects
/
{projectId}
/
user-erasures
Erase one app user: every record with their user.hash, and each of their sessions
curl --request POST \
--url https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures \
--header 'Content-Type: application/json' \
--cookie apsio_session= \
--data '
{
"user_hash": "3f9a0c5e1b7d",
"reason": "Request #1234"
}
'import requests
url = "https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures"
payload = {
"user_hash": "3f9a0c5e1b7d",
"reason": "Request #1234"
}
headers = {
"cookie": "apsio_session=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {cookie: 'apsio_session=', 'Content-Type': 'application/json'},
body: JSON.stringify({user_hash: '3f9a0c5e1b7d', reason: 'Request #1234'})
};
fetch('https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures', 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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures",
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_hash' => '3f9a0c5e1b7d',
'reason' => 'Request #1234'
]),
CURLOPT_COOKIE => "apsio_session=",
CURLOPT_HTTPHEADER => [
"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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures"
payload := strings.NewReader("{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "apsio_session=")
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.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures")
.header("cookie", "apsio_session=")
.header("Content-Type", "application/json")
.body("{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apsio.io/v1/orgs/{orgId}/projects/{projectId}/user-erasures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'apsio_session='
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_hash\": \"3f9a0c5e1b7d\",\n \"reason\": \"Request #1234\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
The console session, set by /v1/auth/callback (__Host-apsio_session when host-only).
Path Parameters
Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"0192f3a4-0000-7000-8000-00000000a001"
Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"0192f3a4-0000-7000-8000-00000000a001"
Body
application/json
Response
201
The erasure, scheduled