{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap Scraper · POI & Places by City or Radius",
    "description": "OpenStreetMap scraper for local lead generation and market research: places and POIs from the Overpass API as one clean table with name, category, address, coordinates, opening hours and the Contact details OSM holds. City, bounding box or radius, 34 presets.",
    "version": "0.1",
    "x-build-id": "Qvfh0A3ggD0vpvqbg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thequietstack~openstreetmap-extract/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thequietstack-openstreetmap-extract",
        "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/thequietstack~openstreetmap-extract/runs": {
      "post": {
        "operationId": "runs-sync-thequietstack-openstreetmap-extract",
        "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/thequietstack~openstreetmap-extract/run-sync": {
      "post": {
        "operationId": "run-sync-thequietstack-openstreetmap-extract",
        "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": {
          "areas": {
            "title": "Areas (place names)",
            "type": "array",
            "description": "City, district, region or country names, resolved with OpenStreetMap Nominatim (max 1 lookup per second, cached). Be specific: \"Kiel, Germany\" beats \"Kiel\". A name that does not exist fails the run with \"Area not found\" - it is never reported as 0 results.",
            "items": {
              "type": "string"
            }
          },
          "boundingBox": {
            "title": "Bounding box",
            "type": "string",
            "description": "Alternative to a place name: \"south,west,north,east\" in decimal degrees, e.g. \"54.30,10.10,54.35,10.16\"."
          },
          "latitude": {
            "title": "Center latitude",
            "type": "string",
            "description": "Alternative: search around a point. Decimal degrees, e.g. 54.3233."
          },
          "longitude": {
            "title": "Center longitude",
            "type": "string",
            "description": "Decimal degrees, e.g. 10.1228."
          },
          "radiusMeters": {
            "title": "Radius (meters)",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Radius around the center point. Only used with latitude/longitude.",
            "default": 1000
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Ready-made category presets (each maps to OpenStreetMap tags, listed in the README).",
            "items": {
              "type": "string",
              "enum": [
                "restaurants",
                "cafes",
                "bars_pubs",
                "fast_food",
                "bakeries",
                "supermarkets",
                "convenience_stores",
                "hotels",
                "lodging",
                "dentists",
                "doctors",
                "pharmacies",
                "hospitals",
                "veterinarians",
                "hairdressers",
                "beauty_salons",
                "gyms",
                "ev_chargers",
                "fuel_stations",
                "car_repair",
                "car_dealers",
                "bicycle_shops",
                "banks",
                "atms",
                "lawyers",
                "accountants",
                "estate_agents",
                "schools",
                "kindergartens",
                "parking",
                "toilets",
                "playgrounds",
                "museums",
                "attractions"
              ]
            }
          },
          "customFilters": {
            "title": "Custom tag filters",
            "type": "array",
            "description": "Your own OpenStreetMap tag filters, one per line (OR between lines, AND inside one line). Examples: shop=bicycle · cuisine~pizza · [\"amenity\"=\"cafe\"][\"internet_access\"=\"wlan\"] · [\"name\"~\"bio\",i]. Find tags at wiki.openstreetmap.org/wiki/Map_features.",
            "items": {
              "type": "string"
            }
          },
          "requireFields": {
            "title": "Only places that have",
            "type": "array",
            "description": "Filtered on the server before anything is charged: e.g. only places with a website and a phone number.",
            "items": {
              "type": "string",
              "enum": [
                "name",
                "website",
                "phone",
                "email",
                "openingHours",
                "address"
              ]
            }
          },
          "maxResults": {
            "title": "Max places",
            "minimum": 1,
            "type": "integer",
            "description": "Hard limit on rows written (and charged) in this run.",
            "default": 100
          },
          "maxCostUsd": {
            "title": "Max cost (USD)",
            "type": "string",
            "description": "Optional own spending cap. Uses the live per-row price of this run; the run stops cleanly before going over. The platform \"Max cost per run\" limit is respected as well."
          },
          "includeRawTags": {
            "title": "Include all raw OSM tags",
            "type": "boolean",
            "description": "Adds a \"tags\" object with every OpenStreetMap tag of the place (cuisine, diet, wheelchair, brand:wikidata, ...).",
            "default": true
          },
          "overpassUrl": {
            "title": "Overpass API instance",
            "type": "string",
            "description": "Public Overpass instance to query. Respect the instance's usage policy; heavy users should run their own.",
            "default": "https://overpass-api.de/api/interpreter"
          },
          "fallbackOverpassUrls": {
            "title": "Fallback Overpass instances",
            "type": "array",
            "description": "Tried in order when the main instance is busy (HTTP 429/502/503/504 or no answer). Default: overpass.private.coffee, overpass.kumi.systems, maps.mail.ru. Pass an empty list to disable.",
            "items": {
              "type": "string"
            }
          },
          "failWhenServersBusy": {
            "title": "Fail the run when all Overpass servers are busy",
            "type": "boolean",
            "description": "Off (default): if every public Overpass server stays busy for the whole run, the run ends with 0 rows, status SERVERS_BUSY in the SUMMARY record and a clear status message - nothing is charged. On: the run ends as FAILED instead (useful if your pipeline retries on failure).",
            "default": false
          },
          "overpassTimeoutSec": {
            "title": "Overpass timeout (seconds)",
            "minimum": 10,
            "maximum": 900,
            "type": "integer",
            "description": "Server-side query timeout. Large areas need more; public instances may refuse very long timeouts when busy.",
            "default": 120
          },
          "nominatimUrl": {
            "title": "Nominatim instance",
            "type": "string",
            "description": "Geocoder for area names. The public instance allows max 1 request per second.",
            "default": "https://nominatim.openstreetmap.org"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}