{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap Local Business Directory",
    "description": "Build a local business directory from OpenStreetMap data: restaurants, cafes, dentists, shops and more, with addresses, coordinates and tagged contact data.",
    "version": "1.0",
    "x-build-id": "S86HR51v9Zc5utqhW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jetlaunch~osm-local-business-directory/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jetlaunch-osm-local-business-directory",
        "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/jetlaunch~osm-local-business-directory/runs": {
      "post": {
        "operationId": "runs-sync-jetlaunch-osm-local-business-directory",
        "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/jetlaunch~osm-local-business-directory/run-sync": {
      "post": {
        "operationId": "run-sync-jetlaunch-osm-local-business-directory",
        "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": {
          "place": {
            "title": "Place name",
            "type": "string",
            "description": "A city, town, county or district, optionally followed by a region or country to avoid mix-ups, for example Rochester, Minnesota or Leeds, United Kingdom. The Actor looks up the administrative boundary in OpenStreetMap. Ignored when a bounding box is given."
          },
          "bbox": {
            "title": "Bounding box (optional)",
            "type": "string",
            "description": "Instead of a place name, give four numbers: south, west, north, east, for example 43.95,-92.55,44.08,-92.38. The area may not exceed 16 square degrees. When set, it replaces the place name."
          },
          "categories": {
            "title": "Business categories",
            "type": "array",
            "description": "One or more presets. A business matches when it fits any selected category.",
            "items": {
              "type": "string",
              "enum": [
                "restaurants",
                "cafes",
                "fast_food",
                "bars_pubs",
                "bakeries",
                "dentists",
                "doctors_clinics",
                "pharmacies",
                "veterinarians",
                "hardware_stores",
                "grocery",
                "gyms",
                "hotels",
                "hair_beauty",
                "car_repair",
                "car_dealers",
                "banks",
                "fuel",
                "lawyers",
                "accountants",
                "real_estate",
                "insurance",
                "clothing",
                "bookstores",
                "florists",
                "laundry"
              ],
              "enumTitles": [
                "Restaurants",
                "Cafes",
                "Fast food",
                "Bars and pubs",
                "Bakeries",
                "Dentists",
                "Doctors and clinics",
                "Pharmacies",
                "Veterinarians",
                "Hardware stores",
                "Supermarkets and grocery",
                "Gyms and fitness centers",
                "Hotels and lodging",
                "Hair and beauty",
                "Car repair",
                "Car dealers",
                "Banks",
                "Gas stations",
                "Lawyers",
                "Accountants and tax advisors",
                "Real estate agents",
                "Insurance agencies",
                "Clothing and shoe stores",
                "Bookstores",
                "Florists",
                "Laundry and dry cleaning"
              ]
            }
          },
          "customTags": {
            "title": "Extra OSM tags (optional)",
            "type": "array",
            "description": "Additional business tags as key=value, for example shop=books or craft=brewery. Several values for one key may be joined with a pipe: shop=books|games. Allowed keys: amenity, shop, craft, office, tourism, leisure, healthcare.",
            "items": {
              "type": "string"
            }
          },
          "nameFilter": {
            "title": "Name contains (optional)",
            "type": "string",
            "description": "Keep only businesses whose name contains this text. Not case sensitive."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Stop after this many businesses. You are charged per business returned.",
            "default": 25
          },
          "dedupe": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Drop repeated OSM features and near-duplicates (same name and category within 75 meters, such as a shop mapped as both a point and a building outline).",
            "default": true
          },
          "includeContactData": {
            "title": "Include website, phone and opening hours",
            "type": "boolean",
            "description": "Business contact data exactly as tagged in OpenStreetMap. Residential features are always excluded.",
            "default": true
          },
          "includeRawTags": {
            "title": "Include all OSM tags",
            "type": "boolean",
            "description": "Adds a tags column with every other tag of the feature as a JSON string.",
            "default": false
          },
          "overpassEndpoint": {
            "title": "Overpass endpoint (advanced)",
            "type": "string",
            "description": "Leave empty to use the default public instance. To use your own or a paid Overpass server, enter its https interpreter URL. The OSM main instance overpass-api.de is not accepted because its operators ask commercial and app traffic to use self-hosted or paid servers."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}