curl --request POST \
--url https://api.aisa.one/apis/v1/agentmail/domains \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>"
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/domains"
payload = { "domain": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: '<string>'})
};
fetch('https://api.aisa.one/apis/v1/agentmail/domains', 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.aisa.one/apis/v1/agentmail/domains",
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([
'domain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.aisa.one/apis/v1/agentmail/domains"
payload := strings.NewReader("{\n \"domain\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/agentmail/domains")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/domains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"domain": "<string>",
"domain_id": "<string>",
"feedback_enabled": true,
"records": [
{
"name": "<string>",
"status": "MISSING",
"type": "TXT",
"value": "<string>",
"priority": 123,
"reason": "<string>"
}
],
"status": "NOT_STARTED",
"subdomains_enabled": true,
"tracking_enabled": true,
"updated_at": "2023-11-07T05:31:56Z",
"client_id": "<string>",
"inbound_enabled": true,
"pod_id": "<string>",
"reason": "<string>"
}List And Create Domains
curl --request POST \
--url https://api.aisa.one/apis/v1/agentmail/domains \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>"
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/domains"
payload = { "domain": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: '<string>'})
};
fetch('https://api.aisa.one/apis/v1/agentmail/domains', 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.aisa.one/apis/v1/agentmail/domains",
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([
'domain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.aisa.one/apis/v1/agentmail/domains"
payload := strings.NewReader("{\n \"domain\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/agentmail/domains")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/domains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"domain": "<string>",
"domain_id": "<string>",
"feedback_enabled": true,
"records": [
{
"name": "<string>",
"status": "MISSING",
"type": "TXT",
"value": "<string>",
"priority": 123,
"reason": "<string>"
}
],
"status": "NOT_STARTED",
"subdomains_enabled": true,
"tracking_enabled": true,
"updated_at": "2023-11-07T05:31:56Z",
"client_id": "<string>",
"inbound_enabled": true,
"pod_id": "<string>",
"reason": "<string>"
}Request contract
- Method and path: POST /apis/v1/agentmail/domains
- Availability: enabled
- Request URL template: https://api.aisa.one/apis/v1/agentmail/domains
- Runtime facts: 18a04e28941fae19674c11246b677373368b6bd927b7c146220cec1f168f4639
{
"operationId": "post_get_agentmail_domains",
"method": "POST",
"path": "/apis/v1/agentmail/domains",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"allow_conflicting_provider": {
"description": "Allow registration when the domain already has Google Workspace MX records.\nDefaults to false; registration otherwise returns 422 when a conflicting\nprovider is detected.\nThis flag does not configure DNS or inbound routing. For shared Google\nWorkspace domains, follow the [Google Workspace guide](/google-workspace).\nOnly checked when `inbound_enabled` is true; a send-only domain skips the check.",
"type": "boolean"
},
"domain": {
"description": "The name of the domain (e.g., `example.com`).",
"title": "DomainName",
"type": "string"
},
"feedback_enabled": {
"description": "Bounce and complaint notifications are sent to your inboxes.",
"title": "FeedbackEnabled",
"type": "boolean"
},
"inbound_enabled": {
"description": "Receive email for this domain. Defaults to `true`. Set `false` for a send-only\ndomain: the apex MX record is not required and is omitted from `records`, so the\ndomain's existing email provider keeps receiving its mail. Inboxes on a send-only\ndomain can still send.",
"title": "InboundEnabled",
"type": "boolean"
},
"subdomains_enabled": {
"description": "Allow inboxes on any subdomain of this domain. Adds a required wildcard MX\nrecord (`*.<domain>`) to `records`.",
"title": "SubdomainsEnabled",
"type": "boolean"
},
"tracking_enabled": {
"description": "Serve open tracking pixels from this domain. Adds a required `link.<domain>`\nCNAME record to `records`, which must be published and verified before\n`track_opens` can be used on a send.",
"title": "TrackingEnabled",
"type": "boolean"
}
},
"required": [
"domain"
],
"title": "CreateDomainRequest",
"type": "object"
}
}
}
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "explicit_zero",
"customer_pricing": "fixed_success",
"default_request_estimate_usd": 0.012,
"estimate_source": "profile_seed",
"evidence_source": "request_snapshot"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.012
- Cost contract: explicit_zero
- Settlement evidence source: request_snapshot
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The name of the domain (e.g., example.com).
Allow registration when the domain already has Google Workspace MX records.
Defaults to false; registration otherwise returns 422 when a conflicting
provider is detected.
This flag does not configure DNS or inbound routing. For shared Google
Workspace domains, follow the Google Workspace guide.
Only checked when inbound_enabled is true; a send-only domain skips the check.
Bounce and complaint notifications are sent to your inboxes.
Receive email for this domain. Defaults to true. Set false for a send-only
domain: the apex MX record is not required and is omitted from records, so the
domain's existing email provider keeps receiving its mail. Inboxes on a send-only
domain can still send.
Allow inboxes on any subdomain of this domain. Adds a required wildcard MX
record (*.<domain>) to records.
Serve open tracking pixels from this domain. Adds a required link.<domain>
CNAME record to records, which must be published and verified before
track_opens can be used on a send.
Response
Response with status 200
Time at which the domain was created.
The name of the domain (e.g., example.com).
The ID of the domain.
Bounce and complaint notifications are sent to your inboxes.
A list of DNS records required to verify the domain. Includes the apex
MX record unless inbound_enabled is false, and a wildcard MX record
(*.<domain>) when subdomains_enabled is true.
Show child attributes
Show child attributes
The verification status of the domain.
NOT_STARTED, PENDING, INVALID, FAILED, VERIFYING, VERIFIED Allow inboxes on any subdomain of this domain. Adds a required wildcard MX
record (*.<domain>) to records.
Serve open tracking pixels from this domain. Adds a required link.<domain>
CNAME record to records, which must be published and verified before
track_opens can be used on a send.
Time at which the domain was last updated.
Client ID of domain.
Absent on domains created before this field existed; those receive email.
ID of pod.
Why the domain is not (yet) VERIFIED, when known. dns_records_missing / dns_records_invalid point at the DNS records. The ses_* values mean the records look right and sending-infrastructure validation has not converged: ses_dkim_pending / ses_mail_from_pending (still checking), ses_dkim_temporary_failure / ses_mail_from_temporary_failure (a transient error the infrastructure keeps retrying on its own — usually resolves without changes), ses_dkim_failed / ses_mail_from_failed (a terminal verdict; re-verify after fixing), ses_dkim_not_started / ses_mail_from_not_started (the attribute was never configured on the identity — re-verify to push it), and ses_not_verified_for_sending. Absent when VERIFIED.