{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiatdock-com/json-schema/fiatdock-com-domain-intel-schema.json",
  "title": "DomainIntel",
  "description": "Paid. Domain intel: registration, DNS, email auth, TLS.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fiatdock-com-domain-api-openapi.yml#/components/schemas/DomainIntel",
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The host examined (lower-cased)"
    },
    "registeredDomain": {
      "type": [
        "string",
        "null"
      ],
      "description": "The registered name the registry answered for (e.g. example.com for www.example.com), or null"
    },
    "exists": {
      "type": "boolean",
      "description": "False only when the registry has no record (or, with no RDAP service, DNS says NXDOMAIN)"
    },
    "registration": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "registrar": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "ageDays": {
          "type": [
            "number",
            "null"
          ]
        },
        "daysToExpiry": {
          "type": [
            "number",
            "null"
          ]
        },
        "status": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nameservers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dnssec": {
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "required": [
        "registrar",
        "createdAt",
        "expiresAt",
        "updatedAt",
        "ageDays",
        "daysToExpiry",
        "status",
        "nameservers",
        "dnssec"
      ],
      "description": "The registry's RDAP record, or null"
    },
    "registrationNote": {
      "type": [
        "string",
        "null"
      ],
      "description": "Why registration is null, when it is"
    },
    "dns": {
      "type": "object",
      "properties": {
        "a": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "aaaa": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mx": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "exchange": {
                "type": "string"
              },
              "priority": {
                "type": "number"
              }
            },
            "required": [
              "exchange",
              "priority"
            ]
          }
        },
        "ns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "txtCount": {
          "type": "number"
        },
        "resolved": {
          "type": "boolean"
        }
      },
      "required": [
        "a",
        "aaaa",
        "mx",
        "ns",
        "txtCount",
        "resolved"
      ],
      "description": "Live DNS answers"
    },
    "emailSecurity": {
      "type": "object",
      "properties": {
        "spf": {
          "type": [
            "string",
            "null"
          ]
        },
        "dmarc": {
          "type": [
            "string",
            "null"
          ]
        },
        "dmarcPolicy": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "spf",
        "dmarc",
        "dmarcPolicy"
      ],
      "description": "SPF record and DMARC policy"
    },
    "tls": {
      "type": "object",
      "properties": {
        "valid": {
          "type": "boolean"
        },
        "error": {
          "type": [
            "string",
            "null"
          ]
        },
        "issuer": {
          "type": [
            "string",
            "null"
          ]
        },
        "subject": {
          "type": [
            "string",
            "null"
          ]
        },
        "validFrom": {
          "type": [
            "string",
            "null"
          ]
        },
        "validTo": {
          "type": [
            "string",
            "null"
          ]
        },
        "daysRemaining": {
          "type": [
            "number",
            "null"
          ]
        },
        "sanCount": {
          "type": "number"
        },
        "coversDomain": {
          "type": "boolean"
        },
        "protocol": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "description": "The certificate port 443 serves — or an error saying why none was read"
    },
    "checkedAt": {
      "type": "string",
      "description": "ISO time of the check"
    },
    "sources": {
      "type": "string",
      "description": "Where each part came from"
    },
    "note": {
      "type": "string",
      "description": "How to read the answer, and its limits"
    },
    "defaulted": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string"
        },
        "to": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "field",
        "to",
        "value",
        "note"
      ],
      "description": "Present only when the body was empty: which subject the answer is for, and why"
    }
  },
  "required": [
    "domain",
    "registeredDomain",
    "exists",
    "registration",
    "registrationNote",
    "dns",
    "emailSecurity",
    "tls",
    "checkedAt",
    "sources",
    "note"
  ]
}