> ## Documentation Index
> Fetch the complete documentation index at: https://vetta.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# emails

> Inboxes and outbound mail for a persona — client.emails.

Inboxes hang off an identity, on a verified [domain](/docs/sdk/domains). Five methods. API detail: [Email & SMS](/docs/api/messaging).

## create

```ts theme={"system"}
client.emails.create(identityId: string, body: InboxCreate): Promise<EmailInbox>
```

`POST /v1/identities/{id}/emails`. `InboxCreate` is one of two shapes:

```ts theme={"system"}
{ address: "billing@acme.com", owning_agent_id: "agt_..." }   // exact address on a verified domain
{ domain_id: "dom_...", owning_agent_id: "agt_..." }          // let the server mint the address
```

## list

```ts theme={"system"}
client.emails.list(identityId: string, query?: { limit?: number }): Promise<Page<EmailInbox>>
```

`GET /v1/identities/{id}/emails`.

## delete

```ts theme={"system"}
client.emails.delete(identityId: string, inboxId: string): Promise<Deleted>
```

`DELETE /v1/identities/{id}/emails/{inbox_id}`.

## send

```ts theme={"system"}
client.emails.send(identityId: string, inboxId: string, body: EmailSend): Promise<EmailSendReceipt>
```

`POST /v1/identities/{id}/emails/{inbox_id}/send`. `EmailSend` is `{ to: string[], subject, text }`. Answers `202` with a receipt — `{ accepted, from, to, sent_at }`; the provider's message id is deliberately absent.

Sending is gated on the domain's `dns_status`; a premature send is a retryable `job_not_ready`.

## messages

```ts theme={"system"}
client.emails.messages(identityId: string, query?: { channel?: "email" | "sms"; limit?: number }): Promise<Page<InboundMessage>>
```

`GET /v1/identities/{id}/messages` — everything that arrived for the persona, both channels unless one is named. The same feed as [`identities.messages`](/docs/sdk/identities#endpoint-reads).
