Resend Domains API

Create and manage domains through the Resend API.

Operations 6

POST /domains Create a new domain
GET /domains Retrieve a list of domains
GET /domains/{domain_id} Retrieve a single domain
PATCH /domains/{domain_id} Update an existing domain
DELETE /domains/{domain_id} Remove an existing domain
POST /domains/{domain_id}/verify Verify an existing domain

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/resend-domains-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

resend-domains-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Resend Domains API
  version: 1.1.0
  description: '

    Resend is transforming email for developers. Simple interface, easy

    integrations, handy templates. '
servers:
- url: https://api.resend.com
security:
- bearerAuth: []
tags:
- name: Domains
  description: Create and manage domains through the Resend API.
paths:
  /domains:
    post:
      tags:
      - Domains
      summary: Create a new domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDomainRequest'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDomainResponse'
    get:
      tags:
      - Domains
      summary: Retrieve a list of domains
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDomainsResponse'
  /domains/{domain_id}:
    get:
      tags:
      - Domains
      summary: Retrieve a single domain
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the domain.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
    patch:
      tags:
      - Domains
      summary: Update an existing domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomainOptions'
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the domain.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDomainResponseSuccess'
    delete:
      tags:
      - Domains
      summary: Remove an existing domain
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the domain.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDomainResponse'
  /domains/{domain_id}/verify:
    post:
      tags:
      - Domains
      summary: Verify an existing domain
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the domain.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDomainResponse'
components:
  schemas:
    Domain:
      type: object
      properties:
        object:
          type: string
          description: The type of object.
          example: domain
        id:
          type: string
          description: The ID of the domain.
          example: d91cd9bd-1176-453e-8fc1-35364d380206
        name:
          type: string
          description: The name of the domain.
          example: example.com
        status:
          type: string
          description: The status of the domain.
          example: not_started
        created_at:
          type: string
          format: date-time
          description: The date and time the domain was created.
          example: '2023-04-26T20:21:26.347412+00:00'
        region:
          type: string
          description: The region where the domain is hosted.
          example: us-east-1
        records:
          type: array
          items:
            $ref: '#/components/schemas/DomainRecord'
    UpdateDomainResponseSuccess:
      type: object
      properties:
        id:
          type: string
          description: The ID of the updated domain.
          example: d91cd9bd-1176-453e-8fc1-35364d380206
        object:
          type: string
          description: The object type representing the updated domain.
          example: domain
    DomainRecord:
      type: object
      properties:
        record:
          type: string
          description: The type of record.
        name:
          type: string
          description: The name of the record.
        type:
          type: string
          description: The type of record.
        ttl:
          type: string
          description: The time to live for the record.
        status:
          type: string
          description: The status of the record.
        value:
          type: string
          description: The value of the record.
        priority:
          type: integer
          description: The priority of the record.
    ListDomainsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ListDomainsItem'
    CreateDomainRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          description: The name of the domain you want to create.
        region:
          type: string
          enum:
          - us-east-1
          - eu-west-1
          - sa-east-1
          default: us-east-1
          description: The region where emails will be sent from. Possible values are us-east-1' | 'eu-west-1' | 'sa-east-1
    CreateDomainResponse:
      type: object
      properties:
        id:
          type: string
          description: The ID of the domain.
        name:
          type: string
          description: The name of the domain.
        created_at:
          type: string
          format: date-time
          description: The date and time the domain was created.
        status:
          type: string
          description: The status of the domain.
        records:
          type: array
          items:
            $ref: '#/components/schemas/DomainRecord'
        region:
          type: string
          description: The region where the domain is hosted.
    UpdateDomainOptions:
      type: object
      properties:
        open_tracking:
          type: boolean
          description: Track the open rate of each email.
        click_tracking:
          type: boolean
          description: Track clicks within the body of each HTML email.
        tls:
          type: string
          description: enforced | opportunistic.
          default: opportunistic
    ListDomainsItem:
      type: object
      properties:
        id:
          type: string
          description: The ID of the domain.
          example: d91cd9bd-1176-453e-8fc1-35364d380206
        name:
          type: string
          description: The name of the domain.
          example: example.com
        status:
          type: string
          description: The status of the domain.
          example: not_started
        created_at:
          type: string
          format: date-time
          description: The date and time the domain was created.
          example: '2023-04-26T20:21:26.347412+00:00'
        region:
          type: string
          description: The region where the domain is hosted.
          example: us-east-1
    DeleteDomainResponse:
      type: object
      properties:
        object:
          type: string
          description: The type of object.
          example: domain
        id:
          type: string
          description: The ID of the domain.
          example: d91cd9bd-1176-453e-8fc1-35364d380206
        deleted:
          type: boolean
          description: Indicates whether the domain was deleted successfully.
          example: true
    VerifyDomainResponse:
      type: object
      properties:
        object:
          type: string
          description: The type of object.
          example: domain
        id:
          type: string
          description: The ID of the domain.
          example: d91cd9bd-1176-453e-8fc1-35364d380206
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer