SendGrid · Capability

Twilio SendGrid Domain Authentication API — Domain Authentication

Twilio SendGrid Domain Authentication API — Domain Authentication. 16 operations. Lead operation: Email DNS records to a co-worker. Self-contained Naftiko capability covering one Sendgrid business surface.

Run with Naftiko SendgridDomain Authentication

What You Can Do

POST
Emaildnsrecord — Email DNS records to a co-worker
/v1/v3/whitelabel/dns/email
GET
Listauthenticateddomain — List all authenticated domains
/v1/v3/whitelabel/domains
POST
Authenticatedomain — Authenticate a domain
/v1/v3/whitelabel/domains
GET
Listdefaultauthenticateddomain — Get the default authentication
/v1/v3/whitelabel/domains/default
GET
Listauthenticateddomainwithuser — List the authenticated domain associated with the given user.
/v1/v3/whitelabel/domains/subuser
DELETE
Disassociateauthenticateddomainfromuser — Disassociate an authenticated domain from a given user.
/v1/v3/whitelabel/domains/subuser
GET
Listallauthenticateddomainwithuser — List all the authenticated domains associated with the given user.
/v1/v3/whitelabel/domains/subuser/all
GET
Getauthenticateddomain — Retrieve an authenticated domain
/v1/v3/whitelabel/domains/{domain-id}
PATCH
Updateauthenticateddomain — Update an authenticated domain
/v1/v3/whitelabel/domains/{domain-id}
DELETE
Deleteauthenticateddomain — Delete an authenticated domain.
/v1/v3/whitelabel/domains/{domain-id}
POST
Associatesubuserwithdomain — Associate an authenticated domain with a given user.
/v1/v3/whitelabel/domains/{domain-id}/subuser
DELETE
Disassociatesubuserfromdomain — Disassociate an authenticated domain from a given user for users with up to five associated domains.
/v1/v3/whitelabel/domains/{domain-id}/subuser
POST
Associatesubuserwithdomainmultiple — Associate an authenticated domain with a given user, for up to five domains.
/v1/v3/whitelabel/domains/{domain-id}/subuser-add
POST
Addiptoauthenticateddomain — Add an IP to an authenticated domain
/v1/v3/whitelabel/domains/{id}/ips
DELETE
Deleteipfromauthenticateddomain — Remove an IP from an authenticated domain.
/v1/v3/whitelabel/domains/{id}/ips/{ip}
POST
Validateauthenticateddomain — Validate a domain authentication.
/v1/v3/whitelabel/domains/{id}/validate

MCP Tools

email-dns-records-co-worker

Email DNS records to a co-worker

list-all-authenticated-domains

List all authenticated domains

read-only idempotent
authenticate-domain

Authenticate a domain

get-default-authentication

Get the default authentication

read-only idempotent
list-authenticated-domain-associated-given

List the authenticated domain associated with the given user.

read-only idempotent
disassociate-authenticated-domain-given-user

Disassociate an authenticated domain from a given user.

idempotent
list-all-authenticated-domains-associated

List all the authenticated domains associated with the given user.

read-only idempotent
retrieve-authenticated-domain

Retrieve an authenticated domain

read-only idempotent
update-authenticated-domain

Update an authenticated domain

idempotent
delete-authenticated-domain

Delete an authenticated domain.

idempotent
associate-authenticated-domain-given-user

Associate an authenticated domain with a given user.

disassociate-authenticated-domain-given-user-2

Disassociate an authenticated domain from a given user for users with up to five associated domains.

idempotent
associate-authenticated-domain-given-user-2

Associate an authenticated domain with a given user, for up to five domains.

add-ip-authenticated-domain

Add an IP to an authenticated domain

remove-ip-authenticated-domain

Remove an IP from an authenticated domain.

idempotent
validate-domain-authentication

Validate a domain authentication.

read-only

Capability Spec

tsg_domain_authentication_v3-domain-authentication.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Twilio SendGrid Domain Authentication API — Domain Authentication
  description: 'Twilio SendGrid Domain Authentication API — Domain Authentication. 16 operations. Lead operation: Email DNS
    records to a co-worker. Self-contained Naftiko capability covering one Sendgrid business surface.'
  tags:
  - Sendgrid
  - Domain Authentication
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SENDGRID_API_KEY: SENDGRID_API_KEY
capability:
  consumes:
  - type: http
    namespace: tsg_domain_authentication_v3-domain-authentication
    baseUri: https://api.sendgrid.com
    description: Twilio SendGrid Domain Authentication API — Domain Authentication business capability. Self-contained, no
      shared references.
    resources:
    - name: v3-whitelabel-dns-email
      path: /v3/whitelabel/dns/email
      operations:
      - name: emaildnsrecord
        method: POST
        description: Email DNS records to a co-worker
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v3-whitelabel-domains
      path: /v3/whitelabel/domains
      operations:
      - name: listauthenticateddomain
        method: GET
        description: List all authenticated domains
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: '`limit` sets the page size, i.e. maximum number of items from the list to be returned for a single
            API request. If omitted, the default page size is used.'
        - name: exclude_subusers
          in: query
          type: boolean
          description: Exclude subuser domains from the result.
        - name: username
          in: query
          type: string
          description: The username associated with an authenticated domain.
        - name: domain
          in: query
          type: string
          description: Search for authenticated domains.
      - name: authenticatedomain
        method: POST
        description: Authenticate a domain
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v3-whitelabel-domains-default
      path: /v3/whitelabel/domains/default
      operations:
      - name: listdefaultauthenticateddomain
        method: GET
        description: Get the default authentication
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: domain
          in: query
          type: string
          description: The domain to find a default authentication.
    - name: v3-whitelabel-domains-subuser
      path: /v3/whitelabel/domains/subuser
      operations:
      - name: listauthenticateddomainwithuser
        method: GET
        description: List the authenticated domain associated with the given user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: query
          type: string
          description: Username for the subuser to find associated authenticated domain.
          required: true
      - name: disassociateauthenticateddomainfromuser
        method: DELETE
        description: Disassociate an authenticated domain from a given user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: query
          type: string
          description: Username for the subuser to find associated authenticated domain.
    - name: v3-whitelabel-domains-subuser-all
      path: /v3/whitelabel/domains/subuser/all
      operations:
      - name: listallauthenticateddomainwithuser
        method: GET
        description: List all the authenticated domains associated with the given user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: query
          type: string
          description: Username for the subuser to find associated authenticated domains.
          required: true
    - name: v3-whitelabel-domains-domain_id
      path: /v3/whitelabel/domains/{domain_id}
      operations:
      - name: getauthenticateddomain
        method: GET
        description: Retrieve an authenticated domain
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateauthenticateddomain
        method: PATCH
        description: Update an authenticated domain
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deleteauthenticateddomain
        method: DELETE
        description: Delete an authenticated domain.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v3-whitelabel-domains-domain_id-subuser
      path: /v3/whitelabel/domains/{domain_id}/subuser
      operations:
      - name: associatesubuserwithdomain
        method: POST
        description: Associate an authenticated domain with a given user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: domain_id
          in: path
          type: integer
          description: ID of the authenticated domain to associate with the subuser.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: disassociatesubuserfromdomain
        method: DELETE
        description: Disassociate an authenticated domain from a given user for users with up to five associated domains.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: query
          type: string
          description: Username for the subuser to find associated authenticated domain.
        - name: domain_id
          in: path
          type: integer
          description: ID of the authenticated domain to be disassociated with the subuser.
          required: true
    - name: v3-whitelabel-domains-domain_id-subuser:add
      path: /v3/whitelabel/domains/{domain_id}/subuser:add
      operations:
      - name: associatesubuserwithdomainmultiple
        method: POST
        description: Associate an authenticated domain with a given user, for up to five domains.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v3-whitelabel-domains-id-ips
      path: /v3/whitelabel/domains/{id}/ips
      operations:
      - name: addiptoauthenticateddomain
        method: POST
        description: Add an IP to an authenticated domain
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v3-whitelabel-domains-id-ips-ip
      path: /v3/whitelabel/domains/{id}/ips/{ip}
      operations:
      - name: deleteipfromauthenticateddomain
        method: DELETE
        description: Remove an IP from an authenticated domain.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v3-whitelabel-domains-id-validate
      path: /v3/whitelabel/domains/{id}/validate
      operations:
      - name: validateauthenticateddomain
        method: POST
        description: Validate a domain authentication.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.SENDGRID_API_KEY}}'
  exposes:
  - type: rest
    namespace: tsg_domain_authentication_v3-domain-authentication-rest
    port: 8080
    description: REST adapter for Twilio SendGrid Domain Authentication API — Domain Authentication. One Spectral-compliant
      resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/v3/whitelabel/dns/email
      name: v3-whitelabel-dns-email
      description: REST surface for v3-whitelabel-dns-email.
      operations:
      - method: POST
        name: emaildnsrecord
        description: Email DNS records to a co-worker
        call: tsg_domain_authentication_v3-domain-authentication.emaildnsrecord
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains
      name: v3-whitelabel-domains
      description: REST surface for v3-whitelabel-domains.
      operations:
      - method: GET
        name: listauthenticateddomain
        description: List all authenticated domains
        call: tsg_domain_authentication_v3-domain-authentication.listauthenticateddomain
        with:
          limit: rest.limit
          exclude_subusers: rest.exclude_subusers
          username: rest.username
          domain: rest.domain
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: authenticatedomain
        description: Authenticate a domain
        call: tsg_domain_authentication_v3-domain-authentication.authenticatedomain
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/default
      name: v3-whitelabel-domains-default
      description: REST surface for v3-whitelabel-domains-default.
      operations:
      - method: GET
        name: listdefaultauthenticateddomain
        description: Get the default authentication
        call: tsg_domain_authentication_v3-domain-authentication.listdefaultauthenticateddomain
        with:
          domain: rest.domain
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/subuser
      name: v3-whitelabel-domains-subuser
      description: REST surface for v3-whitelabel-domains-subuser.
      operations:
      - method: GET
        name: listauthenticateddomainwithuser
        description: List the authenticated domain associated with the given user.
        call: tsg_domain_authentication_v3-domain-authentication.listauthenticateddomainwithuser
        with:
          username: rest.username
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: disassociateauthenticateddomainfromuser
        description: Disassociate an authenticated domain from a given user.
        call: tsg_domain_authentication_v3-domain-authentication.disassociateauthenticateddomainfromuser
        with:
          username: rest.username
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/subuser/all
      name: v3-whitelabel-domains-subuser-all
      description: REST surface for v3-whitelabel-domains-subuser-all.
      operations:
      - method: GET
        name: listallauthenticateddomainwithuser
        description: List all the authenticated domains associated with the given user.
        call: tsg_domain_authentication_v3-domain-authentication.listallauthenticateddomainwithuser
        with:
          username: rest.username
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{domain-id}
      name: v3-whitelabel-domains-domain-id
      description: REST surface for v3-whitelabel-domains-domain_id.
      operations:
      - method: GET
        name: getauthenticateddomain
        description: Retrieve an authenticated domain
        call: tsg_domain_authentication_v3-domain-authentication.getauthenticateddomain
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateauthenticateddomain
        description: Update an authenticated domain
        call: tsg_domain_authentication_v3-domain-authentication.updateauthenticateddomain
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteauthenticateddomain
        description: Delete an authenticated domain.
        call: tsg_domain_authentication_v3-domain-authentication.deleteauthenticateddomain
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{domain-id}/subuser
      name: v3-whitelabel-domains-domain-id-subuser
      description: REST surface for v3-whitelabel-domains-domain_id-subuser.
      operations:
      - method: POST
        name: associatesubuserwithdomain
        description: Associate an authenticated domain with a given user.
        call: tsg_domain_authentication_v3-domain-authentication.associatesubuserwithdomain
        with:
          domain_id: rest.domain_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: disassociatesubuserfromdomain
        description: Disassociate an authenticated domain from a given user for users with up to five associated domains.
        call: tsg_domain_authentication_v3-domain-authentication.disassociatesubuserfromdomain
        with:
          username: rest.username
          domain_id: rest.domain_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{domain-id}/subuser-add
      name: v3-whitelabel-domains-domain-id-subuser-add
      description: REST surface for v3-whitelabel-domains-domain_id-subuser:add.
      operations:
      - method: POST
        name: associatesubuserwithdomainmultiple
        description: Associate an authenticated domain with a given user, for up to five domains.
        call: tsg_domain_authentication_v3-domain-authentication.associatesubuserwithdomainmultiple
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{id}/ips
      name: v3-whitelabel-domains-id-ips
      description: REST surface for v3-whitelabel-domains-id-ips.
      operations:
      - method: POST
        name: addiptoauthenticateddomain
        description: Add an IP to an authenticated domain
        call: tsg_domain_authentication_v3-domain-authentication.addiptoauthenticateddomain
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{id}/ips/{ip}
      name: v3-whitelabel-domains-id-ips-ip
      description: REST surface for v3-whitelabel-domains-id-ips-ip.
      operations:
      - method: DELETE
        name: deleteipfromauthenticateddomain
        description: Remove an IP from an authenticated domain.
        call: tsg_domain_authentication_v3-domain-authentication.deleteipfromauthenticateddomain
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/whitelabel/domains/{id}/validate
      name: v3-whitelabel-domains-id-validate
      description: REST surface for v3-whitelabel-domains-id-validate.
      operations:
      - method: POST
        name: validateauthenticateddomain
        description: Validate a domain authentication.
        call: tsg_domain_authentication_v3-domain-authentication.validateauthenticateddomain
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: tsg_domain_authentication_v3-domain-authentication-mcp
    port: 9090
    transport: http
    description: MCP adapter for Twilio SendGrid Domain Authentication API — Domain Authentication. One tool per consumed
      operation, routed inline through this capability's consumes block.
    tools:
    - name: email-dns-records-co-worker
      description: Email DNS records to a co-worker
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.emaildnsrecord
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-authenticated-domains
      description: List all authenticated domains
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.listauthenticateddomain
      with:
        limit: tools.limit
        exclude_subusers: tools.exclude_subusers
        username: tools.username
        domain: tools.domain
      outputParameters:
      - type: object
        mapping: $.
    - name: authenticate-domain
      description: Authenticate a domain
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.authenticatedomain
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-default-authentication
      description: Get the default authentication
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.listdefaultauthenticateddomain
      with:
        domain: tools.domain
      outputParameters:
      - type: object
        mapping: $.
    - name: list-authenticated-domain-associated-given
      description: List the authenticated domain associated with the given user.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.listauthenticateddomainwithuser
      with:
        username: tools.username
      outputParameters:
      - type: object
        mapping: $.
    - name: disassociate-authenticated-domain-given-user
      description: Disassociate an authenticated domain from a given user.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.disassociateauthenticateddomainfromuser
      with:
        username: tools.username
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-authenticated-domains-associated
      description: List all the authenticated domains associated with the given user.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.listallauthenticateddomainwithuser
      with:
        username: tools.username
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-authenticated-domain
      description: Retrieve an authenticated domain
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.getauthenticateddomain
      outputParameters:
      - type: object
        mapping: $.
    - name: update-authenticated-domain
      description: Update an authenticated domain
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.updateauthenticateddomain
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-authenticated-domain
      description: Delete an authenticated domain.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.deleteauthenticateddomain
      outputParameters:
      - type: object
        mapping: $.
    - name: associate-authenticated-domain-given-user
      description: Associate an authenticated domain with a given user.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.associatesubuserwithdomain
      with:
        domain_id: tools.domain_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: disassociate-authenticated-domain-given-user-2
      description: Disassociate an authenticated domain from a given user for users with up to five associated domains.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.disassociatesubuserfromdomain
      with:
        username: tools.username
        domain_id: tools.domain_id
      outputParameters:
      - type: object
        mapping: $.
    - name: associate-authenticated-domain-given-user-2
      description: Associate an authenticated domain with a given user, for up to five domains.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.associatesubuserwithdomainmultiple
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: add-ip-authenticated-domain
      description: Add an IP to an authenticated domain
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.addiptoauthenticateddomain
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-ip-authenticated-domain
      description: Remove an IP from an authenticated domain.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tsg_domain_authentication_v3-domain-authentication.deleteipfromauthenticateddomain
      outputParameters:
      - type: object
        mapping: $.
    - name: validate-domain-authentication
      description: Validate a domain authentication.
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: tsg_domain_authentication_v3-domain-authentication.validateauthenticateddomain
      outputParameters:
      - type: object
        mapping: $.