{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap Business Scraper: No-Website Leads, Emails",
    "description": "OpenStreetMap scraper for local business leads by city, county, bounding box or radius: name, category, address, phone, website, business email, opening hours and socials, with a no-website flag, completeness score and last-edit date. Keyless, new-only monitor mode.",
    "version": "0.2",
    "x-build-id": "utAyw4UcHrjMcWDR3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/transparent_meteorite~openstreetmap-business-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-transparent_meteorite-openstreetmap-business-leads",
        "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/transparent_meteorite~openstreetmap-business-leads/runs": {
      "post": {
        "operationId": "runs-sync-transparent_meteorite-openstreetmap-business-leads",
        "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/transparent_meteorite~openstreetmap-business-leads/run-sync": {
      "post": {
        "operationId": "run-sync-transparent_meteorite-openstreetmap-business-leads",
        "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": {
          "locations": {
            "title": "Locations (place names)",
            "type": "array",
            "description": "Cities, counties, neighbourhoods, states or countries, resolved on OpenStreetMap (for example \"Detroit, Michigan\", \"Wayne County, Michigan\", \"Austin, Texas\", \"Leeds, UK\"). One Overpass query per place. Cities and counties are the sweet spot; whole states or countries can time out on the public servers.",
            "items": {
              "type": "string"
            }
          },
          "boundingBox": {
            "title": "Bounding box (optional)",
            "type": "string",
            "description": "south,west,north,east in decimal degrees, for example 42.30,-83.10,42.36,-83.00. Use instead of, or in addition to, place names."
          },
          "latitude": {
            "title": "Latitude (optional)",
            "type": "string",
            "description": "Centre point for a radius search, for example 42.3314. Use with longitude and radius."
          },
          "longitude": {
            "title": "Longitude (optional)",
            "type": "string",
            "description": "Centre point for a radius search, for example -83.0458."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Radius around the latitude/longitude point, 1 to 50 km.",
            "default": 3
          },
          "categories": {
            "title": "Business categories",
            "type": "array",
            "description": "Friendly presets mapped to OpenStreetMap tags (for example dentists = amenity=dentist or healthcare=dentist). Pick one or more.",
            "items": {
              "type": "string",
              "enum": [
                "restaurants",
                "fast_food",
                "cafes",
                "bars_pubs",
                "bakeries",
                "caterers",
                "dentists",
                "doctors_clinics",
                "physiotherapists",
                "pharmacies",
                "opticians",
                "veterinarians",
                "lawyers",
                "accountants",
                "insurance_agents",
                "real_estate_agents",
                "architects",
                "it_services",
                "marketing_agencies",
                "plumbers",
                "electricians",
                "hvac",
                "roofers",
                "carpenters",
                "painters",
                "builders",
                "locksmiths",
                "gardeners",
                "photographers",
                "hair_salons",
                "beauty_salons",
                "massage_spas",
                "tattoo",
                "gyms",
                "car_repair",
                "car_dealers",
                "car_wash",
                "driving_schools",
                "childcare",
                "hotels",
                "florists",
                "clothing_stores",
                "jewelry",
                "furniture",
                "hardware",
                "pet_shops",
                "bicycle_shops",
                "laundry",
                "travel_agencies",
                "grocery",
                "all_shops",
                "all_offices",
                "all_crafts"
              ],
              "enumTitles": [
                "Restaurants",
                "Fast food and takeaway",
                "Cafes and coffee shops",
                "Bars and pubs",
                "Bakeries",
                "Caterers",
                "Dentists",
                "Doctors and clinics",
                "Physiotherapists",
                "Pharmacies",
                "Opticians",
                "Veterinarians",
                "Lawyers and law firms",
                "Accountants and tax advisors",
                "Insurance agents",
                "Real estate agents",
                "Architects",
                "IT services and computer shops",
                "Marketing and advertising agencies",
                "Plumbers",
                "Electricians",
                "HVAC and heating",
                "Roofers",
                "Carpenters and joiners",
                "Painters and decorators",
                "Builders and contractors",
                "Locksmiths",
                "Gardeners and landscapers",
                "Photographers",
                "Hair salons and barbers",
                "Beauty and nail salons",
                "Massage and spas",
                "Tattoo and piercing studios",
                "Gyms and fitness studios",
                "Car repair and tyre shops",
                "Car dealers",
                "Car washes",
                "Driving schools",
                "Childcare and kindergartens",
                "Hotels, motels and guest houses",
                "Florists",
                "Clothing and shoe stores",
                "Jewelry stores",
                "Furniture stores",
                "Hardware and DIY stores",
                "Pet shops and groomers",
                "Bicycle shops",
                "Laundry and dry cleaning",
                "Travel agencies",
                "Grocery and convenience stores",
                "All shops (any shop=*)",
                "All offices (any office=*)",
                "All trades and crafts (any craft=*)"
              ]
            }
          },
          "shopTypes": {
            "title": "Extra shop types (optional)",
            "type": "array",
            "description": "Any OSM shop=* value not covered by a preset, for example books, music, tobacco, wine, mobile_phone.",
            "items": {
              "type": "string"
            }
          },
          "tagFilters": {
            "title": "Raw OSM tag filters (optional)",
            "type": "array",
            "description": "Advanced: your own tag selectors. One per line, conditions joined with &. Supports key=value, key~regex, key!=value, key (exists) and !key (missing). Examples: amenity=dentist, craft~^(plumber|electrician)$, cuisine=pizza&amenity=restaurant, office=lawyer&!website.",
            "items": {
              "type": "string"
            }
          },
          "onlyNamed": {
            "title": "Only named businesses",
            "type": "boolean",
            "description": "Skip objects without a name tag (unnamed map features are rarely useful leads).",
            "default": true
          },
          "onlyWithoutWebsite": {
            "title": "Only businesses WITHOUT a website",
            "type": "boolean",
            "description": "Web-design and local-SEO leads: keep only businesses with no website, contact:website or url tag.",
            "default": false
          },
          "onlyWithWebsite": {
            "title": "Only businesses WITH a website",
            "type": "boolean",
            "description": "Keep only businesses that have a website (ignored when \"without a website\" is on).",
            "default": false
          },
          "onlyWithPhone": {
            "title": "Only with a phone number",
            "type": "boolean",
            "description": "Keep only businesses with a phone or contact:phone tag.",
            "default": false
          },
          "onlyWithEmail": {
            "title": "Only with a business email",
            "type": "boolean",
            "description": "Keep only businesses with an email on a business domain (free-mail addresses are always dropped).",
            "default": false
          },
          "excludeChains": {
            "title": "Exclude chains and franchises",
            "type": "boolean",
            "description": "Drop objects with a brand tag (McDonald's, Starbucks, bank branches and similar) to focus on independent local businesses.",
            "default": false
          },
          "minCompleteness": {
            "title": "Minimum completeness score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "0 to 100. For example 45 keeps only listings with most of name, phone, website, address and hours.",
            "default": 0
          },
          "editedWithinDays": {
            "title": "Edited within the last N days (optional)",
            "minimum": 0,
            "maximum": 36500,
            "type": "integer",
            "description": "Keep only objects edited in OpenStreetMap in the last N days, for example 365. Leave empty for no limit."
          },
          "onlyNewSinceLastRun": {
            "title": "Only new since last run (monitor mode)",
            "type": "boolean",
            "description": "Remember delivered businesses in a named key-value store and skip them next time, so a scheduled run returns only businesses you have not received before.",
            "default": false
          },
          "stateStoreName": {
            "title": "Monitor state store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered businesses. Use a different name per campaign.",
            "default": "openstreetmap-business-leads-seen"
          },
          "maxItems": {
            "title": "Maximum leads",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many leads. You are charged only for leads delivered.",
            "default": 100
          },
          "maxRunSeconds": {
            "title": "Maximum run time (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Safety limit; the run stops cleanly and keeps what it found.",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}