GET /tools/deliverability-test/{token}
SPF, DKIM and DMARC results for one deliverability-test address.
No API key. Returns the Authentication-Results header on the message that arrived, alignment with the From domain, and the bounce class. No score, and the message body is not returned. After the address expires, the stored message is gone.
Request
The same call in curl, Node and Python. A path id in the sample is a placeholder.
curl
curl -sS -X GET https://api.agentisend.com/tools/deliverability-test/invite-token-example \
-H "Authorization: Bearer $AGENTISEND_API_KEY"Node
import { AgentiSend } from 'agentisend';
const client = new AgentiSend(process.env.AGENTISEND_API_KEY);
const result = await client.request({
method: 'GET',
path: '/tools/deliverability-test/invite-token-example',
});Python
import json, os, urllib.request
url = 'https://api.agentisend.com/tools/deliverability-test/invite-token-example'
headers = {'Authorization': 'Bearer ' + os.environ['AGENTISEND_API_KEY']}
request = urllib.request.Request(url, headers=headers, method='GET')
print(urllib.request.urlopen(request).read().decode())Tag: meta. Generated from openapi.json; the anchor get-tools-deliverability-test-token is the id the console's error fix links point at.
Parameters
tokenpath · string · required
Responses
200— Success400— The request is malformed or a field failed validation. Codes: validation_error, invalid_idempotency_key, invalid_cursor, plan_not_purchasable, stripe_signature_invalid, support_upload_rejected, appsumo_license_not_confirmed, appsumo_ticket_invalid, sign_in_check_required.404— Nothing with this id exists on the account. Codes: billing_customer_missing, not_found, session_expired, support_ticket_not_found.429— A rate, quota or ramp ceiling was reached. Codes: onboarding_daily_cap_reached, trust_throttled, invite_limit_reached, rate_ceiling_exceeded, daily_quota_exceeded, monthly_quota_exceeded, rate_limit_exceeded, support_rate_limited, appsumo_lookup_limited.500— Something failed on our side. Codes: internal_server_error.
Response headers
ratelimit-limit— Messages this API key may spend in one 60-second window.ratelimit-remaining— Messages left in the current window.ratelimit-reset— Seconds until the current window resets and the budget refills.
200 body
| Field | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | |
| alignment | object | yes | |
| alignment.dkim | "aligned" | "not_aligned" | "unknown" | yes | |
| alignment.spf | "aligned" | "not_aligned" | "unknown" | yes | |
| authentication_results | string | null | yes | |
| bounce | object | null | yes | |
| dkim | object | null | yes | |
| dmarc | object | null | yes | |
| expires_at | string | yes | |
| spf | object | null | yes | |
| status | "waiting" | "received" | "expired" | "refused" | yes |
Response example
200
{
"address": "example",
"alignment": {
"dkim": "aligned",
"spf": "aligned"
},
"authentication_results": "example",
"bounce": {
"class": "hard",
"meaning": "example"
},
"dkim": {
"domain": "example",
"result": "example"
},
"dmarc": {
"result": "example"
},
"expires_at": "example",
"spf": {
"domain": "example",
"result": "example"
},
"status": "waiting"
}Errors
The codes this operation can answer with, and what to do about each. Every one arrives with its code, message, fix and docs_url.
internal_server_error(500, internal_server_error) — Unexpected error. Fix: Retry ONCE after a short pause, with the same Idempotency-Key so the retry cannot double-send. If it fails again, stop retrying and report the x-request-id from the response — that id is what identifies this exact failure in support.not_found(404, not_found) — Endpoint or resource does not exist. Fix: List that resource on this account and use an id from the list. For a domain, GET /domains accepts the id or the domain name. A path that is not a route is a typo in the URL.rate_limit_exceeded(429, rate_ceiling_exceeded, rate_limit_exceeded) — Too many requests. Fix: Back off and retry honoring the Retry-After header.validation_error(400, domain_not_verified, invalid_parameter, validation_error) — Error in one or more fields. Fix: Correct the fields listed in the error details and retry the request.