{
  "openapi": "3.0.1",
  "info": {
    "title": "Luma Events Scraper – City, Category & Calendar",
    "description": "Scrape public Luma (lu.ma / luma.com) events in any city, by category, keyword, community calendar or event URL. Get dates, venue, coordinates, price, RSVPs, organizers and hosts as CSV or JSON. Fast public JSON API, no browser, no login. Schedule daily or call from Python.",
    "version": "1.0",
    "x-build-id": "eiloxuM0NsKeTKPOr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/refillflows~luma-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-refillflows-luma-events-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/refillflows~luma-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-refillflows-luma-events-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/refillflows~luma-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-refillflows-luma-events-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",
        "properties": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities or \"lat,lon\" pairs to search around. Any city works: Luma's featured cities (sf, nyc, london, bengaluru, berlin, singapore...) resolve instantly, others are geocoded via OpenStreetMap.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Search radius around each location.",
            "default": 25
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional Luma categories to search in each location. Leave empty to get all events.",
            "items": {
              "type": "string",
              "enum": [
                "ai",
                "tech",
                "crypto",
                "climate",
                "arts",
                "food",
                "fitness",
                "wellness",
                "running",
                "books",
                "games",
                "family"
              ],
              "enumTitles": [
                "AI",
                "Tech",
                "Crypto",
                "Climate",
                "Arts & Culture",
                "Food & Drink",
                "Fitness",
                "Wellness",
                "Running",
                "Books",
                "Games",
                "Family"
              ]
            },
            "default": []
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Optional keywords (e.g. \"hackathon\", \"founders\", \"web3\") searched in each location.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "calendarUrls": {
            "title": "Calendar (community) URLs",
            "type": "array",
            "description": "Luma calendar pages to pull all upcoming events from, e.g. https://luma.com/genai-sf",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "eventUrls": {
            "title": "Event URLs",
            "type": "array",
            "description": "Individual Luma event pages, e.g. https://luma.com/abc123. Description is included for free.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "Start date (from)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}.*$",
            "type": "string",
            "description": "Only events starting on/after this date (YYYY-MM-DD)."
          },
          "endDate": {
            "title": "End date (to)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}.*$",
            "type": "string",
            "description": "Only events starting on/before this date (YYYY-MM-DD)."
          },
          "onlyFree": {
            "title": "Only free events",
            "type": "boolean",
            "description": "Skip paid events.",
            "default": false
          },
          "includeOnline": {
            "title": "Include online events",
            "type": "boolean",
            "description": "Keep virtual/online events in the results.",
            "default": true
          },
          "maxItems": {
            "title": "Max events (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many unique events. Also caps your cost.",
            "default": 200
          },
          "maxItemsPerSource": {
            "title": "Max events per location/category/query",
            "minimum": 1,
            "type": "integer",
            "description": "Cap per individual search.",
            "default": 500
          },
          "includeDetails": {
            "title": "Include full description & ticket types",
            "type": "boolean",
            "description": "Fetch each event page for the full description and all ticket tiers. Slower, billed as an extra 'event-details' event.",
            "default": false
          },
          "includeHostSocials": {
            "title": "Include host bios & social links",
            "type": "boolean",
            "description": "Add hosts' public bio, website and LinkedIn/X/Instagram links. These may be personal data: only enable if you have a lawful basis (e.g. GDPR legitimate interest) to process them.",
            "default": false
          },
          "requestDelayMs": {
            "title": "Delay between pages (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Politeness delay between API pages.",
            "default": 400
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Datacenter proxy helps on very large runs if Luma rate-limits.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}