{
  "openapi": "3.0.1",
  "info": {
    "title": "Event Discovery Feed",
    "description": "Deduped B2B event feed from Luma, Meetup, conferences & iCal — venue, tickets, organizers, speakers/sponsors/exhibitors, ICP score & change tracking.",
    "version": "1.1",
    "x-build-id": "NrngM1I6YaY8boa2M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rational_opaque~event-discovery-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rational_opaque-event-discovery-feed",
        "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/rational_opaque~event-discovery-feed/runs": {
      "post": {
        "operationId": "runs-sync-rational_opaque-event-discovery-feed",
        "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/rational_opaque~event-discovery-feed/run-sync": {
      "post": {
        "operationId": "run-sync-rational_opaque-event-discovery-feed",
        "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": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which source adapters to run. iCal feeds run whenever iCal feed URLs are set, even if this list omits them.",
            "items": {
              "type": "string",
              "enum": [
                "luma",
                "meetup",
                "conference",
                "industry"
              ]
            },
            "default": [
              "luma",
              "meetup"
            ]
          },
          "keywords": {
            "title": "Topics / keywords",
            "type": "array",
            "description": "Topics to search for, e.g. AI, SaaS, fintech. An event is kept when its public name, description, or topics match at least one keyword. Leave empty to skip the keyword filter.",
            "default": [
              "AI",
              "SaaS"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Cities / countries",
            "type": "array",
            "description": "City or country names, e.g. Bengaluru, London, United States. Leave empty for global results. Online events are kept when Include online events is on.",
            "default": [
              "San Francisco"
            ],
            "items": {
              "type": "string"
            }
          },
          "includeOnline": {
            "title": "Include online events",
            "type": "boolean",
            "description": "Include virtual events. When cities are set, online events are still kept if this is on. Hybrid and in-person events must match a city or country.",
            "default": true
          },
          "startDateFrom": {
            "title": "From date",
            "type": "string",
            "description": "Earliest event start (YYYY-MM-DD). Default: today (UTC)."
          },
          "startDateTo": {
            "title": "To date",
            "type": "string",
            "description": "Latest event start (YYYY-MM-DD). Default: 90 days from today (UTC)."
          },
          "lumaCalendarUrls": {
            "title": "Luma calendar URLs",
            "type": "array",
            "description": "Optional public lu.ma or luma.com calendar or event URLs to always include.",
            "items": {
              "type": "string"
            }
          },
          "meetupGroupUrls": {
            "title": "Meetup group URLs",
            "type": "array",
            "description": "Optional public Meetup group URLs to track. The actor reads the public events listing and does not open attendee lists.",
            "items": {
              "type": "string"
            }
          },
          "conferenceUrls": {
            "title": "Conference schedule URLs",
            "type": "array",
            "description": "Public conference or calendar pages (JSON-LD, iCal, or HTML listings). A row may be a URL, or a JSON object string with url, listSelector, nameSelector, dateSelector, and optional linkSelector.",
            "items": {
              "type": "string"
            }
          },
          "industrySites": {
            "title": "Industry sites",
            "type": "array",
            "description": "Built-in industry listing adapters to run. confs.tech and dev.events are enabled. Eventbrite, AllEvents, and 10times stay disabled until their Terms allow them.",
            "items": {
              "type": "string",
              "enum": [
                "eventbrite_public",
                "confs_tech",
                "dev_events",
                "tenTimes_public",
                "allevents"
              ]
            }
          },
          "icsFeeds": {
            "title": "iCal feeds",
            "type": "array",
            "description": "Public .ics feed URLs. Each feed is fetched with a plain GET and parsed as iCalendar.",
            "items": {
              "type": "string"
            }
          },
          "extractSpeakers": {
            "title": "Extract speakers / sponsors / exhibitors",
            "type": "boolean",
            "description": "Open each event detail page and linked public /speakers, /sponsors, and /exhibitors pages, then fill those arrays. Charges event-enriched when the detail fetch succeeds. Turn off for listing-only runs.",
            "default": true
          },
          "enrichMaxPerRun": {
            "title": "Max events to enrich",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Cap how many events get speaker, sponsor, and exhibitor enrichment this run. 0 enriches none.",
            "default": 100
          },
          "relevanceProfile": {
            "title": "ICP description",
            "type": "string",
            "description": "Describe your ICP or product. Each event gets a 0-100 relevanceScore and a short reason. When LLM_API_KEY is set, scoring uses that model and charges event-relevance-scored. Otherwise a lexical overlap score is used and that event is not charged."
          },
          "minRelevanceScore": {
            "title": "Min ICP score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop events below this score when ICP description is set. 0 keeps every scored event. Typical range: 60-75.",
            "default": 60
          },
          "sortByRelevance": {
            "title": "Sort by ICP score",
            "type": "boolean",
            "description": "Push the highest relevanceScore first when ICP description is set.",
            "default": true
          },
          "onlyChanges": {
            "title": "Only new/changed",
            "type": "boolean",
            "description": "Output only events that are new or changed since the last run with the same state key. Changed rows also charge change-detected.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Key inside the named key-value store event-discovery-state. Use one stable key per schedule so change tracking compares the same feed.",
            "default": "default"
          },
          "maxEvents": {
            "title": "Max events",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on events written to the dataset. Also caps event-found charges.",
            "default": 200
          },
          "maxRequestsPerDomainPerMinute": {
            "title": "Rate limit / domain / min",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Politeness throttle per domain. Source adapters may use a lower cap than this.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify proxy settings. Residential or datacenter proxy is on by default. If the proxy cannot be started, the run continues with a direct connection and a warning.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}