Questions · Published 2026-10-20 · Updated 2026-10-20 · AgentiSend
Can an AI agent sign up for AgentiSend by itself?
Yes, an AI agent can sign up for AgentiSend by itself with POST /agent/sign-up, and it can email only that one human until they confirm.
Yes, an AI agent can sign up for AgentiSend by itself with POST /agent/sign-up, and it can email only that one human until they confirm. The call takes an agent name and one human's email, no key. The response is a key that can send only to that address until the human enters the code.
What the call returns
POST /agent/sign-up answers with the key once, the account id, the human's email, and a limit of 10 sends a day to that address only. A repeat of the same name and email returns the same key prefix with the key set to null, and says the key was shown once. The same address that already has an account is refused: sign in and mint a key. Temporary and placeholder addresses are refused. A network can start 5 sign-ups an hour, and one address can start 3 a day.
curl -sS -X POST https://api.agentisend.com/agent/sign-up \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"agent_name":"example","human_email":"example"}'200
{
"account_id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"api_key": "example",
"human_email": "example",
"key_prefix": "example",
"limits": {
"per_day": -9007199254740991,
"recipients": []
},
"next": "example"
}The same call from the CLI is agentisend agent sign-up --name <name> --human <email>.
Until the human confirms
Every send whose recipient is not that human is refused with agent_unconfirmed. The fix names POST /agent/verify. POST /emails, a batch, and send_email over the agent connection all hit that same check. The human gets an email whose subject says the agent asked to send email on their behalf, with the agent name and the key prefix. The code lasts 24 hours. 10 wrong attempts lock it until it expires — the catalogue's agent_signup_code_rejected says so, and the response names when the lock ends.
The email links to the console. After the human signs in with that address, the account is already theirs. The console shows "<agent name> is waiting for your code" and the code entry on the same screen.
curl -sS -X POST https://api.agentisend.com/agent/verify \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"code":"123456"}'200
{
"confirmed": true,
"per_day": -9007199254740991,
"status": "sandboxed"
}agentisend agent verify --code <code> sends the same call with the key from sign-up.
After they confirm
The key's daily budget rises to the free plan's 100 a day. For 7 days a recipient ramp applies: 3 distinct recipients in the first hour, 5 in the first day, and 10 in the first week. A send past the step in force is recipient_ramp, and the fix states when the next slot opens. Sending again to someone already reached does not take a slot. The account's standing still follows the signup check, so a risky address stays limited to its own verified domains.
curl -sS -X POST https://api.agentisend.com/emails \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"from":"billing@yourdomain.com","to":"delivered@simulator.agentisend.com","subject":"Your receipt","text":"Thanks — the details are attached."}'201
{
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"simulated": true,
"warnings": []
}