Sending domains
Verify domain
Triggers an on-demand DNS verification check for the domain. Signal queries your DNS provider for the expected SPF, DKIM, tracking, and DMARC records. The DMARC reporting route activates only when the exact generated RUA is present; DMARC remains optional for sending-domain verification.
Requirements
- Permission:
domains:write. - Project access: the path project must match the API key’s project.
- HTTP rate limit: 30 requests per 300 seconds per API key.
POST
/
v1
/
projects
/
{projectId}
/
domains
/
{domainId}
/
verify
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.domains.verifyDomain(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.domains.verifyDomain(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Domains.VerifyDomain(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.domains().verifyDomain(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.domains.verifyDomain(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.domains.verifyDomain(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->domains->verifyDomain(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.domains.verifyDomain(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Domains.VerifyDomainAsync(/* params */);
Console.WriteLine(result);curl --request POST \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/domains/{domainId}/verify \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/domains/{domainId}/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"bimiStatus": "<string>",
"createdAt": "<string>",
"dkimStatus": "<string>",
"dmarcStatus": "<string>",
"domain": "<string>",
"id": "<string>",
"mailFromDomain": "<string>",
"mailFromStatus": "<string>",
"projectId": "<string>",
"region": "<string>",
"spfStatus": "<string>",
"status": "<string>",
"updatedAt": "<string>",
"verificationRecords": {
"dkim": [
{
"name": "<string>",
"type": "<string>",
"value": "<string>",
"status": "<string>"
}
],
"mailFromMx": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"mailFromSpf": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"bimi": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"dmarcRecommended": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"trackingCname": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
}
},
"bimiLogoUrl": "<string>",
"verifiedAt": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}Authorizations
Project-bound Apollo Signal API key. Keys begin with ap_signal_ and must carry the permission shown on the operation.
Path Parameters
The project the domain belongs to.
The unique identifier of the domain to verify.
Response
Verification check completed. Inspect status to see the outcome.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.domains.verifyDomain(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.domains.verifyDomain(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Domains.VerifyDomain(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.domains().verifyDomain(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.domains.verifyDomain(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.domains.verifyDomain(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->domains->verifyDomain(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.domains.verifyDomain(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Domains.VerifyDomainAsync(/* params */);
Console.WriteLine(result);curl --request POST \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/domains/{domainId}/verify \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/domains/{domainId}/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"bimiStatus": "<string>",
"createdAt": "<string>",
"dkimStatus": "<string>",
"dmarcStatus": "<string>",
"domain": "<string>",
"id": "<string>",
"mailFromDomain": "<string>",
"mailFromStatus": "<string>",
"projectId": "<string>",
"region": "<string>",
"spfStatus": "<string>",
"status": "<string>",
"updatedAt": "<string>",
"verificationRecords": {
"dkim": [
{
"name": "<string>",
"type": "<string>",
"value": "<string>",
"status": "<string>"
}
],
"mailFromMx": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"mailFromSpf": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"bimi": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"dmarcRecommended": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
},
"trackingCname": {
"name": "<string>",
"type": "<string>",
"value": "<string>",
"optional": true,
"priority": 123,
"status": "<string>"
}
},
"bimiLogoUrl": "<string>",
"verifiedAt": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}