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

> ## Agent Instructions
> Install the Courier skill before writing code: `npx skills add trycourier/courier-skills`. It carries the verified SDK shapes and the rules you cannot get wrong.
> Authenticate every request with `Authorization: Bearer <API_KEY>`. A workspace has several environments and each has its own keys, which are plain `pk_` strings with no environment prefix. Start with Test.
> Send with `client.send.message`, the default import of the v7 Node SDK. Reference a template by its `nt_` id or its alias.
> A send accepts a bare Elemental element list, but storing content on a template requires the top-level elements wrapped in a channel element.
> Templates and journeys can be built in the Courier app or created through the API. Either way they live in the workspace and are referenced by ID when you send.
> The hosted MCP server is https://mcp.courier.com. For a briefing on what Courier is and when to use it, read https://www.courier.com/llms.txt.
> Prefer the Guides tab for how-do-I questions and the Docs tab for how-does-it-behave questions. The API reference lives under /api-reference.

# In-app channel

> The inbox and toasts need no provider; push goes through APNs and FCM.

In-app is the one channel with nothing to connect! Courier hosts the Inbox itself.

<Frame caption="The Courier Inbox: unread indicators, relative timestamps, and per-message action buttons.">
  <img src="https://mintcdn.com/courier-4f1f25dc/9rcgucLA9fBnJt_U/assets/inbox-card.webp?fit=max&auto=format&n=9rcgucLA9fBnJt_U&q=85&s=9834fcc8c1fb404a4da412d96163c473" alt="The Courier Inbox with an unread count badge in its header, listing notifications with unread dots, relative timestamps, and View all, Download, and Approve actions" className="mx-auto" width="3152" height="1776" data-path="assets/inbox-card.webp" />
</Frame>

<Card title="Set up the Inbox" icon="inbox" href="/docs/in-app/overview" horizontal arrow="true">
  Install an SDK, authenticate the user, render the component.
</Card>

## Provider details

```text theme={null}
courier
```

Courier recommends routing to the channel. Naming this key in `routing.channels` instead is supported, and sends through just this provider.

<Card title="Send to a specific provider" icon="bullseye-arrow" href="/docs/send/send-to-a-provider" horizontal arrow="true">
  When that is worth doing, and what you give up: failover, channel priority, and providers you add later.
</Card>
