{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat User Spotlight Scraper By Keyword & Hashtag",
    "description": "Snapchat User Spotlight Scraper finds and extracts public Spotlight content by keyword and hashtag, including creator profiles, usernames, captions, video details, timestamps, engagement data, and more for content research and trend analysis.",
    "version": "0.1",
    "x-build-id": "N2BjHdHaZlonCzX55"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~snapchat-user-spotlight-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-snapchat-user-spotlight-scraper",
        "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/simpleapi~snapchat-user-spotlight-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-snapchat-user-spotlight-scraper",
        "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/simpleapi~snapchat-user-spotlight-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-snapchat-user-spotlight-scraper",
        "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": {
          "searchKeywords": {
            "title": "🔍 Keywords or hashtags",
            "type": "array",
            "description": "Words, phrases or hashtags to look up, for example 'football', 'makeup' or '#footballchallenge'. A leading # is optional.",
            "items": {
              "type": "string"
            }
          },
          "discoverySources": {
            "title": "🗂️ What to collect for each term",
            "uniqueItems": true,
            "type": "array",
            "description": "Choose which kinds of results are collected. Every selected kind becomes its own labelled row type in the output.",
            "items": {
              "type": "string",
              "enum": [
                "spotlightVideos",
                "creators",
                "hashtagTopics",
                "lenses",
                "publishers"
              ],
              "enumTitles": [
                "🎬 Spotlight videos",
                "👤 Creator accounts",
                "#️⃣ Hashtag topics",
                "🪄 AR lenses",
                "📺 Shows and publishers"
              ]
            }
          },
          "resolveVideoDetails": {
            "title": "🔗 Fill in each video's creator and caption",
            "type": "boolean",
            "description": "A discovery result lists a video without naming its creator. Switch this on to complete each video with its creator handle, caption, hashtags, publish date and duration."
          },
          "maxVideoResolutions": {
            "title": "🔢 Maximum videos to complete",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Upper limit on how many videos are completed with creator and caption details in one run. Videos beyond the limit are still returned, with the details left empty rather than guessed."
          },
          "expandHashtagTopics": {
            "title": "#️⃣ Follow discovered hashtag topics",
            "type": "boolean",
            "description": "Each hashtag topic found for your keyword becomes a new term of its own, producing a further set of videos, creators and topics with the parent topic recorded on every row."
          },
          "topicExpansionDepth": {
            "title": "🪜 How far to follow topics",
            "minimum": 1,
            "maximum": 2,
            "type": "integer",
            "description": "1 follows the topics found for your keyword. 2 also follows the topics those topics reveal."
          },
          "maxTopicsPerKeyword": {
            "title": "🔢 Maximum topics to follow per term",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Upper limit on how many hashtag topics are followed from any single term."
          },
          "expandDiscoveredCreators": {
            "title": "👤 Open discovered creators' full Spotlight sets",
            "type": "boolean",
            "description": "Every creator account found for a term is opened and their public Spotlight videos are collected, carrying the term that led to them."
          },
          "maxCreatorsPerKeyword": {
            "title": "🔢 Maximum creators to open per term",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Upper limit on how many discovered creators are opened from any single term."
          },
          "maxVideosPerCreator": {
            "title": "🎬 Maximum Spotlight videos per creator",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper limit on the Spotlight videos taken from any one creator profile. 0 means take everything the public profile shows."
          },
          "skipDuplicates": {
            "title": "♻️ Keep each result only once",
            "type": "boolean",
            "description": "The same video, creator or topic can surface under several terms. Leave this on to write each one exactly once and report how many repeats were skipped."
          },
          "minViews": {
            "title": "👁️ Minimum views",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep Spotlight videos with at least this many views. 0 keeps everything."
          },
          "minSubscribers": {
            "title": "📈 Minimum creator subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep discovered creator accounts with at least this many subscribers. 0 keeps everything."
          },
          "oldestVideoDate": {
            "title": "📅 Oldest video to keep",
            "type": "string",
            "description": "Drop Spotlight videos published before this point. Accepts a date or a relative value such as '3 months'. Applies to videos whose publish date is known, which requires the creator and caption step above."
          },
          "maxResults": {
            "title": "🧮 Maximum rows for the whole run",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard ceiling on how many result rows the run writes, so a broad set of keywords cannot run away with your budget. 0 means no ceiling."
          },
          "startUrls": {
            "title": "👤 Snapchat usernames or profile URLs",
            "type": "array",
            "description": "Optional list of Snapchat usernames (for example 'realmadrid') or profile URLs (for example 'https://www.snapchat.com/@realmadrid').",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🌐 Connection settings",
            "type": "object",
            "description": "Choose the connection settings for this run. By default the run goes out directly. Enabling this can improve reliability on large 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}