{
  "openapi": "3.0.1",
  "info": {
    "title": "Numbeo Scraper",
    "description": "Scrape Numbeo.com with the world's largest cost-of-living, quality-of-life, crime, healthcare, pollution, traffic, and property-price database. Get full price tables, index breakdowns, and city rankings for thousands of cities globally.",
    "version": "1.0",
    "x-build-id": "VeTDhcGZX7HP7vCV0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlergang~numbeo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlergang-numbeo-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/crawlergang~numbeo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlergang-numbeo-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/crawlergang~numbeo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlergang-numbeo-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "costOfLiving",
              "costOfLivingComparison",
              "qualityOfLife",
              "crime",
              "healthCare",
              "pollution",
              "traffic",
              "propertyInvestment",
              "topCities",
              "byUrl"
            ],
            "type": "string",
            "description": "Which Numbeo section to scrape.",
            "default": "costOfLiving"
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name in plain English. Examples: `New York`, `Berlin`, `Tokyo`, `São Paulo`, `Cambridge, MA`. The actor builds the Numbeo URL slug automatically and falls back through alternative slug forms (city-state, bare city) until Numbeo resolves the page.",
            "default": "New York"
          },
          "cities": {
            "title": "Cities (batch)",
            "type": "array",
            "description": "Multiple city names — the actor will scrape each one in turn (combined with `city`).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country1": {
            "title": "Country 1 (comparison mode)",
            "enum": [
              "",
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "Germany",
              "France",
              "Italy",
              "Spain",
              "Netherlands",
              "Belgium",
              "Switzerland",
              "Austria",
              "Sweden",
              "Norway",
              "Denmark",
              "Finland",
              "Ireland",
              "Portugal",
              "Greece",
              "Poland",
              "Czech Republic",
              "Hungary",
              "Romania",
              "Bulgaria",
              "Croatia",
              "Slovenia",
              "Slovakia",
              "Estonia",
              "Latvia",
              "Lithuania",
              "Iceland",
              "Luxembourg",
              "Malta",
              "Cyprus",
              "Russia",
              "Ukraine",
              "Turkey",
              "Israel",
              "United Arab Emirates",
              "Saudi Arabia",
              "Qatar",
              "Kuwait",
              "Bahrain",
              "Oman",
              "Egypt",
              "Morocco",
              "South Africa",
              "Nigeria",
              "Kenya",
              "Brazil",
              "Argentina",
              "Chile",
              "Colombia",
              "Peru",
              "Mexico",
              "China",
              "Japan",
              "South Korea",
              "Taiwan",
              "Hong Kong",
              "Singapore",
              "Malaysia",
              "Thailand",
              "Vietnam",
              "Indonesia",
              "Philippines",
              "India",
              "Pakistan",
              "Bangladesh",
              "New Zealand"
            ],
            "type": "string",
            "description": "Country of city 1 — full English name (e.g., `United States`).",
            "default": "United States"
          },
          "city1": {
            "title": "City 1 (comparison mode)",
            "type": "string",
            "description": "First city in the comparison (e.g. `New York, NY`)."
          },
          "country2": {
            "title": "Country 2 (comparison mode)",
            "enum": [
              "",
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "Germany",
              "France",
              "Italy",
              "Spain",
              "Netherlands",
              "Belgium",
              "Switzerland",
              "Austria",
              "Sweden",
              "Norway",
              "Denmark",
              "Finland",
              "Ireland",
              "Portugal",
              "Greece",
              "Poland",
              "Czech Republic",
              "Hungary",
              "Romania",
              "Bulgaria",
              "Croatia",
              "Slovenia",
              "Slovakia",
              "Estonia",
              "Latvia",
              "Lithuania",
              "Iceland",
              "Luxembourg",
              "Malta",
              "Cyprus",
              "Russia",
              "Ukraine",
              "Turkey",
              "Israel",
              "United Arab Emirates",
              "Saudi Arabia",
              "Qatar",
              "Kuwait",
              "Bahrain",
              "Oman",
              "Egypt",
              "Morocco",
              "South Africa",
              "Nigeria",
              "Kenya",
              "Brazil",
              "Argentina",
              "Chile",
              "Colombia",
              "Peru",
              "Mexico",
              "China",
              "Japan",
              "South Korea",
              "Taiwan",
              "Hong Kong",
              "Singapore",
              "Malaysia",
              "Thailand",
              "Vietnam",
              "Indonesia",
              "Philippines",
              "India",
              "Pakistan",
              "Bangladesh",
              "New Zealand"
            ],
            "type": "string",
            "description": "Country of city 2 — full English name (e.g., `Germany`).",
            "default": "Germany"
          },
          "city2": {
            "title": "City 2 (comparison mode)",
            "type": "string",
            "description": "Second city in the comparison (e.g. `Berlin`)."
          },
          "rankingsYear": {
            "title": "Rankings year (topCities mode)",
            "enum": [
              "",
              "2024",
              "2024-mid",
              "2023",
              "2023-mid",
              "2022",
              "2022-mid",
              "2021",
              "2021-mid",
              "2020",
              "2020-mid",
              "2019",
              "2018",
              "2017"
            ],
            "type": "string",
            "description": "Year title parameter for the rankings page (e.g. `2024`, `2024-mid`). Leave empty for the latest available.",
            "default": ""
          },
          "urls": {
            "title": "URLs (byUrl mode)",
            "type": "array",
            "description": "Direct Numbeo URLs. Examples: `https://www.numbeo.com/cost-of-living/in/Berlin`, `https://www.numbeo.com/quality-of-life/in/Tokyo`, `https://www.numbeo.com/cost-of-living/rankings.jsp?title=2024`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 5
          },
          "useProxy": {
            "title": "Use Apify proxy",
            "type": "boolean",
            "description": "Route HTTP requests through Apify proxy. Numbeo is generally accessible without a proxy from datacenter IPs; enable only if you see 403/429.",
            "default": false
          },
          "autoEscalateOnBlock": {
            "title": "Auto-escalate to proxy on block",
            "type": "boolean",
            "description": "If a 403/429/Cloudflare challenge appears on direct fetch, automatically retry through Apify proxy.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration. Used only when useProxy is enabled.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": []
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}