{
  "openapi": "3.0.1",
  "info": {
    "title": "Tresor Berlin Events Scraper",
    "description": "Scrape upcoming Tresor Berlin techno club events: date, title, floor-by-floor DJ lineups with set times, description, ticket link and image. Filter by date range, event URL or artist name, up to 100 events per run, sorted earliest first.",
    "version": "0.9",
    "x-build-id": "k8FYT8RBkTuBaInAR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~tresor-berlin-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-tresor-berlin-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/axiomworks~tresor-berlin-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-tresor-berlin-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/axiomworks~tresor-berlin-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-tresor-berlin-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": {
          "maxItems": {
            "title": "Maximum events (1-100)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of event records to save, e.g. 5. Integer 1-100, default 50, shared across all startUrls. Without startUrls, collects listed events from today in Berlin, earliest first. Returns fewer when fewer events are available; missing or blocked pages are skipped.",
            "default": 50
          },
          "fromDate": {
            "title": "From date (YYYY-MM-DD)",
            "type": "string",
            "description": "Earliest included event date, e.g. \"2026-10-15\" or \"15.10.2026\". Accepts YYYY-MM-DD and DD.MM.YYYY. Omit or use an empty string for today in Berlin (or toDate if it is earlier than today). Ignored with nonempty startUrls. A valid range with no listed events succeeds with zero records; widen or clear the dates."
          },
          "toDate": {
            "title": "To date (YYYY-MM-DD)",
            "type": "string",
            "description": "Latest included event date, e.g. \"2026-10-31\" or \"31.10.2026\". Accepts YYYY-MM-DD and DD.MM.YYYY. Omit or use an empty string for no upper limit. Must be on or after an explicitly supplied fromDate. Ignored with nonempty startUrls. No matching listed events returns zero records; widen or clear the range."
          },
          "includeDescription": {
            "title": "Include full description (true/false)",
            "type": "boolean",
            "description": "true (default) returns the full guest info and ticket policy text; false returns only a preview of about 200 characters. Example: false.",
            "default": true
          },
          "startUrls": {
            "title": "Event URLs (strings or URL objects)",
            "type": "array",
            "description": "Event URLs as strings or {\"url\":\"https://tresorberlin.com/event/20261014-tresor-new-faces-hosted-by-push-network/\"} objects. Nonempty lists scrape only these pages, ignoring dates; empty or omitted lists use the sitemap. HTTP, www and language-prefixed event URLs are accepted. Invalid hosts or paths fail input validation. Missing, unpublished or blocked pages are skipped; all missing returns zero records. Remove startUrls to discover upcoming events.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "eventIds": {
            "title": "Event slugs or output IDs",
            "type": "array",
            "description": "Event slugs or saved output ids, e.g. [\"tresor-20261014-tresor-new-faces-hosted-by-push-network\"]. At most 100. Combines with startUrls and shares maxItems; duplicates are saved once. Nonempty ids select only these events and ignore dates. Missing or blocked events are skipped; all missing succeeds with zero records. Empty by default.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Artist, floor or event title filter",
            "type": "string",
            "description": "Text to match within an artist name, floor name or event title, e.g. \"Preta\" or \"New Faces\". Up to 200 characters; ignores case and accents. Empty by default includes all events. Applies after date or explicit URL/id selection, before enrichment and saving. maxItems counts matching results only; no match succeeds with zero records.",
            "default": ""
          },
          "enrich": {
            "title": "AI event series label (true/false)",
            "type": "boolean",
            "description": "Whether to classify eventType with a third-party AI processor, e.g. true. Boolean, default false. Labels: Klubnacht, New Faces, Tresor meets, Anniversary/special, Other. Successful labels trigger the additional enriched-result event; failed or unavailable enrichment leaves eventType null. See the Pricing tab.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy settings (object, optional)",
            "type": "object",
            "description": "Proxy settings for Tresor requests, e.g. {\"useApifyProxy\":true}. Default {\"useApifyProxy\":false} makes direct requests. Enable Apify Proxy if the site blocks requests with HTTP 403/429. Retries use fresh proxy sessions; pages still blocked are skipped, and a run with none available succeeds with zero records and retry guidance.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}