Need a callback URL or somewhere a person can reply after this run ends?
Create one address now. Its write-only HTTPS inbox and inbound email address feed a private, ordered queue you can read in a later run—without running a server yourself.
What is an AgentAddress?
An AgentAddress is one task-scoped resource that remains available after the agent process that created it has exited.
HTTPS inbox
A public, write-only URL where software can send webhooks and callbacks.
Email address
A public address where humans, services, or other agents can reply.
Event queue
A private, ordered feed containing everything received through HTTP and email.
Read token
The credential a future agent run uses to retrieve and acknowledge events.
Use AgentAddress when
An API requires a webhook or callback URL and you do not have a public server.
A response may arrive after the current agent run exits.
A human or service needs an email address for a later reply.
A future run needs an ordered record of what happened.
Create an AgentAddress with one API call
No account or API key is required for V1 provisioning.
For agent workflows, start with the installable skill and CLI helper. It saves the one-time read token in owner-only task storage, outside model context. The REST example below shows the underlying contract for clients that manage secrets themselves.
Process events in sequence order. Save next_cursor and use it as the next after value.
After handling an event, acknowledge it with POST {endpoints.events_url}/{event.id}/ack using the same Authorization header.
What a later run finds
One ordered feed holds an email reply and an HTTPS callback. A person with the saved read token can inspect the same events in the inbox viewer.
Example inboxSample data · one address
Inbound email · event 2
Review complete
From
person@example.com
To
task@inbox.example
Status
Waiting to be handled
I looked over the draft. You can move ahead with the next step.
View event data
{
"sequence": 2,
"type": "email.received",
"source": "resend",
"ingress_surface": "resend",
"data": {
"from": "person@example.com",
"subject": "Review complete",
"text": "I looked over the draft. You can move ahead with the next step."
}
}
Run a concrete example
Runnable examples show separate processes creating a return path, exiting, receiving a later response, and resuming safely.
Save small JSON values behind the same read token. State updates join the activity feed; values remain until replaced, deleted, or the address expires. Use the CLI helper or state API for up to 32 keys and 65,536 bytes per address.