Email DNS & DMARC Change Monitor
Pricing
from $2.50 / 1,000 domain checks
Email DNS & DMARC Change Monitor
Monitor SPF, DMARC, MX, and DKIM records, detect configuration changes between runs, and flag email security regressions.
Email DNS & DMARC Change Monitor
Pricing
from $2.50 / 1,000 domain checks
Monitor SPF, DMARC, MX, and DKIM records, detect configuration changes between runs, and flag email security regressions.
You can access the Email DNS & DMARC Change Monitor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "aRu5bFkmHIXt6caQB" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/ironstark_daysky~email-dns-drift-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-ironstark_daysky-email-dns-drift-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/ironstark_daysky~email-dns-drift-monitor/runs": { "post": { "operationId": "runs-sync-ironstark_daysky-email-dns-drift-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/ironstark_daysky~email-dns-drift-monitor/run-sync": { "post": { "operationId": "run-sync-ironstark_daysky-email-dns-drift-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "required": [ "domains" ], "properties": { "domains": { "title": "Domains", "type": "array", "description": "Domains to check. Accepts bare domains (example.com), URLs (https://example.com/path) or email addresses (user@example.com) - the hostname is extracted. Maximum 100 domains per run.", "default": [ "apify.com" ], "items": { "type": "string" } }, "mode": { "title": "Mode", "enum": [ "scan", "monitor" ], "type": "string", "description": "scan = one-off check, never touches the stored baseline. monitor = compare against the stored baseline for this monitor ID, report drift, then update the baseline.", "default": "scan" }, "monitorId": { "title": "Monitor ID", "type": "string", "description": "Required in monitor mode. Identifies an isolated baseline namespace so several monitors can coexist in one account. Allowed characters: letters, digits, dash and underscore (1-64 chars)." }, "dkimSelectors": { "title": "DKIM selectors (all domains)", "type": "array", "description": "DKIM selectors to probe on every domain, e.g. 'google', 'selector1', 'k1'. DKIM selectors are NOT enumerable via DNS - only the selectors you list here are checked.", "default": [], "items": { "type": "string" } }, "dkimSelectorsByDomain": { "title": "DKIM selectors (per domain)", "type": "object", "description": "Extra DKIM selectors for specific domains, e.g. {\"example.com\": [\"selector1\", \"selector2\"]}. Merged with the global list.", "default": {} }, "resolverTimeoutSeconds": { "title": "Resolver timeout (seconds)", "minimum": 1, "maximum": 30, "type": "integer", "description": "Per-query DNS timeout. Lower values finish faster but raise the UNKNOWN rate on slow authoritative servers.", "default": 5 }, "maxConcurrency": { "title": "Max concurrency", "minimum": 1, "maximum": 50, "type": "integer", "description": "How many domains are resolved in parallel. Keep it moderate to avoid hammering resolvers.", "default": 10 }, "baselineStoreName": { "title": "Baseline key-value store name", "type": "string", "description": "Named key-value store used to persist baselines between runs. Change it only if you want fully separate storage.", "default": "email-dns-baselines" } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Email DNS & DMARC Change Monitor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: