{
  "openapi": "3.0.1",
  "info": {
    "title": "Email MX & Deliverability Verifier",
    "description": "Check email syntax, MX records, disposable domains and role accounts in pasted lists or Apify datasets. Get risk signals, not inbox guarantees.",
    "version": "0.1",
    "x-build-id": "31MJokF5q2xyRQtp4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetch_cat~email-mx-deliverability-verifier/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetch_cat-email-mx-deliverability-verifier",
        "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/fetch_cat~email-mx-deliverability-verifier/runs": {
      "post": {
        "operationId": "runs-sync-fetch_cat-email-mx-deliverability-verifier",
        "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/fetch_cat~email-mx-deliverability-verifier/run-sync": {
      "post": {
        "operationId": "run-sync-fetch_cat-email-mx-deliverability-verifier",
        "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",
        "properties": {
          "emails": {
            "title": "Email addresses",
            "type": "array",
            "description": "Supply addresses here, in pasted text, or from a dataset; combine sources if useful. At least one nonempty source is needed. The form samples are a prefill, not an API default. Repeated strings are compared without case and checked once; results arrive in completion order.",
            "items": {
              "type": "string"
            }
          },
          "csvText": {
            "title": "CSV or pasted text",
            "type": "string",
            "description": "Paste only address strings separated by commas, semicolons or whitespace. This is not a full CSV-file parser: headers and other columns would also be checked as candidate strings. Can be combined with the other input sources."
          },
          "datasetId": {
            "title": "Input dataset",
            "type": "string",
            "description": "Select an existing Apify dataset with read-only access. Reads up to the first 100,000 rows in one page, using string values from the chosen email field. Other columns are not preserved. Can be combined with addresses or pasted text."
          },
          "datasetEmailField": {
            "title": "Dataset email field",
            "type": "string",
            "description": "Field containing address strings when a dataset is selected; defaults to email. Missing or nonstring field values are skipped. Use letters, digits and underscores, starting with a letter or underscore.",
            "default": "email"
          },
          "checkMx": {
            "title": "Check MX records",
            "type": "boolean",
            "description": "Look up public DNS MX records for syntactically valid addresses. Enabled by default and recommended for useful mail-routing signals. Records are ordered by priority. A false mxFound value can mean the check was disabled; this does not prove the domain has no MX.",
            "default": true
          },
          "includeDisposableCheck": {
            "title": "Flag disposable email domains",
            "type": "boolean",
            "description": "Check against a fixed local list of common temporary or disposable domains. The list is not exhaustive. When disabled, isDisposable is false without checking; that is not proof the address is non-disposable.",
            "default": true
          },
          "checkARecordFallback": {
            "title": "Check A-record fallback",
            "type": "boolean",
            "description": "When no MX has been found, look for an A record as a weak domain signal, including when MX checking is disabled. Enabled by default. A positive result is not a mailbox guarantee; a false value can mean this check was disabled.",
            "default": true
          },
          "dnsProvider": {
            "title": "DNS provider",
            "enum": [
              "google"
            ],
            "type": "string",
            "description": "Google public DNS is the only supported provider. DNS checks use direct requests; no login, SMTP probing or proxy setup is needed.",
            "default": "google"
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Check 1–50 addresses in parallel; default 20. Lower this for small lists. Results are saved in completion order, not guaranteed input order.",
            "default": 20
          },
          "maxRuntimeSecs": {
            "title": "Work budget (seconds)",
            "minimum": 60,
            "maximum": 270,
            "type": "integer",
            "description": "Work budget of 60–270 seconds, default 270. New addresses stop starting when this budget minus the safety margin is reached. Completed rows are saved progressively; the Actor attempts to save pending counts and a resume input in RUN_SUMMARY.",
            "default": 270
          },
          "runtimeSafetySecs": {
            "title": "Runtime safety margin (seconds)",
            "minimum": 30,
            "maximum": 120,
            "type": "integer",
            "description": "Reserve 30–120 seconds, default 30, within the work budget for finishing work and attempting to save RUN_SUMMARY. Keep this lower than the work budget. Summary storage is best-effort; review saved row outcomes as well as run status.",
            "default": 30
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}