Questions · Updated 2026-09-23
Why was my email delayed?
An email is delayed when its status is delivery_delayed. GET /emails/{id}/explain says the recipient server is busy or greylisting and that delivery will be retried, and GET /emails/{id}/events carries the reason.
An email is delayed when GET /emails/{id} reports status delivery_delayed. GET /emails/{id}/explain then returns verdict delay and the sentence "The recipient server is busy or greylisting; delivery will be retried automatically." The email.delivery_delayed event from GET /emails/{id}/events carries the evidence for that attempt: reason when the delay is recorded during sending, response when the receiving server reported it.
What to read
GET /emails/{id} is the status. GET /emails/{id}/events is the log, newest facts included. GET /emails/{id}/explain is the one-sentence answer and whether retrying the same send can succeed.
curl -sS -X GET https://api.agentisend.com/emails/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42/explain \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"actions": [],
"evidence": "string",
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"retryable": true,
"status": "string",
"verdict": "string",
"what_happened": "string"
}The explain sentence is the one quoted above. Read reason or response on the event before treating every delay as greylisting.
What happens next
Retries continue on their own. They stop once the next wait would push the sum of the minimum backoffs past 24 hours. That budget is elapsed backoff, not the time since POST /emails accepted the message. When it is spent, the status becomes failed and the event is email.failed.
Nothing on this page is an inbox-placement rate. GET /emails/{id} is the status of this message.
Next
- Why did my email bounce?
- Email for AI agents
- Event catalogue lists
email.delivery_delayedandemail.failed.