{
  "openapi": "3.0.1",
  "info": {
    "title": "Bulk Email List Cleaner — MX, Disposable & Typo Checks",
    "description": "Clean email lists before paid mailbox verification. Check syntax and DNS mail routes, flag disposable and role addresses, suggest domain typo fixes, skip duplicates, and export clear reasons. Paste emails, CSV, or an Apify dataset. No SMTP or email sends.",
    "version": "0.0",
    "x-build-id": "cqNsGWeG3gOuQL9BI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/saahir-job-data~bulk-email-list-cleaner/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-saahir-job-data-bulk-email-list-cleaner",
        "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/saahir-job-data~bulk-email-list-cleaner/runs": {
      "post": {
        "operationId": "runs-sync-saahir-job-data-bulk-email-list-cleaner",
        "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/saahir-job-data~bulk-email-list-cleaner/run-sync": {
      "post": {
        "operationId": "run-sync-saahir-job-data-bulk-email-list-cleaner",
        "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",
            "maxItems": 100000,
            "type": "array",
            "description": "Paste addresses, one per item. Clear these examples when using CSV or a dataset. Up to 100000 input rows; defaults stop at 10000 results. No email messages are sent.",
            "items": {
              "type": "string"
            }
          },
          "csvText": {
            "title": "CSV text (alternative input)",
            "type": "string",
            "description": "Paste CSV with an email column, up to 8 MB. Clear the Email addresses field first. Comma, semicolon and tab delimiters supported."
          },
          "sourceDatasetId": {
            "title": "Source dataset (alternative input)",
            "type": "string",
            "description": "Choose an Apify dataset containing an email field. Read-only access to this selected dataset. Clear example addresses first."
          },
          "emailField": {
            "title": "Email column / field",
            "type": "string",
            "description": "Exact top-level CSV column or dataset field name; nested fields and dots are not supported.",
            "default": "email"
          },
          "maxResults": {
            "title": "Maximum completed checks",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stops after this many delivered results; duplicates are skipped by default.",
            "default": 10000
          },
          "maxInputRows": {
            "title": "Maximum input rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Includes duplicates and unresolved rows. Check REPORT for partial completion.",
            "default": 50000
          },
          "maxDomains": {
            "title": "Maximum distinct domains",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Domains beyond this limit are unresolved and are not charged as results.",
            "default": 5000
          },
          "maxSeconds": {
            "title": "Processing time budget (seconds)",
            "minimum": 5,
            "maximum": 240,
            "type": "integer",
            "description": "DNS work stops at this limit; export and platform operations add overhead.",
            "default": 120
          },
          "concurrency": {
            "title": "Concurrent DNS requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Bounded concurrency. Repeated domains share DNS results within the run.",
            "default": 12
          },
          "deduplicate": {
            "title": "Skip duplicate addresses",
            "type": "boolean",
            "description": "Within this run only. Duplicate rows are not billed when enabled.",
            "default": true
          },
          "caseInsensitiveDedupe": {
            "title": "Ignore local-part case for deduplication",
            "type": "boolean",
            "description": "Optional: merge Alice and alice. Default preserves local-part case; domain case is always normalized. Gmail dots and plus tags remain distinct.",
            "default": false
          },
          "excludeDisposable": {
            "title": "Recommend excluding disposable addresses",
            "type": "boolean",
            "description": "Uses the bundled public blocklist. Coverage is not exhaustive.",
            "default": true
          },
          "excludeRoleBased": {
            "title": "Recommend excluding role addresses",
            "type": "boolean",
            "description": "Flags sales, info, support and similar mailboxes. A role address is not inherently invalid.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}