{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat Snap Map Place & Live Snap Extractor",
    "description": "Search Snapchat's Snap Map by place name or landmark and get each place's coordinates, category, favorite and snap counts, plus the media link for its most recent public snap.",
    "version": "1.0",
    "x-build-id": "AJWGw6hpbjxZtYxx5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dataspryva~snapchat-snap-map-place-and-live-snap-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dataspryva-snapchat-snap-map-place-and-live-snap-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/dataspryva~snapchat-snap-map-place-and-live-snap-extractor/runs": {
      "post": {
        "operationId": "runs-sync-dataspryva-snapchat-snap-map-place-and-live-snap-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/dataspryva~snapchat-snap-map-place-and-live-snap-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-dataspryva-snapchat-snap-map-place-and-live-snap-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "searchPlaces",
              "placeDetails",
              "browseLocal"
            ],
            "type": "string",
            "description": "Choose what to scrape: search Snap Map places by keyword, look up specific place URLs or IDs, or browse US cities and categories.",
            "default": "searchPlaces"
          },
          "keywords": {
            "title": "Place keywords",
            "type": "array",
            "description": "Place names, landmarks, venues or addresses to search on Snap Map. Used in Search places mode. Examples: Times Square, Eiffel Tower, Tokyo Station.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "placeUrls": {
            "title": "Place URLs or IDs",
            "type": "array",
            "description": "Snapchat place page URLs, /place/ paths, or bare place UUIDs. Used in Get details mode. Example: https://www.snapchat.com/place/times-square/c8b4f0ee-9992-11e8-88c9-673ed985ff70.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "cityUrls": {
            "title": "Cities",
            "type": "array",
            "description": "US city names, Snapchat local URLs, or local paths for Browse mode. Examples: new-york, chicago, https://www.snapchat.com/local/united-states/california/los-angeles.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional category slugs for Browse mode, such as bars, restaurants, coffee-shops, historic-landmarks or parks. Leave empty to use the city hub's six featured categories.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "resultTypes": {
            "title": "Result types",
            "type": "array",
            "description": "Which Explore result groups to return in Search places mode. Places is the Snap Map place search; the other groups are the public entities Snapchat shows for the same keyword.",
            "items": {
              "type": "string",
              "enum": [
                "places",
                "spotlight",
                "users",
                "profiles",
                "publishers",
                "episodes",
                "lenses"
              ],
              "enumTitles": [
                "Places",
                "Spotlight videos",
                "Users",
                "Public profiles",
                "Publishers",
                "Episodes",
                "Lenses"
              ]
            },
            "default": [
              "places"
            ]
          },
          "outputType": {
            "title": "Output rows",
            "enum": [
              "placeRecords",
              "liveSnapRecords"
            ],
            "type": "string",
            "description": "Place records keep one row per place with live snaps nested. Live snap records flatten every live snap into its own row with the place's coordinates, which is easier for maps and time-series analysis.",
            "default": "placeRecords"
          },
          "maxResultsPerKeyword": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum rows to keep for each result type per keyword. Snapchat returns up to 10 places and roughly 20-24 items for the other groups.",
            "default": 10
          },
          "maxPlaces": {
            "title": "Max places",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum places to process in Get details mode.",
            "default": 100
          },
          "maxPlacesPerCity": {
            "title": "Max places per city",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum places to keep per city in Browse mode after merging the hub categories.",
            "default": 100
          },
          "maxSnapsPerPlace": {
            "title": "Max live snaps per place",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum live snaps to keep per place. Snapchat's public page exposes a sample of 2-36 current snaps per place.",
            "default": 10
          },
          "includeSnapData": {
            "title": "Include live snaps",
            "type": "boolean",
            "description": "Add the public snap sample for each place with media URL, thumbnail, creator and timestamp. Snapchat mixes recent map posts with older Spotlight shares, so use the age filter below to keep only fresh posts. Also fills the legacy first-snap fields.",
            "default": true
          },
          "includePlaceDetails": {
            "title": "Include full place details",
            "type": "boolean",
            "description": "Open each place page to fill coordinates, address, phone, website, category, rating, reviews, opening hours, popularity and nearby places. Turn off for a faster search-card-only run. Nearby places, reviews, favorite sorting, live-snap output and the live-snap filter open place pages automatically because those values only exist there.",
            "default": true
          },
          "includeNearbyPlaces": {
            "title": "Include nearby places",
            "type": "boolean",
            "description": "Add the places Snapchat lists at the same location, with their coordinates and categories.",
            "default": false
          },
          "includeReviews": {
            "title": "Include place reviews",
            "type": "boolean",
            "description": "Add up to 20 public place reviews with rating, text, date and source URL.",
            "default": false
          },
          "includePopularityHours": {
            "title": "Include 7x24 popularity",
            "type": "boolean",
            "description": "Add Snapchat's 168 hourly popularity values per place (7 days x 24 hours) plus the peak hour and day index. This is the per-place heatmap signal.",
            "default": true
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only places whose public rating is at least this value. Places without a rating are dropped when this is above 0.",
            "default": 0
          },
          "requireLiveSnaps": {
            "title": "Only places with live snaps",
            "type": "boolean",
            "description": "Drop places that currently have no public live snaps.",
            "default": false
          },
          "snapMaxAgeHours": {
            "title": "Only snaps newer than (hours)",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "Keep only snaps posted within this many hours. Set 0 to keep every snap the public page returns. liveSnapCount and latestSnapAt describe only the kept snaps, and the live-snap filter uses that kept count.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "source",
              "rating",
              "favorites",
              "liveSnaps"
            ],
            "type": "string",
            "description": "Order places by Snapchat's source order, rating, favorite count or number of live snaps.",
            "default": "source"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The public Snapchat pages used here work without a proxy."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}