{
  "openapi": "3.0.1",
  "info": {
    "title": "Europe Events & Group-Accommodation Demand Scraper",
    "description": "European group-accommodation demand in one feed: TED procurement notices (precision) + conferenceindex listings (volume), de-templated and deduped. Per row: source, title, city, country, category, room-block fit 1-5, urgency, routing thesis. For hotel sales and MICE connectors.",
    "version": "2.0",
    "x-build-id": "xHk8coriGNcjB1PgQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/belcaidsaad~europe-events-demand/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-belcaidsaad-europe-events-demand",
        "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/belcaidsaad~europe-events-demand/runs": {
      "post": {
        "operationId": "runs-sync-belcaidsaad-europe-events-demand",
        "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/belcaidsaad~europe-events-demand/run-sync": {
      "post": {
        "operationId": "run-sync-belcaidsaad-europe-events-demand",
        "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": {
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which sources to pull. TED = procurement notices (precision). conferenceindex = upcoming events (volume).",
            "items": {
              "type": "string"
            },
            "default": [
              "TED",
              "conferenceindex"
            ]
          },
          "countries": {
            "title": "Countries (ISO3)",
            "type": "array",
            "description": "Restrict by ISO3 (DEU, FRA, ESP, ITA, GBR, NLD, BEL, PRT, AUT, CHE, IRL, POL, SWE, NOR, DNK, FIN, GRC, CZE, HUN, ROU, HRV, BGR, SVK, SVN, LTU, LVA, EST, LUX). Empty = all Europe.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "minRoomBlockScore": {
            "title": "Minimum Room-Block Score",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Drop signals below this room-block fit (1-5). 3 strips procurement noise + low-fit events.",
            "default": 3
          },
          "minUrgency": {
            "title": "Minimum Urgency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Drop signals below this urgency (1-5).",
            "default": 1
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap on signals returned (after sorting hottest-first).",
            "default": 20000
          },
          "dropTemplatedMinCities": {
            "title": "Drop Templated (min cities)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Drop conferenceindex auto-generated academic titles that recur across this many cities. 0 = keep all. 5 is a good default.",
            "default": 5
          },
          "publishedAfterDays": {
            "title": "TED: Published Within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "TED only. Drop notices older than this (server-side). TED 'ACTIVE' keeps old framework notices, so set ~180 for live demand. 0 = keep all.",
            "default": 180
          },
          "cpvCodes": {
            "title": "TED: CPV Codes",
            "type": "array",
            "description": "TED CPV codes to query (hotel / congress / event / seminar services).",
            "items": {
              "type": "string"
            },
            "default": [
              "55120000",
              "55110000",
              "55100000",
              "55270000",
              "98341000",
              "79950000",
              "79952000",
              "79952100",
              "79951000"
            ]
          },
          "scope": {
            "title": "TED: Scope",
            "enum": [
              "ACTIVE",
              "LATEST",
              "ALL"
            ],
            "type": "string",
            "description": "TED notice scope.",
            "default": "ACTIVE"
          },
          "tedPageSize": {
            "title": "TED: Page Size",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "Procurement notices fetched per TED API request. Higher = fewer requests.",
            "default": 100
          },
          "tedMaxPages": {
            "title": "TED: Max Pages",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Cap on TED pagination. More pages = more procurement notices.",
            "default": 40
          },
          "maxPagesPerCountry": {
            "title": "conferenceindex: Max Pages per Country",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "More pages = more events per country.",
            "default": 5
          },
          "monthsAhead": {
            "title": "conferenceindex: Months Ahead",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Keep only events within this many months. 0 = no horizon cap.",
            "default": 0
          },
          "upcomingOnly": {
            "title": "conferenceindex: Upcoming Only",
            "type": "boolean",
            "description": "Drop events whose date is already in the past.",
            "default": true
          },
          "politeDelayMs": {
            "title": "Polite Delay Between Requests (ms)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Throttle between requests. Raise if sources rate-limit (locally use 300-500; on Apify with proxy lower is fine).",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}