{
  "openapi": "3.0.1",
  "info": {
    "title": "Bulk Email Validator & Checker – MX, Disposable & Typo",
    "description": "Bulk email validator: syntax, DNS/MX, disposable, role and typo checks with a 0-100 score. Fast, cheap list cleaning, no SMTP - cannot confirm a mailbox exists.",
    "version": "0.1",
    "x-build-id": "iy6BRSquqPckFe2AG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/far003~email-validator-mx-disposable/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-far003-email-validator-mx-disposable",
        "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/far003~email-validator-mx-disposable/runs": {
      "post": {
        "operationId": "runs-sync-far003-email-validator-mx-disposable",
        "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/far003~email-validator-mx-disposable/run-sync": {
      "post": {
        "operationId": "run-sync-far003-email-validator-mx-disposable",
        "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": "Emails",
            "type": "array",
            "description": "The addresses to check, one per entry. Up to 100,000 here; for bigger lists put them in a dataset and use \"Dataset ID\". Spaces around an address are ignored, empty and non-text entries are skipped for free.",
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Dataset ID (optional)",
            "type": "string",
            "description": "Read the addresses from a dataset of your own Apify account instead of, or in addition to, the list above. Pick it from the list or paste its ID. Rows are read after the typed list. A field that holds a list of texts gives one row per text."
          },
          "emailField": {
            "title": "Email field in the dataset",
            "type": "string",
            "description": "Name of the field that holds the address in each dataset row. A path with dots such as \"contact.email\" works. The field may be a text or a list of texts; rows where it is missing or not text are skipped for free.",
            "default": "email"
          },
          "checkMx": {
            "title": "Check the domain (DNS / MX)",
            "type": "boolean",
            "description": "Look up the domain: does it exist, does it accept mail (MX, null MX, address fallback)? Turn it off for a syntax-and-lists-only check: much faster, but a made-up domain such as nope.example-xyz.com is not caught, and every address is still judged and charged (score at most 90).",
            "default": true
          },
          "allowDisposable": {
            "title": "Accept disposable domains",
            "type": "boolean",
            "description": "By default an address on a disposable-email domain (mailinator.com and the like) is \"risky\" with a score cut by 60. Turn this on to treat them as normal; the isDisposable flag is still set.",
            "default": false
          },
          "allowRole": {
            "title": "Accept role accounts",
            "type": "boolean",
            "description": "By default a role address (info@, admin@, sales@, noreply@...) is \"risky\" with a score cut by 25: it goes to a team, not a person. Turn this on to treat them as normal; the isRole flag is still set.",
            "default": false
          },
          "normalizeGmail": {
            "title": "Treat Gmail dots and +tags as the same address",
            "type": "boolean",
            "description": "Gmail ignores dots and anything after a plus sign in the part before the @. When on, \"j.doe+news@gmail.com\" and \"jdoe@gmail.com\" get the same normalized value, so they count as duplicates (and as one address for \"Only new\"). The original address is never changed. Off by default because it is a Gmail-specific rule.",
            "default": false
          },
          "dedupe": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Deliver each address once (the first occurrence). The repeats are skipped and free; the SUMMARY counts them. Turn off to get one row per input entry: repeats within the same run are then delivered and charged like any other address.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new emails",
            "type": "boolean",
            "description": "Skip addresses already validated in earlier runs of this Actor on your account, and remember the ones validated now. Only a salted SHA-256 hash of each normalized address is stored (in the key-value store \"email-validator-seen\"), never the address. Skipped emails are free. Emails with status \"unknown\" are not remembered, so they are tried again next time.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum emails to deliver",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many rows have been delivered (free \"unknown\" rows count). Leave empty for no limit. The run also stops, without error, when your spending limit is reached."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}