Request handle unsubscribe confirmation email
Initiates handle unsubscribe. A confirmation email is sent to the handle's current destination. On confirmation, the handle stops routing but the name remains permanently reserved. Returns a generic accepted response regardless of whether the handle exists (anti-enumeration).
curl -X GET "https://mail.haltman.io/api/handle/unsubscribe?handle=example_string" \
-H "Content-Type: application/json"
import requests
import json
url = "https://mail.haltman.io/api/handle/unsubscribe?handle=example_string"
headers = {
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://mail.haltman.io/api/handle/unsubscribe?handle=example_string", {
method: "GET",
headers: {
"Content-Type": "application/json"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://mail.haltman.io/api/handle/unsubscribe?handle=example_string", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
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://mail.haltman.io/api/handle/unsubscribe?handle=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
response = http.request(request)
puts response.body
{
"ok": true,
"accepted": true,
"action": "handle_unsubscribe",
"handle": "example_string",
"confirmation": {
"sent": true,
"ttl_minutes": 42,
"reason": "example_string"
}
}
{
"error": "example_string",
"field": "example_string",
"reason": "example_string",
"hint": "example_string",
"constraints": {}
}
{
"error": "example_string"
}
{
"error": "example_string",
"where": "example_string",
"reason": "example_string"
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
GET
/api/handle/unsubscribe
GET
query
handlestring
RequiredThe handle to unsubscribe.
Request Preview
Response
Response will appear here after sending the request
Query Parameters
handlestring
RequiredThe handle to unsubscribe.
Responses
okboolean
Requiredacceptedboolean
actionstring
Allowed values:
handle_unsubscribehandlestring
confirmationobject
sentboolean
Requiredttl_minutesinteger
Requiredreasonstring
Present when the confirmation was not sent (e.g. "cooldown").
errorstring
Requiredfieldstring
reasonstring
hintstring
constraintsobject
errorstring
Requirederrorstring
Requiredwherestring
reasonstring
errorstring
RequiredWas this page helpful?
Last updated Apr 9, 2026
Built with Documentation.AI