# Agentmail
Elixir client for the [AgentMail API](https://docs.agentmail.to/api-reference). AgentMail provides email infrastructure for AI agents — inboxes, sending, receiving via webhooks, and threading.
## Installation
```elixir
def deps do
[
{:agentmail, "~> 0.1.0"}
]
end
```
## Usage
```elixir
# Create a client with your API key
client = Agentmail.client("am_your_api_key")
# Or configure via application config / env var
# config :agentmail, api_key: "am_..."
client = Agentmail.client()
# Create an inbox
{:ok, inbox} = Agentmail.Inboxes.create(client, %{
username: "support",
display_name: "Support Agent"
})
# Send an email
{:ok, result} = Agentmail.Messages.send(client, inbox["inbox_id"], %{
to: ["user@example.com"],
subject: "Hello!",
text: "Hi from my agent."
})
# Reply to a message (preserves threading)
{:ok, result} = Agentmail.Messages.reply(client, inbox_id, message_id, %{
text: "Thanks for reaching out!"
})
# List messages
{:ok, messages} = Agentmail.Messages.list(client, inbox_id)
# Set up a webhook for inbound emails
{:ok, webhook} = Agentmail.Webhooks.create(client, %{
url: "https://myapp.fly.dev/webhooks/email",
event_types: ["message.received"]
})
```
## API Coverage
| Module | Endpoints |
|--------|-----------|
| `Agentmail.Inboxes` | Create, list, get, delete inboxes |
| `Agentmail.Messages` | Send, reply, reply-all, forward, list, get, update messages |
| `Agentmail.Threads` | List, get, update, delete threads |
| `Agentmail.Webhooks` | Create, list, get, update, delete webhooks |
| `Agentmail.Domains` | Create, list, get, verify, delete custom domains |
## EU Region
```elixir
client = Agentmail.client(api_key: "am_...", base_url: "https://api.agentmail.eu/v0")
```
## License
MIT