{
  "openapi": "3.0.1",
  "info": {
    "title": "Event Lead Extractor — Speakers & Attendees",
    "description": "Turn any conference, trade show, or event page into a qualified lead list — complete with emails, phone numbers, social profiles, and lead scores. Paste in event URLs from Eventbrite, Lu.ma, Sched, Bizzabo, or any custom conference website and the actor does the rest.",
    "version": "1.2",
    "x-build-id": "bZh4seMm46veEK6Ac"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ryanclinton~event-lead-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ryanclinton-event-lead-extractor",
        "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/ryanclinton~event-lead-extractor/runs": {
      "post": {
        "operationId": "runs-sync-ryanclinton-event-lead-extractor",
        "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/ryanclinton~event-lead-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-ryanclinton-event-lead-extractor",
        "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": [
          "eventUrls"
        ],
        "properties": {
          "eventUrls": {
            "title": "Event URLs",
            "maxItems": 50,
            "type": "array",
            "description": "URLs of event/conference pages (Eventbrite, Lu.ma, or any event website). Include /sponsors or /speakers pages for best results.",
            "default": [
              "https://www.tech-week.com/"
            ],
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "full",
              "recon",
              "sponsor-hunter",
              "competitive-intel"
            ],
            "type": "string",
            "description": "Run preset. full = crawl + full enrichment (default). recon = fast scan, domains + sponsor tiers + event authority only, no enrichment. sponsor-hunter = keep only sponsors (+ tiers). competitive-intel = keep sponsors, partners & exhibitors, no enrichment (who's at the event, not their contacts). recon and competitive-intel force enrichment off.",
            "default": "full"
          },
          "renderMode": {
            "title": "Render Mode",
            "enum": [
              "auto",
              "http",
              "browser"
            ],
            "type": "string",
            "description": "How event pages are loaded. auto (default): try fast static HTML first, then automatically render any JavaScript-heavy pages (React/Next/Swapcard/Hubilo/ExpoFP) that returned nothing in a real browser. http: static only (fastest, cheapest). browser: render every event page. Browser rendering needs ≥2 GB memory (the default) — on a leaner run it's skipped with a warning.",
            "default": "auto"
          },
          "watchDomains": {
            "title": "Competitor Watchlist",
            "maxItems": 100,
            "type": "array",
            "description": "Optional. Domains to flag when present at an event (e.g. hubspot.com, salesforce.com). Each matching lead gets competitorMatch = true, and the run summary lists matchedCompetitors. www/subdomain variants are matched automatically.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "watchlistName": {
            "title": "Watchlist Name (cross-run tracking)",
            "type": "string",
            "description": "Optional. Name this watchlist to turn on cross-run intelligence. Re-run the same event(s) under the same name (e.g. on a yearly schedule) and each company gets changeFlag (NEW / UNCHANGED / TIER_UPGRADED / TIER_DOWNGRADED) + sponsorMomentum (the buying signal), and the run summary lists newSponsors and lostSponsors since the last run. Leave blank for a one-shot stateless run."
          },
          "discoverSubpages": {
            "title": "Discover Subpages",
            "type": "boolean",
            "description": "Automatically find and crawl /sponsors, /speakers, /exhibitors, /partners pages linked from the event URL.",
            "default": true
          },
          "maxLeadsPerEvent": {
            "title": "Max Leads Per Event",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of company domains to extract per event URL.",
            "default": 50
          },
          "skipEnrichment": {
            "title": "Skip Enrichment",
            "type": "boolean",
            "description": "If enabled, only extract domains without calling enrichment sub-actors (Contact Scraper, Email Pattern Finder, Lead Qualifier). Faster and cheaper. Disable to get full contact data — note: enrichment uses your Apify credits for sub-actor runs.",
            "default": true
          },
          "minAppearanceCount": {
            "title": "Min Appearance Count",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep companies that appeared at at least this many of the run's events. Filtered-out leads are not written to the dataset or charged.",
            "default": 0
          },
          "minSponsorOpportunity": {
            "title": "Min Sponsor Opportunity",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only keep leads whose sponsorOpportunity score (0-100) is at or above this threshold.",
            "default": 0
          },
          "excludeCompetitors": {
            "title": "Exclude Competitors",
            "type": "boolean",
            "description": "When on, drop companies that match your watchDomains watchlist from the output (keep your own competitors out of a prospect list).",
            "default": false
          },
          "requireMomentum": {
            "title": "Require Momentum",
            "enum": [
              "off",
              "upgrading",
              "upgrading-or-new"
            ],
            "type": "string",
            "description": "Only keep leads with cross-run momentum. Requires watchlistName. 'upgrading' = only sponsors that moved up a tier; 'upgrading-or-new' = upgrades plus first-time sponsors. Ignored (with a warning) if no watchlist is set.",
            "default": "off"
          },
          "scoringProfile": {
            "title": "Scoring Profile",
            "enum": [
              "default",
              "sales",
              "marketing",
              "recruiting"
            ],
            "type": "string",
            "description": "Tunes how the lead qualifier weights its categories. Sales: emphasises contact reachability + decision makers. Marketing: emphasises online presence + website quality. Recruiting: emphasises team transparency. Only applies when enrichment is on.",
            "default": "sales"
          },
          "outputProfile": {
            "title": "Output Detail Level",
            "enum": [
              "full",
              "standard",
              "minimal",
              "llm"
            ],
            "type": "string",
            "description": "How much per-lead detail to write to the dataset. Full: every field (default). Standard: drops agent-only diagnostics for a cleaner table. Minimal: the decision surface only (decision, score, readiness, contact channels) for downstream automation. LLM: decision surface + plain-English summary. All analysis still runs internally — this only changes what is written.",
            "default": "full"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings for crawling event pages."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}