{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat User Spotlight Scraper: Creator Profile Stats",
    "description": "Scrape Snapchat user Spotlight profiles and creator stats, including usernames, profile details, Spotlight videos, views, likes, comments, followers, captions, hashtags, and engagement data. Ideal for creator research, trend analysis, and competitor insights.",
    "version": "0.1",
    "x-build-id": "zojMovHekNHtQEvO1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~snapchat-user-spotlight-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-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/api-empire~snapchat-user-spotlight-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-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/api-empire~snapchat-user-spotlight-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-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": {
          "snapchatAccounts": {
            "title": "📇 Snapchat accounts",
            "type": "array",
            "description": "Public Snapchat accounts to scrape. Accepts a bare username (realmadrid) or a profile link (https://www.snapchat.com/@realmadrid). Spotlight video links are not accounts and are ignored. Example: realmadrid + nba returns both creators' Spotlight videos, profiles, AR lenses, recommended accounts and performance roll-ups in one run.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Snapchat accounts (legacy key)",
            "type": "array",
            "description": "Accepted for backward compatibility with the original input format. Same meaning as the field above. If both are filled, the field above wins. Leave empty unless you are re-running an old input file.",
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerAccount": {
            "title": "🎬 Max Spotlight videos per account",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on Spotlight video rows per account, so you can cap what a run costs. Example: 10 returns at most 10 videos for each account. 0 means no cap. Default is 0.",
            "default": 5
          },
          "includeCreatorProfile": {
            "title": "🧑 Include the creator profile row",
            "type": "boolean",
            "description": "Adds one row of type \"profile\" per account with subscriber count, verification, bio, website, address, category, account-created and last-updated dates, and image links. Default is true.",
            "default": true
          },
          "includeLenses": {
            "title": "✨ Include the creator's AR lenses",
            "type": "boolean",
            "description": "Adds rows of type \"lens\" with the lens name, its creator, its icon and preview links, its unlock link and when it was last updated. Accounts with no published lenses simply produce no lens rows. Default is true.",
            "default": true
          },
          "includeRelatedAccounts": {
            "title": "🔗 Include recommended neighbouring accounts",
            "type": "boolean",
            "description": "Adds rows of type \"relatedAccount\" for the accounts Snapchat recommends alongside this creator: username, display name, profile link, business profile id and verification. These records are shallow by design - see the README. Default is true.",
            "default": true
          },
          "minSubscribers": {
            "title": "📈 Minimum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip an account entirely when its subscriber count is below this number, before any of its rows are produced. Accounts whose subscriber count Snapchat does not publish are also skipped when this is above 0. Example: 1000000 keeps only creators with at least one million subscribers. 0 means no filter. Default is 0.",
            "default": 0
          },
          "verifiedOnly": {
            "title": "✅ Verified accounts only",
            "type": "boolean",
            "description": "Skip accounts that do not carry Snapchat's verification badge, before any of their rows are produced. Default is false.",
            "default": false
          },
          "includeAccountStats": {
            "title": "📊 Include the performance roll-up row",
            "type": "boolean",
            "description": "Adds one row of type \"accountStats\" per account: videos analysed, total / median / mean views, the 25th and 75th view percentiles, median, mean and view-weighted engagement rate, first and last publish date, days covered, posts per week, top hashtag and the best-performing video. Every figure is recomputable from the video rows in the same run, and each one is published next to the real number of videos it was computed from. Default is true.",
            "default": true
          },
          "rankVideosByViews": {
            "title": "🏆 Rank each account's videos by views",
            "type": "boolean",
            "description": "Adds viewsRank (1 = most viewed within that account's scraped set) and viewsPercentile to every video row. Videos with no published view count get a null rank rather than being forced into the ordering. Default is true.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "🌐 Connection",
            "type": "object",
            "description": "Optional. Choose the connection settings this run should use. The default is fine for most 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}