Create an alias for the API key owner
Accepts JSON body or query string. When both are present, the body takes precedence.
curl -X POST "https://mail.haltman.io/api/alias/create?alias_handle=example_string&alias_domain=example_string" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"alias_handle": "example_string",
"alias_domain": "example_string"
}'
import requests
import json
url = "https://mail.haltman.io/api/alias/create?alias_handle=example_string&alias_domain=example_string"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"alias_handle": "example_string",
"alias_domain": "example_string"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://mail.haltman.io/api/alias/create?alias_handle=example_string&alias_domain=example_string", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"alias_handle": "example_string",
"alias_domain": "example_string"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"alias_handle": "example_string",
"alias_domain": "example_string"
}`)
req, err := http.NewRequest("POST", "https://mail.haltman.io/api/alias/create?alias_handle=example_string&alias_domain=example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
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://mail.haltman.io/api/alias/create?alias_handle=example_string&alias_domain=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"alias_handle": "example_string",
"alias_domain": "example_string"
}'
response = http.request(request)
puts response.body
{
"ok": true,
"created": true,
"address": "123 Main St",
"goto": "example_string"
}
{
"error": "example_string",
"field": "example_string",
"reason": "example_string",
"hint": "example_string",
"constraints": {}
}
{
"error": "example_string"
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Conflict",
"message": "The request conflicts with the current state of the resource",
"code": 409,
"details": "Resource already exists"
}
{
"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"
}
POST
/api/alias/create
POST
API Key (header: X-API-Key)
X-API-Keystring
Required64-character lowercase hexadecimal API key.
64-character lowercase hexadecimal API key.
Content-Typestring
RequiredThe media type of the request body
Options: application/json
Request Preview
Response
Response will appear here after sending the request
Authentication
header
X-API-Keystring
RequiredAPI Key for authentication. 64-character lowercase hexadecimal API key.
Query Parameters
Responses
okboolean
Requiredcreatedboolean
Requiredaddressstring
Requiredgotostring
Requirederrorstring
Requiredfieldstring
reasonstring
hintstring
constraintsobject
errorstring
Requirederrorstring
Requirederrorstring
Requirederrorstring
Requirederrorstring
Requiredwherestring
reasonstring
errorstring
RequiredWas this page helpful?
Last updated Apr 9, 2026
Built with Documentation.AI