Questions · Updated 2026-09-27
What does account_sandboxed mean?
account_sandboxed means this account is in the sandbox and may only send to its own verified domains, so the send was refused. GET /account returns the status and the reason, and the fix is POST /domains then POST /domains/{id}/verify for the recipient domain, or POST /trust/appeal for a person to review the account.
account_sandboxed means the account is in the sandbox and the send was refused. The error catalogue message is "This account is in the sandbox and may only send to its own verified domains." The fix is "Verify the recipient domain with POST /domains + POST /domains/:id/verify, or file POST /trust/appeal for a person to review this account." GET /account tells you why the account is there, and retryable is false, so waiting does not help.
Why an account is sandboxed
The decision is made once, at signup. GET /account returns status, one of sandboxed, approved or suspended, and approval_reason, the sentence recorded when the decision was made. Three signals put an account in the sandbox, and each writes its own reason:
- A disposable or temporary-inbox signup address. The reason names the domain: "Signup used a disposable address on yourdomain.com." or, when the address's mail goes to a throwaway-inbox host, the same sentence ending ": its mail goes to a temporary-inbox service."
- A signup domain that does not accept mail: "The signup domain yourdomain.com does not accept mail.", with the domain in place of the example.
- No address to score: "Signup had no email address to score."
Everything else is approved in the same request, with the reason "Signup passed the risk check." A mail-exchanger lookup that does not complete approves rather than sandboxes, and an ordinary mailbox provider is not a risk signal. Trust and enforcement states the same rules and that existing accounts are not re-scored.
curl -sS -X GET https://api.agentisend.com/account \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"approval_reason": "string",
"created_at": "2026-09-04T09:14:00Z",
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"is_review_account": true,
"name": "yourdomain.com",
"onboarding": {},
"onboarding_sender": {},
"status": "sandboxed"
}What still sends
A sandboxed account sends to addresses on domains it has verified here, so POST /domains followed by POST /domains/{id}/verify on a domain widens the set of recipients you can reach. The onboarding sender still works: POST /emails from onboarding@agentisend.com delivers to this account's member sign-in addresses, as the operation summary says. A recipient anywhere else is refused with this code.
Getting out
Verifying domains adds recipients; it does not change status. That takes a person. POST /trust/appeal takes a reason, and its summary is "File an appeal against the current standing. The reason is recorded verbatim; a human answers by sla_deadline_at." The response carries sla_deadline_at and state, and the same appeal can be filed from Trust in the console. The published ladder, including the sandbox, is at the enforcement policy.
curl -sS -X POST https://api.agentisend.com/trust/appeal \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"reason":"string"}'201
{
"history": [],
"next_review_at": "2026-09-04T09:14:00Z",
"reason_codes": [],
"reasons": [],
"sla_deadline_at": "2026-09-04T09:14:00Z",
"state": "ok"
}