{
  "openapi": "3.0.1",
  "info": {
    "title": "Luma Events Scraper (lu.ma) – All Events in a City",
    "description": "All public Luma (lu.ma) events in a city, not just the featured list (SF: ~450 a week instead of ~30). By city, category, keyword or calendar: time zone, venue, prices incl. JPY/KRW, tickets, organizer. No duplicates, no personal data.",
    "version": "1.0",
    "x-build-id": "8RBaE2ue9MWGtTNtO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lokalapi~luma-events/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lokalapi-luma-events",
        "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/lokalapi~luma-events/runs": {
      "post": {
        "operationId": "runs-sync-lokalapi-luma-events",
        "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/lokalapi~luma-events/run-sync": {
      "post": {
        "operationId": "run-sync-lokalapi-luma-events",
        "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": {
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Luma cities to get events from, e.g. <code>sf</code>, <code>nyc</code>, <code>london</code>, <code>singapore</code>, <code>jakarta</code>, <code>berlin</code>. Plain names like \"San Francisco\" or \"New York\" work too. Returns all public events in the area around the city (see \"Radius\") plus Luma's featured list for the city, or only the featured list (see \"City events\"). Luma covers about 90 cities; the list is on <a href=\"https://luma.com/discover\" target=\"_blank\">luma.com/discover</a>.",
            "items": {
              "type": "string"
            }
          },
          "cityMode": {
            "title": "City events",
            "enum": [
              "all",
              "featured"
            ],
            "type": "string",
            "description": "<b>All events</b>: every public Luma event in the area around the city (see \"Radius\"), plus Luma's featured list for the city. <b>Featured only</b>: just the short list Luma shows on the city page (in San Francisco about 30 events a week instead of about 450).",
            "default": "all"
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Size of the area around each city for \"All events\" and for categories: Luma searches a square of ± this many km around the city center, like the map on luma.com. 50 km covers a metro area (e.g. San Francisco Bay Area); use 10–20 km for the city itself.",
            "default": 50
          },
          "categories": {
            "title": "Categories (optional, needs a city)",
            "type": "array",
            "description": "Only events of these Luma categories around each city (see \"Radius\"): <code>ai</code>, <code>tech</code>, <code>crypto</code>, <code>arts</code>, <code>climate</code>, <code>fitness</code>, <code>wellness</code>, <code>food</code>, <code>running</code>, <code>books</code>, <code>games</code>, <code>family</code>.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (optional)",
            "type": "array",
            "description": "Search terms, e.g. <code>startup</code>, <code>hackathon</code>, <code>web3</code>. An event matches if one of the keywords appears in its title or description (see \"Keyword matching\").",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword matching",
            "enum": [
              "exact",
              "luma"
            ],
            "type": "string",
            "description": "<b>Exact</b>: a keyword must appear in the event title or description. <b>Luma search</b>: Luma's own search, which also returns loosely related events (more results, less precise). Calendars always use exact matching.",
            "default": "exact"
          },
          "urls": {
            "title": "Luma URLs (optional)",
            "type": "array",
            "description": "Luma calendar pages (all events of a community or company, e.g. <code>https://luma.com/digitalocean</code>), single event pages, or city pages. User profile pages are not supported.",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "From date",
            "type": "string",
            "description": "Earliest event start (UTC): <code>YYYY-MM-DD</code> or relative like <code>+7 days</code>. Default: today. A date in the past also returns past events of calendars."
          },
          "endDate": {
            "title": "To date",
            "type": "string",
            "description": "Latest event start (UTC): <code>YYYY-MM-DD</code> or relative like <code>+30 days</code>. Default: 30 days after the start date."
          },
          "locationType": {
            "title": "Event format",
            "enum": [
              "any",
              "offline",
              "online"
            ],
            "type": "string",
            "description": "In-person events only, online events only, or both.",
            "default": "any"
          },
          "onlyFree": {
            "title": "Free events only",
            "type": "boolean",
            "description": "Skip paid events.",
            "default": false
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Adds a description excerpt, all ticket types with prices and the event's categories (one extra request per event). <b>Price: on = $0.003 per saved event</b> ($0.002 event + $0.001 details), <b>off = $0.002 per saved event</b>. Only events saved to the dataset are charged. Turn off for a cheaper, faster list with date, venue, price range and organizer.",
            "default": true
          },
          "includeFullDescription": {
            "title": "Full description text",
            "type": "boolean",
            "description": "By default the description is a plain-text excerpt of about 300 characters plus the event URL, because event descriptions are the organizers' own texts. Turn on to get the full plain text, e.g. for search or classification; make sure your use of the text is covered (see FAQ). Needs \"Include details\".",
            "default": false
          },
          "maxEvents": {
            "title": "Max events",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many events (1–5,000). Cost: up to maxEvents × $0.003 with details, × $0.002 without (e.g. 100 events ≤ $0.30). The run also stops before the maximum total charge you set for the run is exceeded.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}