{
  "openapi": "3.0.1",
  "info": {
    "title": "Numbeo Scraper: Cost of Living & City Indices",
    "description": "Scrape Numbeo cost of living by city: 55 item prices with low/high ranges (rent, groceries, transport, salaries), family and single-person monthly budgets, quality of life, crime and property metrics in 15 currencies. Export CSV, Excel, JSON. No login or API key.",
    "version": "0.2",
    "x-build-id": "VndT5EkihSL1v1pBN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~numbeo-cost-of-living-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-numbeo-cost-of-living-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/recordsdata~numbeo-cost-of-living-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-numbeo-cost-of-living-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/recordsdata~numbeo-cost-of-living-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-numbeo-cost-of-living-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": {
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "City names as in Numbeo URLs (Berlin, New York, Buenos-Aires, Mexico-City). Spaces become dashes. \"City, State\" such as \"Portland, OR\" and full Numbeo city URLs also work. Leave empty if you only want countries or rankings.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Country names as on Numbeo (Germany, United States, South Korea). Returns the national average of the same prices and indices, one row per item. Optional.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "displayCurrency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHF",
              "CLF",
              "CLP",
              "CNH",
              "CNY",
              "COP",
              "CRC",
              "CUC",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "EGP",
              "ERN",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GGP",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "IMP",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JEP",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MNT",
              "MOP",
              "MRU",
              "MUR",
              "MVR",
              "MXN",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLE",
              "SLL",
              "SOS",
              "SRD",
              "STD",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "UYU",
              "UZS",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XCD",
              "XCG",
              "XDR",
              "XOF",
              "XPF",
              "YER",
              "ZAR",
              "ZMW",
              "ZWG",
              "ZWL"
            ],
            "type": "string",
            "description": "Currency for all prices (161 codes offered by Numbeo; the amounts are Numbeo's own conversion at the time of the run).",
            "default": "USD"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
          },
          "includePrices": {
            "title": "Cost of living prices",
            "type": "boolean",
            "description": "One row per price item (55 per city or country): restaurants, markets, transport, utilities, rent, salaries, with the price range.",
            "default": true
          },
          "includeCityIndices": {
            "title": "Budget summary",
            "type": "boolean",
            "description": "One summary row per city or country: estimated monthly cost for a family of four and for a single person, excluding rent, in the chosen currency.",
            "default": true
          },
          "includeQualityOfLife": {
            "title": "Quality of life",
            "type": "boolean",
            "description": "One row per city or country: quality of life, purchasing power, safety, health care, climate, cost of living, property price to income, traffic and pollution indices, with Numbeo rating labels.",
            "default": false
          },
          "includeCrime": {
            "title": "Crime",
            "type": "boolean",
            "description": "One row per city or country: crime index, safety index and all 15 perception metrics (worries, problems, safety walking alone), with rating labels.",
            "default": false
          },
          "includeProperty": {
            "title": "Property prices",
            "type": "boolean",
            "description": "One row per city or country with 10 property metrics: price-to-income ratio, mortgage as percentage of income, price-to-rent ratios, gross rental yields, GDP per capita and growth rates.",
            "default": false
          },
          "includeHealthCare": {
            "title": "Health care",
            "type": "boolean",
            "description": "One row per city or country: health care index plus its 8 sub-scores (staff skill, speed, equipment, accuracy, friendliness, waiting, cost, location), with rating labels.",
            "default": false
          },
          "includePollution": {
            "title": "Pollution",
            "type": "boolean",
            "description": "One row per city or country: pollution index, air, water, noise, garbage and green-space scores, plus PM2.5 and PM10 where Numbeo shows them.",
            "default": false
          },
          "includeTraffic": {
            "title": "Traffic",
            "type": "boolean",
            "description": "One row per city or country: traffic index, time and inefficiency indices, CO2 emission index, commute mode shares and average commute times.",
            "default": false
          },
          "includeRankings": {
            "title": "Worldwide rankings",
            "type": "boolean",
            "description": "Adds one row per ranked city (or country) with its rank and index values, for each ranking you pick below. When on, the budget summary and index rows of your own cities also carry their rank.",
            "default": false
          },
          "rankingTypes": {
            "title": "Rankings to fetch",
            "type": "array",
            "description": "Which Numbeo ranking tables to return when worldwide rankings are on. One table per entry.",
            "items": {
              "type": "string",
              "enum": [
                "cost-of-living",
                "quality-of-life",
                "crime",
                "property",
                "health-care",
                "pollution",
                "traffic"
              ],
              "enumTitles": [
                "Cost of living (with rent, groceries, restaurants, purchasing power)",
                "Quality of life",
                "Crime and safety",
                "Property prices",
                "Health care",
                "Pollution",
                "Traffic"
              ]
            },
            "default": [
              "cost-of-living"
            ]
          },
          "rankingScope": {
            "title": "Rank cities or countries",
            "enum": [
              "cities",
              "countries"
            ],
            "type": "string",
            "description": "Cities: current ranking of about 300 to 560 cities (updated continuously). Countries: latest half-year edition of the country ranking.",
            "default": "cities"
          },
          "maxCities": {
            "title": "Max ranked rows per ranking",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many rows to return from the top of each ranking (rank 1 first). The cost of living ranking has about 560 cities and 150 countries.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Numbeo answers HTTP 503 to datacenter IPs and limits each address, so the actor uses Apify RESIDENTIAL proxy by default and switches to a new IP on every retry. Turn it off only if you know your network can reach Numbeo.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}