Metadata-Version: 2.4
Name: agentemail
Version: 0.1.0
Summary: Official Python SDK for the AgentEmail API — create and manage email inboxes programmatically.
Project-URL: Homepage, https://agentemail.co
Project-URL: Documentation, https://agentemail.co/docs
Project-URL: Repository, https://github.com/mbaiswar/agentemailpy
Author-email: AgentEmail <support@agentemail.co>
License: MIT
Keywords: agentemail,api,email,inbox,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Email
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: httpx>=0.21.2
Requires-Dist: pydantic>=1.9.2
Description-Content-Type: text/markdown

# agentemail

Official Python SDK for the [AgentEmail](https://agentemail.co) API.

Create and manage email inboxes programmatically for your AI agents and applications.

## Installation

```bash
pip install agentemail
```

## Quick Start

```python
from agentemail import AgentemailApi

client = AgentemailApi(api_key="aem_your_api_key_here")

# List your inboxes
inboxes = client.sdk.list_inboxes()
print(inboxes.data)

# Create a new inbox
inbox = client.sdk.create_inbox(name="hello")
print(inbox.name)  # "hello"
# Full address: hello@agentemail.co

# List email threads
threads = client.sdk.list_threads(inbox_id=inbox.id)
for thread in threads.data:
    print(thread.subject, thread.message_count)

# Get a full thread with all messages
thread = client.sdk.get_thread(inbox_id=inbox.id, thread_id=threads.data[0].id)
for message in thread.messages:
    print(message.from_address, message.body_text)

# Check usage vs plan limits
usage = client.sdk.get_usage()
print(f"Inboxes: {usage.inboxes.used}/{usage.inboxes.limit}")
```

## Async Usage

```python
import asyncio
from agentemail import AsyncAgentemailApi

async def main():
    client = AsyncAgentemailApi(api_key="aem_your_api_key_here")
    inboxes = await client.sdk.list_inboxes()
    print(inboxes.data)

asyncio.run(main())
```

## Authentication

Generate an API key from your [AgentEmail dashboard](https://app.agentemail.co/api-keys).

```python
import os
from agentemail import AgentemailApi

client = AgentemailApi(api_key=os.environ["AGENTEMAIL_API_KEY"])
```

## API Reference

### Inboxes

| Method | Description |
|--------|-------------|
| `client.sdk.list_inboxes()` | List all your inboxes (paginated) |
| `client.sdk.create_inbox(name=...)` | Create a new inbox |

### Emails & Threads

| Method | Description |
|--------|-------------|
| `client.sdk.list_threads(inbox_id=...)` | List email threads for an inbox |
| `client.sdk.get_thread(inbox_id=..., thread_id=...)` | Get a thread with all messages |

### Usage

| Method | Description |
|--------|-------------|
| `client.sdk.get_usage()` | Get current usage vs plan limits |

## Links

- [Documentation](https://agentemail.co/docs)
- [Dashboard](https://app.agentemail.co)
- [GitHub](https://github.com/mbaiswar/agentemailpy)

## License

MIT
