{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat Profile Scraper & Spotlight Transcripts",
    "description": "The Snapchat Profile Scraper collects public profile data from Snapchat, including usernames, bios, subscriber counts, and Snap information. Ideal for marketers, analysts, and researchers to identify influencers, analyze engagement, and gather insights for social media strategy.",
    "version": "0.1",
    "x-build-id": "qe2pRh6u4odUC1iAa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~snapchat-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-snapchat-profile-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-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-snapchat-profile-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-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-snapchat-profile-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "👤 Usernames or profile URLs",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Add one or more Snapchat usernames (e.g. djkhaled305) or full profile URLs (e.g. https://www.snapchat.com/@djkhaled305). snapchat.com/add/<username> links are accepted too.",
            "items": {
              "type": "string"
            }
          },
          "fetchTranscripts": {
            "title": "🗣️ Fetch Spotlight transcripts",
            "type": "boolean",
            "description": "Download each Spotlight clip's WebVTT caption file and return the spoken text. Snapchat publishes a transcript for roughly 6 in 10 clips; clips without one are reported as transcriptStatus = \"none\", never faked.",
            "default": true
          },
          "includeTranscriptTimings": {
            "title": "⏱️ Include transcript cue timings",
            "type": "boolean",
            "description": "Also return transcriptCues[] — every WebVTT cue as {start, end, text} in seconds, for subtitle files, clipping or timestamped search.",
            "default": false
          },
          "includeAiMetadata": {
            "title": "🤖 Include Snapchat AI clip metadata",
            "type": "boolean",
            "description": "Return Snapchat's own machine-generated clip title, description and topic keywords (aiTitle / aiDescription / aiKeywords), plus detected language and detected on-screen entities. Higher coverage than transcripts, and available even on clips with no speech.",
            "default": true
          },
          "transcriptKeywords": {
            "title": "🔎 Keyword search",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. Case-insensitive keywords or phrases. Every clip is searched across its transcript text, AI description/keywords and on-screen text; matches are reported in matchedKeywords with the surface that matched in matchSource.",
            "items": {
              "type": "string"
            }
          },
          "onlyMatchingClips": {
            "title": "🎯 Keep only clips that match a keyword",
            "type": "boolean",
            "description": "When keywords are set, drop non-matching Spotlight clips from the output. The profile row itself is always returned, even when nothing matched.",
            "default": false
          },
          "maxClipsPerProfile": {
            "title": "🔢 Max Spotlight clips per profile",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "0 = no limit. Snapchat serves at most one page of Spotlight clips per profile (1–31 observed), so this only ever lowers the number of transcript requests.",
            "default": 0
          },
          "preserveBaseFieldQuirks": {
            "title": "🧩 Legacy compatibility mode",
            "type": "boolean",
            "description": "Off by default. When ON, the original fields spotlightId, link, plays, shares, transcriptUrl and timestampInSec keep the exact (unfixed) values the original scraper produced, for pipelines that depend on them byte-for-byte. Corrected values stay available under their own new keys either way.",
            "default": false
          },
          "maxRetries": {
            "title": "🔁 Retries per profile",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to try a profile page before giving up and writing a failure row.",
            "default": 3
          },
          "requestTimeoutSecs": {
            "title": "⏳ Request timeout (seconds)",
            "minimum": 5,
            "maximum": 180,
            "type": "integer",
            "description": "Per-HTTP-request timeout for the profile page and for transcript downloads.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy settings",
            "type": "object",
            "description": "Optional. Uses no proxy by default, which works for Snapchat profile pages and for transcript downloads. If you enable Apify Proxy and still get blocked, the actor logs it and keeps going."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}