> ## Documentation Index
> Fetch the complete documentation index at: https://pigeonpost-developer.27communication.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> One API for Gmail and IMAP mailboxes.

PigeonPost lets your application work with your users' mailboxes through a single REST API, whatever their email provider. Your users connect a mailbox once; the engine keeps it in sync and tells your app about new mail through webhooks.

## How can PigeonPost help?

Skip building email integrations yourself. With a few API calls, you can add to your app:

* **Conversation history with a contact:** every email exchanged with a person, across Gmail and IMAP mailboxes.
* **New email notifications:** webhooks tell your app about new and sent emails in real time.
* **Sending and replying:** send from your user's own address, reply in the same thread, save drafts.
* **Open and click tracking:** know when a sent email is opened or a link is clicked.
* **Contacts:** the people each mailbox has emailed with.

To try it, follow the [Quickstart](/quickstart).

## What you can do

<CardGroup cols={2}>
  <Card title="Connect mailboxes" icon="plug" href="/accounts/imap">
    Gmail, Yahoo, iCloud and every other provider through IMAP, with an email address and password, from your app or the dashboard.
  </Card>

  <Card title="Read and search email" icon="inbox" href="/emails/list">
    List, filter and page through synced emails, folders, threads and contacts.
  </Card>

  <Card title="Send and reply" icon="paper-plane" href="/emails/send">
    Send from the user's own address, reply in the same thread, save drafts, attach files.
  </Card>

  <Card title="Get webhooks" icon="bell" href="/webhooks/overview">
    Signed, retried events for new mail, changes, folders, opens, clicks and account status.
  </Card>
</CardGroup>

## Supported providers

| Provider | How users connect | New mail arrives |
| - | - | - |
| [Gmail and Google Workspace](/accounts/gmail) | Address + app password (IMAP), from your app or the dashboard | Within seconds in the Inbox (IMAP IDLE) |
| [Other IMAP / SMTP](/accounts/imap) (Yahoo, iCloud, AOL, Zoho, GMX, Fastmail, company servers, on-premises Exchange with IMAP…) | Address + password; servers filled in for well-known providers | Within seconds in the Inbox (IMAP IDLE) |

Microsoft 365 and Outlook.com aren't supported yet.

## How it works

```mermaid theme={null}
flowchart LR
  app[Your app] -- REST API + access token --> engine[PigeonPost]
  user[Your user] -- address + password --> app
  engine <-- sync --> providers[IMAP · SMTP]
  engine -- webhooks --> app
```

1. Your user enters their email address and password (an app password for Gmail) in your app. Your app sends them to the engine with `POST /api/v1/auth/intent`. The engine signs in to the mailbox before saving it.
2. The engine stores the connection as an **account** (`acc_…`) and syncs the mailbox: every new email and change from that moment on.
3. Your app reads emails through the API, sends and replies on the user's behalf, and receives **webhooks** when something changes.

<Note>
  Each workspace runs on its own server, with its own database: your mailboxes and emails are never stored with another customer's. Sign up, then manage access tokens, accounts and webhooks in your workspace's **dashboard**.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Connect a mailbox and receive your first webhook in about 10 minutes.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference">
    Every endpoint, parameter and response.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.