curl --request PATCH \
--url https://api.aisa.one/apis/v1/agentmail/domains/{domain_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"feedback_enabled": true,
"inbound_enabled": true,
"subdomains_enabled": true,
"tracking_enabled": true
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}"
payload = {
"feedback_enabled": True,
"inbound_enabled": True,
"subdomains_enabled": True,
"tracking_enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
feedback_enabled: true,
inbound_enabled: true,
subdomains_enabled: true,
tracking_enabled: true
})
};
fetch('https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}', 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/{domain_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'feedback_enabled' => true,
'inbound_enabled' => true,
'subdomains_enabled' => true,
'tracking_enabled' => true
]),
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/{domain_id}"
payload := strings.NewReader("{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\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>"
}Manage Domain
curl --request PATCH \
--url https://api.aisa.one/apis/v1/agentmail/domains/{domain_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"feedback_enabled": true,
"inbound_enabled": true,
"subdomains_enabled": true,
"tracking_enabled": true
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}"
payload = {
"feedback_enabled": True,
"inbound_enabled": True,
"subdomains_enabled": True,
"tracking_enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
feedback_enabled: true,
inbound_enabled: true,
subdomains_enabled: true,
tracking_enabled: true
})
};
fetch('https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}', 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/{domain_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'feedback_enabled' => true,
'inbound_enabled' => true,
'subdomains_enabled' => true,
'tracking_enabled' => true
]),
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/{domain_id}"
payload := strings.NewReader("{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"feedback_enabled\": true,\n \"inbound_enabled\": true,\n \"subdomains_enabled\": true,\n \"tracking_enabled\": true\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: PATCH /apis/v1/agentmail/domains/{domain_id}
- Availability: enabled
- Request URL template: https://api.aisa.one/apis/v1/agentmail/domains/{domain_id}
- domain_id: path; required
- Runtime facts: 18a04e28941fae19674c11246b677373368b6bd927b7c146220cec1f168f4639
{
"operationId": "patch_any_agentmail_apis_v1_agentmail_domains_domain_id",
"method": "PATCH",
"path": "/apis/v1/agentmail/domains/{domain_id}",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [
{
"in": "path",
"name": "domain_id",
"required": true,
"schema": {
"description": "The ID of the domain.",
"title": "DomainId",
"type": "string"
}
}
],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"description": "Provide at least one of `feedback_enabled`, `inbound_enabled`,\n`subdomains_enabled`, or `tracking_enabled`. Omitted fields are left\nunchanged; an empty body is rejected. Enabling `inbound_enabled` or\n`subdomains_enabled` on a verified domain returns it to `PENDING` until the\nnewly required MX record (the apex MX, or the wildcard `*.<domain>`) is\npublished and verified.",
"properties": {
"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"
}
},
"title": "UpdateDomainRequest",
"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.
Path Parameters
The ID of the domain.
Body
Provide at least one of feedback_enabled, inbound_enabled,
subdomains_enabled, or tracking_enabled. Omitted fields are left
unchanged; an empty body is rejected. Enabling inbound_enabled or
subdomains_enabled on a verified domain returns it to PENDING until the
newly required MX record (the apex MX, or the wildcard *.<domain>) is
published and verified.
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.