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

# Create Sending Domain

> Register a tenant-supplied sending domain and return the DNS records required to verify it



## OpenAPI

````yaml POST /api/sending-domains
openapi: 3.0.0
info:
  title: Reach API
  version: 1.0.0
  description: API documentation for Reach platform
servers:
  - url: https://api.embedreach.com
    description: Production server
security: []
paths:
  /api/sending-domains:
    post:
      tags:
        - Sending Domains
      summary: Create Sending Domain
      description: >-
        Register a tenant-supplied sending domain and return the DNS records
        required to verify it
      parameters:
        - name: reach-tenant-id
          in: header
          required: false
          schema:
            type: string
            description: >-
              If using a platform scoped JWT, you can pass in a header to
              impersonate a specific tenant to impersonate the request as.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                apexDomain:
                  type: string
                  description: The apex domain the tenant owns (e.g. acme.com)
                subdomain:
                  type: string
                  description: The subdomain label mail will send from (e.g. send)
                userPart:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: >-
                    ^[A-Za-z0-9!#$%&'*+\/=?^_`\{\|\}~\-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`\{\|\}~\-]+)*$
                  description: The local-part mail sends from (e.g. hello)
                emailFromName:
                  type: string
                  minLength: 1
                  description: >-
                    The display name shown in the recipient inbox (e.g. Acme
                    Landscaping)
                emailReplyTo:
                  type: string
                  pattern: ^[^\s@]+@[^\s@]+\.[^\s@]+$
                  description: The reply-to email address for sent mail
                makeDefaultWhenVerified:
                  type: boolean
                  description: >-
                    Once verified, make this domain's sender the business
                    default and re-point live sends. Defaults to true for BYO
                    domains when omitted.
              required:
                - apexDomain
                - subdomain
                - userPart
                - emailFromName
                - emailReplyTo
      responses:
        '201':
          description: Status 201 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      dnsRecords:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - TXT
                                - CNAME
                            host:
                              type: string
                            value:
                              type: string
                            ttl:
                              type: number
                          required:
                            - type
                            - host
                            - value
                            - ttl
                    required:
                      - id
                      - dnsRecords
                required:
                  - success
        '400':
          description: Bad Request - Validation or request error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    default: false
                  message:
                    type: string
                    description: Error message describing what went wrong
                  errors:
                    type: array
                    items:
                      type: string
                    description: Optional array of specific validation errors
                required:
                  - message

````