{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/sendgrid/main/json-schema/sendgrid-authenticated-domain-spf-schema.json",
  "title": "Domain Authentication",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/sendgrid-domain-authentication-api-openapi.yml#/components/schemas/AuthenticatedDomainSpf",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "The ID of the authenticated domain."
    },
    "domain": {
      "type": "string",
      "description": "The domain authenticated."
    },
    "subdomain": {
      "type": "string",
      "description": "The subdomain that was used to create this authenticated domain."
    },
    "username": {
      "type": "string",
      "description": "The username of the account that this authenticated domain is associated with."
    },
    "user_id": {
      "type": "integer",
      "description": "The user_id of the account that this authenticated domain is associated with."
    },
    "ips": {
      "type": "array",
      "description": "The IP addresses that are included in the SPF record for this authenticated domain.",
      "items": {}
    },
    "custom_spf": {
      "type": "boolean",
      "description": "Indicates if this authenticated domain uses custom SPF."
    },
    "default": {
      "type": "boolean",
      "description": "Indicates if this is the default domain."
    },
    "legacy": {
      "type": "boolean",
      "description": "Indicates if this authenticated domain was created using the legacy whitelabel tool. If it is a legacy whitelabel, it will still function, but you'll need to create a new authenticated domain if you need to update it."
    },
    "automatic_security": {
      "type": "boolean",
      "description": "Indicates if this authenticated domain uses automated security."
    },
    "valid": {
      "type": "boolean",
      "description": "Indicates if this is a valid authenticated domain ."
    },
    "dns": {
      "type": "object",
      "description": "The DNS records for this authenticated domain.",
      "required": [
        "mail_server",
        "subdomain_spf",
        "domain_spf",
        "dkim"
      ],
      "properties": {
        "mail_server": {
          "type": "object",
          "description": "Designates which mail server is responsible for accepting messages from a domain.",
          "required": [
            "host",
            "type",
            "data",
            "valid"
          ],
          "properties": {
            "host": {
              "type": "string",
              "description": "The domain sending the messages."
            },
            "type": {
              "type": "string",
              "description": "They type of DNS record."
            },
            "data": {
              "type": "string",
              "description": "The mail server responsible for accepting messages from the sending domain."
            },
            "valid": {
              "type": "boolean",
              "description": "Indicates if this is a valid DNS record."
            }
          }
        },
        "subdomain_spf": {
          "type": "object",
          "description": "The SPF record for the subdomain used to create this authenticated domain.",
          "required": [
            "host",
            "type",
            "data",
            "valid"
          ],
          "properties": {
            "host": {
              "type": "string",
              "description": "The domain that this SPF record will be used to authenticate."
            },
            "type": {
              "type": "string",
              "description": "The type of data in the SPF record."
            },
            "data": {
              "type": "string",
              "description": "The SPF record."
            },
            "valid": {
              "type": "boolean",
              "description": "Indicates if this is a valid SPF record."
            }
          }
        },
        "domain_spf": {
          "type": "object",
          "description": "The SPF record for the root domain.",
          "required": [
            "host",
            "type",
            "data",
            "valid"
          ],
          "properties": {
            "host": {
              "type": "string",
              "description": "The root domain that this SPF record will be used to authenticate."
            },
            "type": {
              "type": "string",
              "description": "The type of data in the SPF record."
            },
            "data": {
              "type": "string",
              "description": "The SPF record."
            },
            "valid": {
              "type": "boolean",
              "description": "Indicates if the SPF record is valid."
            }
          }
        },
        "dkim": {
          "type": "object",
          "description": "The DKIM record for messages sent using this authenticated domain.",
          "required": [
            "host",
            "type",
            "data",
            "valid"
          ],
          "properties": {
            "host": {
              "type": "string",
              "description": "The DNS labels for the DKIM signature."
            },
            "type": {
              "type": "string",
              "description": "The type of data in the DKIM record."
            },
            "data": {
              "type": "string",
              "description": "The DKIM record."
            },
            "valid": {
              "type": "boolean",
              "description": "Indicates if the DKIM record is valid."
            }
          }
        }
      }
    }
  },
  "required": [
    "id",
    "domain",
    "username",
    "user_id",
    "ips",
    "custom_spf",
    "default",
    "legacy",
    "automatic_security",
    "valid",
    "dns"
  ]
}