---
title: "Create an email channel"
method: POST
path: "/api/public/email-channel"
tags: ["email-channel"]
---

# Create an email channel

`POST /api/public/email-channel`

Registers a sender on a domain and starts SendGrid domain authentication. After creation, fetch the DNS records and add them to your DNS provider, then call /verify.

## Headers

- `x-api-key` string, required

## Request body

- CreateEmailChannelPublicDto
  - `connection_method` 'manual'
  - `domain` string, required
  - `sender_address` string, email, required
  - `sender_name` string, required

## Response `201`

- EmailChannelResponseDto
  - `id` string, required
  - `sender_address` string, required
  - `sender_name` string, required
  - `created_at` string, date-time, required
  - `email_domain` EmailDomainResponseDto, required
    - `id` string, required
    - `domain` string, required
    - `outbound_validation_status` 'not_configured' | 'pending' | 'verified' | 'failed', required
    - `inbound_validation_status` 'not_configured' | 'pending' | 'verified' | 'failed', required
    - `dns_records` DnsRecordResponseDto[]
      - `id` string, required
      - `record_type` 'cname' | 'mx' | 'txt', required
      - `host` string, required
      - `data` string, required
      - `valid` boolean, required
      - `purpose` 'spf' | 'dkim1' | 'dkim2' | 'inbound_mx', required
    - `planned_inbound_mx` PlannedInboundMxResponseDto
      - `host` string, required
      - `data` string, required
    - `connection_method` 'manual' | 'shared', required
    - `subdomain_slug` string, nullable

## Other responses

- `400` — Invalid request body
- `401` — Unauthorized
- `default`

---

[API](https://skmtc.net/vambe/apis/vambe-ai-api.md) · [All operations](https://skmtc.net/vambe/apis/vambe-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vambe/vambe-ai-api/revisions/e206709d4be5/schema)
