Domain Security Info

Data Dictionary

Updated May 1, 2026, 8:27 AM

Data dictionary#

This page describes every piece of data that Domain Security Information stores, how it is used, and who can see it. The system stores two kinds of data: data it shows to the public during lookups, and data it keeps for administrators to manage the platform.

Who sees what#

The tool has two audiences. Understanding who sees what helps you make sense of the data fields below.

AudienceWhat they seeWhere
Public usersLive DNS records, WHOIS data, identified services, brand badges, and security status for any domain or IP they look updomainsecurityinfo.com
AdministratorsEverything public users see, plus the full knowledge base, analytics, audit logs, user management, scan history, and historical analysis dataadmin.domainsecurityinfo.com

Historical analysis data is only available to administrators. The public API (/raw/{domain}) returns a live, real-time snapshot of a domain's current state. It does not include past analysis results, change history, or scan records. Only the admin interface stores and displays historical information.


Brands#

Brands represent organizations that operate internet services. They are the foundation of the identification system โ€” every tag, verified domain, IP prefix, and verified ASN connects back to a brand.

FieldWhat it storesExample
Brand IDA short, unique text identifier chosen when the brand is created. Cannot be changed later.google, cloudflare, microsoft
NameThe display name shown in badges on lookup results.Google, Cloudflare, Microsoft 365
ColorA hex color code that sets the badge background color. White text appears on this background, so the color needs enough contrast to be readable.#4285F4 (Google blue)
URLA link to the brand's website. When set, clicking the badge opens this link.https://cloud.google.com
LocationThe brand's headquarters or primary location. This is for reference only and does not affect lookups.San Francisco, CA
Created atWhen the brand was first added to the system. Set automatically.2024-03-15T10:30:00Z
Updated atWhen the brand was last changed. Updates automatically on every edit.2025-01-20T14:15:00Z
VersionA number that increases by one with every edit. Starts at 1. Used for tracking changes over time.5

Brand revision history (admin only)#

Every time a brand is created, edited, or deleted, the system saves a snapshot of the change. This history is only visible to administrators.

FieldWhat it stores
Brand IDWhich brand was changed.
Change typeWhether the brand was created, updated, or deleted.
Changed byWho made the change (defaults to system for automated changes).
Changed atWhen the change happened.
Previous versionThe version number before the change.
New versionThe version number after the change.
All brand fieldsA copy of every brand field at the time of the change (name, color, URL, location).

TXT record tags#

TXT record tags are patterns that identify services in a domain's TXT DNS records. When a TXT record matches a tag's pattern, the lookup results show a colored badge with the service name.

FieldWhat it storesExample
PatternThe text to match against TXT records. The system uses this for prefix matching (record starts with this text) or exact matching (record equals this text exactly). Must be unique across all TXT tags.google-site-verification=
BrandThe brand this tag belongs to. Determines the badge color and name unless overridden. Optional โ€” tags without a brand show a default gray badge.google
Service nameA custom name for the badge. If left blank, the brand's name is used.Google Search Console
ColorOverrides the brand's default color for this specific tag. Optional.#34A853
URLA link that makes the badge clickable. Optional.https://search.google.com/search-console
Created atWhen the tag was first added.
Updated atWhen the tag was last changed.
VersionIncreases by one with every edit.

MX record tags#

MX record tags identify email providers by matching patterns in a domain's MX (mail exchange) DNS records. The system uses suffix matching โ€” it checks whether the MX hostname ends with the tag's pattern.

FieldWhat it storesExample
PatternThe text to match against MX record hostnames. The system checks whether the hostname ends with this text. Include the leading dot to prevent partial matches..google.com
BrandThe brand this tag belongs to.google
Service nameA custom name for the badge.Google Workspace
ColorOverrides the brand's default color. Optional.
URLA clickable link on the badge. Optional.https://workspace.google.com
Created atWhen the tag was first added.
Updated atWhen the tag was last changed.
VersionIncreases by one with every edit.

NS record tags#

NS record tags identify DNS providers by matching patterns in a domain's nameserver records. Like MX tags, NS tags use suffix matching by default.

FieldWhat it storesExample
PatternThe text to match against nameserver hostnames..ns.cloudflare.com
BrandThe brand this tag belongs to.cloudflare
Service nameA custom name for the badge.Cloudflare DNS
ColorOverrides the brand's default color. Optional.
URLA clickable link on the badge. Optional.
Created atWhen the tag was first added.
Updated atWhen the tag was last changed.
VersionIncreases by one with every edit.

All three tag types (TXT, MX, NS) store revision history with the same fields as brand revisions: what changed, when, who made the change, and previous and new version numbers.


Regex patterns#

Regex patterns provide advanced matching for TXT records that have variable formats and can't be matched by simple prefix or exact text matching.

FieldWhat it storesExample
PatternA regular expression that the system tests against each TXT record.^[a-f0-9]{32}$
Service nameThe name shown in the badge when this pattern matches a record.Hex Verification Token
ColorThe badge background color.#6C757D
URLA clickable link on the badge. Optional.
PriorityA number that controls matching order. Lower numbers are checked first. If two regex patterns could match the same record, the one with the lower priority number wins.10
ActiveWhether this pattern is currently used during lookups. Inactive patterns are stored but ignored.true

Verified domains#

Verified domains are apex domains that an administrator has confirmed belong to a specific brand. When someone looks up a verified domain, they see the brand's badge at the top of the results.

FieldWhat it storesExample
Apex domainThe registered domain name, without subdomains. Each domain can only appear once.google.com
BrandThe brand this domain belongs to. Required.google
Secondary lineExtra context shown below the brand name on the badge.Cloud Division
Tertiary lineA third line of context on the badge.Mountain View, CA
Subdomain treatmentControls whether subdomains of this domain also show the brand badge. Options: noSubdomains (only the exact apex domain), allSubdomains (any subdomain), or pattern (custom matching).allSubdomains
Verification typeHow the domain's ownership was confirmed. For reference only.manual, dns, cname
Created atWhen the verified domain was first added.
Updated atWhen it was last changed.
VersionIncreases by one with every edit.

Verified domains also affect how NS records are identified. If a nameserver hostname falls under a verified domain, it automatically inherits that domain's brand. For example, if cloudflare.com is verified as Cloudflare, then ns1.cloudflare.com is automatically tagged as a Cloudflare nameserver โ€” even without a matching NS tag.

Verified domain revisions are stored with the same structure as other revision histories.


Known IP prefixes#

Known IP prefixes map ranges of IP addresses to brands. When someone looks up an IP address that falls within a known prefix, the results show the brand's badge.

FieldWhat it storesExample
IP prefixThe IP address range in CIDR notation. Must be unique.8.8.8.0/24
IP versionWhether this is an IPv4 (4) or IPv6 (6) prefix. Detected automatically from the address format.4
BrandThe brand that owns this IP range. Required.google
DescriptionA note about what this prefix is used for.Google Public DNS
Created atWhen the prefix was first added.
Updated atWhen it was last changed.
VersionIncreases by one with every edit.

How IP prefix matching works#

When someone looks up an IP address, the system checks it against all known prefixes for the matching IP version (IPv4 or IPv6). If the IP address falls within multiple prefixes, the system picks the most specific one โ€” the prefix with the longest prefix length.

For example, if the database has 8.8.8.0/24 (256 addresses) and 8.8.8.8/32 (1 address), and someone looks up 8.8.8.8, the system returns the /32 match because it is more specific.

IP prefix revisions are stored with the same structure as other revision histories.


Verified ASNs#

Verified ASNs link autonomous system numbers to brands. An ASN identifies a network operator on the internet. When someone looks up an IP address and the WHOIS data includes a verified ASN, the results can show the brand's badge.

FieldWhat it storesExample
ASNThe full ASN identifier, including the "AS" prefix.AS15169
ASN numberThe numeric part of the ASN.15169
BrandThe brand that operates this ASN. Required.google
DescriptionA note about this ASN.Primary Google network
Additional line 1Extra context shown with the brand badge.Google LLC
Additional line 2A second line of extra context.Mountain View, CA
Created atWhen the ASN was first added.
Updated atWhen it was last changed.
VersionIncreases by one with every edit.

Known service domains#

Known service domains categorize domains by the type of service they provide. Unlike verified domains, which link a domain to a brand, known service domains describe what a domain does.

FieldWhat it storesExample
DomainThe domain name. Must be unique.sendgrid.net
Service typeThe kind of service this domain provides.email, cdn, hosting
NotesAdditional context about the service. Optional.SendGrid transactional email platform

When someone looks up a domain, the public results include a "services" section that shows any matching known service domains. The system checks both the queried domain and its apex domain.


WHOIS cache#

The system caches WHOIS data to reduce the number of calls to the external WHOIS API. This cache is invisible to users โ€” they see WHOIS data as if it were fetched live.

FieldWhat it stores
DomainThe domain that was looked up.
WHOIS dataThe full WHOIS response, stored as JSON.
Expires atWhen the cached data becomes stale. Set to 24 hours after the lookup. After this time, the next lookup fetches fresh data.
Created atWhen the cached entry was stored.

Domain analysis history (admin only)#

Every domain lookup produces an analysis. The system saves these analyses so administrators can track how a domain's configuration changes over time. This data is not available through the public API or public website. The public API only returns the current, real-time state.

FieldWhat it storesExample
DomainThe domain that was analyzed.example.com
Is apex domainWhether the analyzed domain is an apex domain (not a subdomain).true
Analysis timestampWhen the analysis ran.2025-06-15T08:00:00Z
DNS resolvableWhether the domain's DNS records could be resolved.true
DNS resolution timeHow long the DNS queries took, in milliseconds.45
TXT records countHow many TXT records the domain has.8
TXT records (JSON)The full list of TXT records at the time of analysis.["v=spf1 ...", "google-site-verification=..."]
TXT tags foundWhich known tags matched the TXT records.["SPF", "Google Search Console"]
TXT security scoreA score from 0 to 100 rating the quality of TXT record security.75
MX records countHow many MX records the domain has.5
MX records (JSON)The full list of MX records.
MX tags foundWhich known tags matched the MX records.["Google Workspace"]
MX security scoreA score from 0 to 100.80
NS records countHow many NS records the domain has.2
NS records (JSON)The full list of NS records.
NS tags foundWhich known tags matched the NS records.["Cloudflare DNS"]
NS security scoreA score from 0 to 100.90
CAA records countHow many CAA records the domain has.3
CAA records (JSON)The full list of CAA records.
SPF recordThe full text of the SPF record.v=spf1 include:_spf.google.com ~all
SPF security scoreA score from 0 to 100.70
DMARC recordThe full text of the DMARC record.v=DMARC1; p=reject; ...
DMARC security scoreA score from 0 to 100.95
Overall security scoreA combined score from 0 to 100 that summarizes the domain's security posture.78
Security issuesA list of problems found during analysis.["No CAA records", "SPF uses ~all instead of -all"]
RecommendationsSuggested improvements.["Add CAA records", "Switch SPF to -all"]
Processing timeHow long the full analysis took, in milliseconds.1200
Had errorWhether the analysis encountered any errors.false
Error messageThe error message, if one occurred.
Has changesWhether this analysis detected differences from the previous one.true
Changes summaryA text description of what changed.TXT record added: stripe-verification=...
SourceHow the analysis was triggered.public-lookup, scheduled, manual, admin-search

Domain changes (admin only)#

When the system detects that a domain's DNS records changed between analyses, it stores a record of each change. This data is only available to administrators.

FieldWhat it storesExample
DomainThe domain where the change was detected.example.com
Change typeWhat kind of change happened.txt_added, txt_removed, mx_changed, ns_changed
Record typeWhich DNS record type changed.txt, mx, ns, caa, spf, dmarc
Old valueThe previous value of the record.v=spf1 include:old-provider.com ~all
New valueThe new value of the record.v=spf1 include:new-provider.com ~all
Old countHow many records of this type existed before.3
New countHow many records of this type exist now.4
Security impactWhether the change improved, worsened, or had no effect on security.positive, negative, neutral
Security score changeHow much the security score changed.+5, -10
Detected byHow the change was found.automated, manual, import
NotesAny additional context.

Known apex domains (admin only)#

The system tracks a large database of apex domains for ongoing monitoring. This data is only available to administrators.

FieldWhat it storesExample
Apex domainThe registered domain.google.com
TLDThe top-level domain..com, .co.uk
Domain levelHow many parts make up the TLD. 2 for .com, 3 for .co.uk, 4 or more for complex TLDs.2
Is activeWhether the system is actively monitoring this domain.true
First seenWhen the domain was first added to the tracking system.
Last checkedWhen the domain was last analyzed.
Last analysisWhen the most recent full analysis ran.
Check frequency (hours)How often the system should re-analyze this domain. Default is every 24 hours.24
Priority levelHow important this domain is. 1 = normal, 2 = high, 3 = critical. Higher-priority domains are analyzed more frequently.1
BrandThe brand this domain belongs to, if known.google
Estimated traffic levelA rough estimate of the domain's traffic. 0 = unknown, 1 = low, 2 = medium, 3 = high.3
Domain typeHow the domain entered the system.verified, discovered, imported, unknown
SourceWhere the domain came from.bulk-import, manual, zone-file
MetadataAdditional structured data stored as JSON.

Analytics data (admin only)#

The system records detailed analytics about how the public tool is used. All analytics data is only visible to administrators.

Request tracking#

Each domain or IP lookup is logged with:

FieldWhat it stores
DomainThe domain or IP that was looked up.
Apex domainThe apex domain extracted from the query.
TimestampWhen the lookup happened.
Country, region, cityThe approximate location of the person who made the request, based on Cloudflare headers.
Is verified domainWhether the looked-up domain is in the verified domains database.
BrandThe associated brand, if any.
Has TXT/MX/NS tagsWhether the domain had records matching known tags.
Has WHOIS dataWhether WHOIS data was available.
WHOIS cache hitWhether the WHOIS data came from cache or required a fresh API call.
Response timeHow long the full response took, in milliseconds.
DNS lookup timeHow long the DNS queries took, in milliseconds.
WHOIS lookup timeHow long the WHOIS lookup took, in milliseconds.
Had errorWhether the request encountered an error.
Error type and messageDetails about the error, if one occurred.

Daily statistics#

Aggregated numbers calculated once per day:

FieldWhat it stores
Total requestsHow many lookups happened that day.
Unique domainsHow many different domains were looked up.
Verified domain requestsHow many lookups matched a verified domain.
WHOIS cache hitsHow many WHOIS lookups were served from cache.
WHOIS API callsHow many fresh WHOIS API calls were needed.
Error countHow many requests returned errors.
Average response timeThe mean response time for the day, in milliseconds.
Peak hourThe hour of day (0โ€“23) with the most traffic.
Peak hour requestsHow many requests happened during the busiest hour.

The most-requested domains, calculated for different time periods:

FieldWhat it stores
PeriodThe time window: daily, weekly, monthly, or all time.
DomainThe domain name.
Request countHow many times it was looked up during the period.
RankIts position in the list (1 = most popular).
BrandThe associated brand, if any.
Is verifiedWhether the domain is in the verified domains database.

Brand analytics#

How often each brand appears in lookups:

FieldWhat it stores
BrandThe brand being tracked.
PeriodThe time window: daily, weekly, or monthly.
Domain countHow many unique domains are associated with this brand.
Request countHow many lookups involved this brand.
Unique visitorsHow many different people triggered this brand.

Tag usage#

How often each tag matches records in lookups:

FieldWhat it stores
Tag typeTXT, MX, or NS.
Tag patternThe pattern text.
PeriodThe time window.
Match countHow many times this tag matched a record.
Domain countHow many different domains triggered this tag.

Geographic analytics#

Where requests come from:

FieldWhat it stores
CountryThe country code and name.
RegionThe state or region.
CityThe city.
Request countHow many requests came from this location.
Unique domainsHow many different domains were looked up from this location.

Users (admin only)#

The system tracks administrator accounts. Users are created automatically the first time someone logs in through Cloudflare Access.

FieldWhat it storesExample
IDA unique identifier from Cloudflare Access.a1b2c3d4-...
EmailThe admin's email address.admin@example.com
NameThe admin's display name.Jane Smith
RoleThe admin's permission level.super_admin, admin, editor, viewer
StatusThe account's current state.active, suspended, deleted
First loginWhen the admin first accessed the system.
Last loginWhen the admin most recently logged in.
Login countHow many times the admin has logged in.42

Audit logs (admin only)#

Every action in the admin interface is recorded in the audit log.

FieldWhat it stores
TimestampWhen the action happened.
User emailWho did it.
Action typeWhat they did: create, read, update, delete, login, logout, export, or import.
Entity typeWhat kind of data was affected: brand, txt_tag, mx_tag, ns_tag, verified_domain, user, or system.
Entity IDThe specific item's identifier.
Entity nameA human-readable name for the item.
Action detailsA description of what happened.
Changes (JSON)The exact fields that changed, including old and new values.
Request method and pathThe HTTP method and URL path of the request.
Response statusThe HTTP status code returned.
Response timeHow long the request took, in milliseconds.
Risk scoreAn automatically calculated score (0โ€“100) based on the action's characteristics. Higher scores mean more unusual activity.
FlagsAutomatically generated labels for unusual patterns, such as unusual_ip, bulk_delete, off_hours_activity, or rapid_changes.

The audit log also captures network and security metadata from Cloudflare, including: IP address, country, Cloudflare Ray ID, bot score, threat score, ASN, and whether the request came through Cloudflare WARP.


User sessions (admin only)#

Each time an administrator accesses the system, a session is created and tracked.

FieldWhat it stores
Session IDA unique identifier for this session.
UserThe admin's ID and email.
Started atWhen the session began.
Last activityWhen the admin last did something.
Ended atWhen the session ended.
IP addressWhere the session came from.
User agentThe browser or client used.
LocationCountry, region, and city.
Authentication methodHow the admin logged in: SAML, OIDC, or service token.

Scan queue and batches (admin only)#

The system schedules and processes domain scans in batches. These records track scanning operations.

Scan queue#

FieldWhat it stores
DomainThe domain to scan.
Priority1 = normal, 2 = high, 3 = critical.
Scheduled forWhen the scan should run.
StatusCurrent state: pending, running, completed, failed, or cancelled.
AttemptsHow many times the scan has been tried.
Max attemptsThe maximum number of tries before giving up (default: 3).
Last errorThe error message from the most recent failed attempt.
Processing timeHow long the scan took, in milliseconds.

Scan batches#

FieldWhat it stores
Batch nameA human-readable name for the batch.
Batch typeHow the batch was created: daily, priority, manual, or backfill.
Total domainsHow many domains are in the batch.
Completed domainsHow many have finished scanning.
Failed domainsHow many failed.
StatusCurrent state: running, completed, failed, or cancelled.

What the public API returns#

When someone uses the public JSON API (/raw/{domain}), the response includes the following data โ€” all of which reflects the domain's current, real-time state:

FieldWhat it contains
domainThe queried domain.
apexDomainThe extracted apex domain.
nameserversNS records, each with any matching tag (name, color, URL, brand).
txtRecordsTXT records, each with any matching tag.
mxRecordsMX records, each with any matching tag.
aRecordsIPv4 addresses (A records).
aaaaRecordsIPv6 addresses (AAAA records).
dnssecStatusWhether DNSSEC is enabled, plus algorithm and key details.
spfStatusThe SPF record and whether it is valid.
dmarcStatusThe DMARC record and policy details.
dkimStatusWhether a DKIM selector was found, and which one.
hstsStatusWhether the HSTS header is present and its settings.
hstsPreloadStatusWhether the domain is on the browser HSTS preload list.
mtaStsStatusWhether MTA-STS is configured.
tlsRptStatusWhether TLS-RPT is configured.
whoisDataRegistration details: registrar, dates, status codes, contacts, nameservers.
servicesKnown service associations detected from the domain or its DNS records.

The public API does not include:

  • Past analysis results
  • Change history
  • Security scores
  • Scan records
  • Analytics data
  • Audit logs
  • User information