← Zurück zum Verzeichnis
Community-Eintrag Dieser Eintrag basiert auf öffentlich verfügbaren Quellen und wurde nicht vom Inhaber erstellt. Ist das deine Website?
Kostenlos übernehmen
· Standard Standard-Status
llmstxt.info Verzeichnis · Standard Featured

Courier

www.courier.com ↗
Community-Eintrag llms.txt erreichbar KI-Impact-Score 95/100 · A

Courier ist im llmstxt.info-Verzeichnis als KI-auffindbare Organisation gelistet. Branche: Entwickler-Tools. Die Website www.courier.com stellt ihre llms.txt unter https://www.courier.com/docs/llms.txt bereit. Der Eintrag besteht seit 17. April 2026.

Geschäftskategorie
Entwickler-Tools
Eingetragen seit
Beschreibung
Courier is infrastructure for product-to-user communication. Send notifications across email, SMS, push, chat, and in-app channels through one API call. Die Dokumentation umfasst: About, Core Data Model, Key Concepts, Critical Gotchas u. a..
Gemäß DSGVO Art. 17 kannst du die Löschung deiner Daten beantragen.
llms.txt — Aktueller Inhalt Öffnen ↗
# Courier > Courier is infrastructure for product-to-user communication. Send notifications across email, SMS, push, chat, and in-app channels through one API call. ## About - **Type**: APIService - **Category**: Notifications / Messaging Infrastructure - **Language**: English - **Audience**: Developers, SaaS platforms, product engineers - **Pricing**: Free tier available; usage-based pricing - **Last Updated**: 2026-05 - **Base URL**: `https://api.courier.com` - **Auth**: `Authorization: Bearer <YOUR_API_KEY>` (workspace-scoped; Test and Production keys are separate) - **API Version**: V2 (no version header required; latest is default) ## Core Data Model ``` message → routing (single | all) → channel (email, sms, push, inbox, chat) → provider (SendGrid, Twilio, FCM, etc.) ``` A **message** targets one or more **recipients** (user_id, email, phone_number, list_id, or audience_id). The **routing** object controls whether delivery fans out to all channels in parallel (`method: "all"`) or tries them in order as a fallback chain (`method: "single"`). Each **channel** is fulfilled by a configured **provider**. ## Agent Routing (which API to use) | Intent | Endpoint | Notes | |--------|----------|-------| | One-off send | `POST /send` | Single or multi-recipient | | Inline multi-step workflow | `POST /automations/invoke` (ad-hoc steps) | Define steps inline; no saved template needed | | Saved automation | `POST /automations/{id}/invoke` | Trigger a pre-built automation template | | Visual/long-running flows | `POST /journeys/{id}/invoke` | Journeys API; create via `POST /journeys` | | Many users, one message | Bulk API (3 steps) | `POST /bulk` → add users → run | | Dynamic segment | Audiences (`audience_id` in send) | Filter-based, auto-updating membership | | Static group | Lists (`list_id` in send) | Manual subscribe/unsubscribe | ## Key Concepts - **Recipient types**: `user_id` (stored profile), `email` / `phone_number` (inline), `list_id` (subscriber group), `audience_id` (dynamic segment) - **Inline vs template**: Send with `message.content` for inline content or `message.template` for a dashboard-designed notification - **Routing method**: `"single"` = fallback chain (try first channel, then next on failure); `"all"` = parallel delivery to every channel - **Profile merge vs replace**: `POST /profiles/{id}` merges (PATCH semantics); `PUT /profiles/{id}` replaces the entire profile - **Environments**: Test and Production share a workspace but use different API keys; templates must be published and migrated separately - **Tenants**: `tenant_id` in message context sets multi-tenant scope; affects brand, preferences, and routing defaults - **Preferences**: Users opt in/out per subscription topic; Courier enforces at send time automatically - **Idempotency**: Include an `Idempotency-Key` header on transactional sends (OTP, order confirmations, billing) to prevent duplicates ## Critical Gotchas - `PUT /profiles/{id}` is a **full replacement**; any fields not included are deleted. Use `POST` (merge) for partial updates. - Bulk sending is a 3-step flow: create job → add users → run job. You cannot send in a single call. - `routing.method: "all"` sends to **every** channel simultaneously. Most use cases want `"single"` (fallback chain). - The `requestId` returned by `/send` is a single ID for single-recipient sends but a `requestId` per recipient for multi-recipient. - Templates exist in draft until published. Sending with a template ID uses the last published version. - Brand creation requires `settings` (the API returns 400 without it). Minimal valid: `{ "name": "X", "settings": { "colors": { "primary": "#000", "secondary": "#fff" } } }`. - List subscription objects use `recipientId` (camelCase), not `recipient_id`. - Automation cancellation uses `cancelation_token` (one "l") and a second ad-hoc invoke with `action: "cancel"`. There is no separate `/cancel` endpoint. - Subscription topics must exist before assigning as ten […gekürzt]