{
  "openapi": "3.0.1",
  "info": {
    "title": "District Events Scraper: India & UAE Events, Ticket Prices",
    "description": "Events, concerts, comedy, nightlife, workshops and activities from District by Zomato (formerly Paytm Insider) in India and the UAE: every show date, ticket tier price and sold-out status, venue with GPS, organizer rating, lineup. By city, category, keyword, full catalog or links. No login.",
    "version": "0.1",
    "x-build-id": "GxxoXmghuYnacrZaZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~district-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-district-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/yugenox~district-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-district-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/yugenox~district-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-district-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "city",
              "search",
              "catalog",
              "urls"
            ],
            "type": "string",
            "description": "<b>Events in cities</b>: what District shows for each city, in District's own order, optionally only some categories.<br><b>Search</b>: events matching an artist, show, festival or venue name.<br><b>Whole catalog</b>: every event page District publishes (about 7,300 in India and the UAE), optionally only some cities.<br><b>Event links</b>: specific District event pages, for example to track prices and sold-out tiers.",
            "default": "city"
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Cities in India or the UAE, e.g. \"Mumbai\", \"Delhi NCR\", \"Bengaluru\", \"Pune\", \"Dubai\", \"Abu Dhabi\", or \"latitude, longitude\". The site (district.in or district.ae) is picked automatically. A city includes its metro area (Delhi NCR also returns Gurugram and Noida; Dubai also returns Sharjah) unless <i>Only this exact city</i> is on. Used by <i>Events in cities</i>, as the search location in <i>Search</i>, and as a filter in <i>Whole catalog</i>.",
            "items": {
              "type": "string"
            }
          },
          "section": {
            "title": "Events or activities",
            "enum": [
              "events",
              "activities",
              "both"
            ],
            "type": "string",
            "description": "<i>Events in cities</i> only. <b>Events</b>: concerts, comedy, nightlife, theatre, festivals and more. <b>Activities</b>: workshops, game zones, theme and water parks, museums, adventure, kids' play. <b>Both</b>: one list for each.",
            "default": "events"
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "<i>Events in cities</i> only (replaces the section above). District's categories, e.g. Music, Comedy, Nightlife, Food & Drinks, Social Mixers, Performances, Theatre, Screenings, Conferences & Talks, Sports, Fests & Fairs, Art Exhibitions, Open Mics, Workshops, Game Zones, Theme Parks, Water Parks, Museums, Adventure, Kids Play. Leave empty for everything.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Search terms",
            "type": "array",
            "description": "For <i>Search</i>: artists, shows, festivals or venues, e.g. \"sunburn\", \"coldplay\", \"stand up comedy\", \"navratri\".",
            "items": {
              "type": "string"
            }
          },
          "searchCatalog": {
            "title": "Search the whole catalog too",
            "type": "boolean",
            "description": "District's own search returns at most 20 events per term and place. With this on, the term is also matched against every event page in District's catalog, which finds many more. Only live events are kept.",
            "default": true
          },
          "eventUrls": {
            "title": "Event links",
            "type": "array",
            "description": "For <i>Event links</i>: district.in or district.ae event pages (https://www.district.in/events/…-buy-tickets), insider.in event links, or bare event slugs. Ended and cancelled events are still returned for links you give, with their status.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "both",
              "IN",
              "AE"
            ],
            "type": "string",
            "description": "For <i>Whole catalog</i> (which catalog to read) and for <i>Search</i> when no city is given (then Mumbai and/or Dubai).",
            "default": "both"
          },
          "urlContains": {
            "title": "Catalog link contains",
            "type": "string",
            "description": "<i>Whole catalog</i> only: keep event links containing this text, e.g. \"comedy\", \"mumbai\", \"2026\"."
          },
          "maxItems": {
            "title": "Max events",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many events in total. 0 = no limit.",
            "default": 200
          },
          "maxItemsPerCity": {
            "title": "Max events per city",
            "minimum": 0,
            "type": "integer",
            "description": "<i>Events in cities</i>: at most this many events per city and list (events, activities, or each category). Big cities have well over 1,000 events. 0 = no limit.",
            "default": 200
          },
          "dateFrom": {
            "title": "From date",
            "type": "string",
            "description": "Only events with a show on or after this date: YYYY-MM-DD, \"today\", \"tomorrow\" or \"7 days\". Show lists are trimmed to the dates too."
          },
          "dateTo": {
            "title": "To date",
            "type": "string",
            "description": "Only events with a show on or before this date: YYYY-MM-DD, \"today\", \"tomorrow\", \"7 days\" or \"2 weeks\"."
          },
          "strictCity": {
            "title": "Only this exact city",
            "type": "boolean",
            "description": "Drop events in neighbouring cities of the metro area (e.g. keep Delhi, drop Gurugram and Noida).",
            "default": false
          },
          "includePast": {
            "title": "Include ended events",
            "type": "boolean",
            "description": "The catalog still lists events whose last show is over. Off = skip them (links you give are always returned).",
            "default": false
          },
          "includeCancelled": {
            "title": "Include cancelled events",
            "type": "boolean",
            "description": "Off = skip cancelled events (links you give are always returned).",
            "default": false
          },
          "includeDetails": {
            "title": "Full event details",
            "type": "boolean",
            "description": "Open every event for its shows, ticket tiers, venue address, organizer, lineup, description and guide. Off = listing data only (name, date, price text, venue, city, coordinates, rating), much faster. Always on for catalog and links.",
            "default": true
          },
          "includeTicketTiers": {
            "title": "Ticket tiers for each show",
            "type": "boolean",
            "description": "Every tier of every show: price, strike price, available / sold out, max per order, sales end, fees and taxes. Off = show dates only (the price range and sold-out counts are still filled in).",
            "default": true
          },
          "maxShowsPerEvent": {
            "title": "Max shows per event",
            "minimum": 0,
            "type": "integer",
            "description": "Recurring events and activities can have hundreds of time slots. List at most this many upcoming shows per event (the summary fields still cover all of them). 0 = all.",
            "default": 20
          },
          "includeDescriptionHtml": {
            "title": "Description as HTML too",
            "type": "boolean",
            "description": "Add the original HTML description next to the plain-text one.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Event pages fetched in parallel.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy's automatic (datacenter) group works and is the cheapest. The actor switches to residential proxies in India or the UAE on its own if it gets blocked and your Apify plan includes them.",
            "default": {
              "useApifyProxy": true
            }
          },
          "_noResidential": {
            "title": "Run as an account without residential proxies",
            "type": "boolean",
            "description": "Internal (canaries): behave exactly like an account without the RESIDENTIAL proxy group.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}