{
  "openapi": "3.0.1",
  "info": {
    "title": "X/Twitter Lead Email Finder",
    "description": "Find and extract business emails from X/Twitter profiles using handles, profile URLs, or keywords. Build targeted lead lists with profile details, websites, follower data, and contact emails for sales prospecting, outreach, recruitment, and B2B lead generation.",
    "version": "0.1",
    "x-build-id": "zcShC7h5BW3dA884F"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~twitter-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-twitter-email-scraper",
        "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/scraper-engine~twitter-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-twitter-email-scraper",
        "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/scraper-engine~twitter-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-twitter-email-scraper",
        "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": [
          "searchKeywords"
        ],
        "properties": {
          "searchKeywords": {
            "title": "🔍 Search keywords",
            "type": "array",
            "description": "🎯 The words that power your search! Add one or more keywords (e.g. ['marketing', 'founder', 'business']) and the actor finds public X/Twitter profiles/posts matching them, then 📧 extracts any email addresses it finds. 💡 Tip: more specific keywords = more targeted leads.",
            "items": {
              "type": "string"
            }
          },
          "targetPlatform": {
            "title": "🌐 Platform",
            "enum": [
              "Twitter"
            ],
            "type": "string",
            "description": "🐦 The site to scrape. Currently locked to X/Twitter — more platforms coming soon! 🚀",
            "default": "Twitter"
          },
          "locationFilter": {
            "title": "📍 Location filter",
            "type": "string",
            "description": "🗺️ Optional geo-targeting! Add a city or region (e.g. 'London' 🇬🇧, 'New York' 🗽, 'Tokyo' 🗼) to narrow results to profiles/posts mentioning that place. ✨ Leave empty to search the whole globe 🌍.",
            "default": ""
          },
          "emailDomainFilter": {
            "title": "📧 Email domain filter",
            "type": "array",
            "description": "🎛️ Keep only emails from the domains you care about — type as many as you like! ✍️ Popular picks: 📮 @gmail.com · 📨 @outlook.com · 💌 @hotmail.com · 💜 @yahoo.com · ☁️ @icloud.com · 📬 @aol.com · 🔒 @protonmail.com · 📥 @live.com · 📧 @gmx.com · 🟡 @yandex.com · 📗 @zoho.com. 🏢 Custom/business domains work too — e.g. @yourbrand.com. 🕳️ Leave empty to collect emails from ALL domains. 💡 Adding a domain also sharpens the search 🎯, and also earns a small confidence-score bonus since it's an explicit match.",
            "items": {
              "type": "string"
            }
          },
          "maxEmailsPerKeyword": {
            "title": "📊 Maximum emails per keyword",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "🎚️ How many raw hits to collect per keyword before moving on (before cross-keyword dedup). ⚡ Higher = more leads but longer runs. Default is 10 ✅ (range 1 – 100,000).",
            "default": 10
          },
          "resultTypeFilter": {
            "title": "🧩 Result type filter",
            "type": "array",
            "description": "🗂️ Only keep results of this type: a 'profile' page bio is a durable, intentional contact; a 'tweet' is a one-off mention in a post. Leave empty to keep both.",
            "items": {
              "type": "string",
              "enum": [
                "profile",
                "tweet"
              ]
            },
            "default": []
          },
          "minConfidenceScore": {
            "title": "✅ Minimum confidence score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "🧮 Drop leads whose computed confidence score (0-100, based on result type, contact-intent phrasing, local-part quality, domain-filter match, MX validity, and cross-keyword corroboration) falls below this. Leave empty to keep everything."
          },
          "verifyEmailDomains": {
            "title": "🔬 Verify email domains (MX lookup)",
            "type": "boolean",
            "description": "🌐 Look up each discovered domain's mail (MX) records once per run (cached per domain) and report whether it can plausibly receive mail. Adds a small amount of run time; strongly improves lead quality signal.",
            "default": true
          },
          "scraperEngine": {
            "title": "⚙️ Scraper engine",
            "enum": [
              "legacy"
            ],
            "type": "string",
            "description": "🔧 The processing engine. Currently 'legacy' 🛡️ — a reliable, battle-tested extraction pipeline. More engines on the roadmap! 🚧",
            "default": "legacy"
          },
          "proxyConfig": {
            "title": "🛡️ Proxy configuration",
            "type": "object",
            "description": "🌐 Control how the actor connects to the internet. 🆓 Leave it empty and the actor auto-selects the best proxy for reliable results. 🔄 On any failed response it rotates the connection and retries up to 3× automatically. 🧠 Advanced users can plug in custom proxies here."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}