{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap POI Extractor",
    "description": "Extract POIs from OpenStreetMap via Overpass API. Search by location + radius or bounding box. Filter by 20+ categories (restaurants, hotels, hospitals, parks, shops). Outputs name, coords, address, phone, website, opening hours. No API key needed.",
    "version": "0.1",
    "x-build-id": "d5ncyOsoX58y5buVd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation-lab~openstreetmap-poi-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation-lab-openstreetmap-poi-extractor",
        "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/automation-lab~openstreetmap-poi-extractor/runs": {
      "post": {
        "operationId": "runs-sync-automation-lab-openstreetmap-poi-extractor",
        "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/automation-lab~openstreetmap-poi-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-automation-lab-openstreetmap-poi-extractor",
        "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": {
          "location": {
            "title": "📍 Location name",
            "type": "string",
            "description": "Enter a city, neighborhood, or address to search around. The actor geocodes this to coordinates automatically. Example: \"Vienna, Austria\" or \"Times Square, New York\"."
          },
          "radiusKm": {
            "title": "Search radius (km)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Radius in kilometers around the location. Only used when 'Location name' is set. Default: 2 km.",
            "default": 2
          },
          "boundingBox": {
            "title": "Bounding box",
            "type": "string",
            "description": "Precise area as \"south,west,north,east\" coordinates. Example: \"48.18,16.33,48.24,16.42\". Leave empty to use Location name + radius instead."
          },
          "keyword": {
            "title": "🔎 Place or brand name",
            "minLength": 1,
            "maxLength": 100,
            "type": "string",
            "description": "Optional case-insensitive search within the selected location or bounding box. Matches the OpenStreetMap name literally (for example, \"Starbucks\" or \"Central Library\"). When set, this search is used instead of the category preset."
          },
          "category": {
            "title": "🏷️ Category",
            "enum": [
              "restaurants",
              "cafes",
              "bars",
              "fast_food",
              "hotels",
              "shops",
              "supermarkets",
              "hospitals",
              "pharmacies",
              "schools",
              "universities",
              "parks",
              "museums",
              "attractions",
              "banks",
              "parking",
              "fuel",
              "post_offices",
              "police",
              "fire_stations",
              "gyms",
              "cinemas",
              "all_amenities",
              "custom"
            ],
            "type": "string",
            "description": "Type of places to extract. Ignored when Place or brand name is set. Choose \"custom\" to write your own Overpass query.",
            "default": "restaurants"
          },
          "customQuery": {
            "title": "Custom Overpass query",
            "type": "string",
            "description": "Full Overpass QL query to execute. Only used when Category is set to \"custom\". Example: [out:json][timeout:60];(node[\"amenity\"=\"bicycle_parking\"](48.18,16.33,48.24,16.42););out center;"
          },
          "maxItems": {
            "title": "Max POIs",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of POIs to extract. Set to 0 for unlimited. Useful for testing or controlling costs.",
            "default": 0
          },
          "includeAllTags": {
            "title": "Include all OSM tags",
            "type": "boolean",
            "description": "Include all raw OpenStreetMap tags in the 'extras' field of each POI. Useful for advanced analysis but increases output size.",
            "default": false
          },
          "overpassEndpoint": {
            "title": "Overpass API endpoint",
            "type": "string",
            "description": "Custom Overpass API server URL. Leave empty to use the default public server (overpass-api.de). Use a private instance for high-volume runs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}