---
title: "Create a provider"
method: POST
path: "/providers"
tags: ["Providers"]
---

# Create a provider

`POST /providers`

Configures a provider integration from a Courier provider key and its settings. Check the catalog endpoint for the schema each provider expects.

## Headers

- `Idempotency-Key` string
- `x-idempotency-expiration` string

## Request body

- ProvidersCreateRequest — Request body for creating a new provider configuration.
  - `provider` string, required — The provider key identifying the type (e.g. "sendgrid", "twilio"). Must be a known Courier provider — see the catalog endpoint for valid keys.
  - `title` string — Optional display title. Omit to use "Default Configuration".
  - `alias` string — Optional alias for this configuration.
  - `settings` object — Provider-specific settings (snake_case keys). Defaults to an empty object when omitted. Use the catalog endpoint to discover required fields for a given provider — omitting a required field returns a 400 validation error.

## Response `201`

Created

- Provider — A configured provider in the workspace.
  - `id` string, required — A unique identifier for the provider configuration.
  - `title` string, required — Display title. Defaults to "Default Configuration" when not explicitly set.
  - `provider` string, required — The provider key (e.g. "sendgrid", "twilio", "slack").
  - `alias` string — Optional alias for this configuration.
  - `settings` object, required — Provider-specific settings (snake_case keys on the wire).
  - `created` integer, required — Unix timestamp (ms) of when the provider was created.
  - `updated` integer, nullable — Unix timestamp (ms) of when the provider was last updated.

## Other responses

- `400`

---

[API](https://skmtc.net/trycourier/apis/courier.md) · [All operations](https://skmtc.net/trycourier/apis/courier/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trycourier/courier/versions/04f69fbf96a5/schema)
