{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat Profile Scraper - Stories & Saved Highlights",
    "description": "Extract public Snapchat profile data with the Snapchat Profile Scraper. Retrieve usernames, display names, story info, and follower stats. Ideal for influencer research, marketing insights, and audience analysis. Fast, reliable, and scalable for individual or bulk profiles.",
    "version": "0.1",
    "x-build-id": "qjh5gdIXUqmnAGirj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~snapchat-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~snapchat-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-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/scrapier~snapchat-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-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). The snapchat.com/add/<username> URL form is accepted too.",
            "items": {
              "type": "string"
            }
          },
          "includeStory": {
            "title": "📖 Include live public Story snaps",
            "type": "boolean",
            "description": "Extract props.pageProps.story.snapList - the creator's currently-live public Story. Measured on 22 live profiles: 7 (32%) served Story snaps, 210 snaps in total, 1-73 per profile. A profile with nothing live right now correctly returns an empty story.",
            "default": true
          },
          "includeCuratedHighlights": {
            "title": "⭐ Include saved Highlight albums",
            "type": "boolean",
            "description": "Extract props.pageProps.curatedHighlights - the creator's saved Highlight albums with the title they wrote. Measured on 22 live profiles: 14 (64%) had albums, 111 albums, 2575 snaps. 98/111 albums (88%) had a non-empty title.",
            "default": true
          },
          "snapMediaType": {
            "title": "🎞️ Media type filter",
            "enum": [
              "any",
              "photo",
              "video"
            ],
            "type": "string",
            "description": "Keep only photo snaps, only video snaps, or both. snapMediaType is present on 100% of snaps (0 = photo, 1 = video, verified against the media Content-Type on 12/12 fetches).",
            "default": "any"
          },
          "postedWithinDays": {
            "title": "📅 Only snaps posted in the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Drop snaps older than N days, using the real epoch timestamp carried by every snap (100% coverage). 0 = keep everything. Live Story snaps in the sample were 0-5 days old, Highlight snaps reached 165 days.",
            "default": 0
          },
          "maxSnapsPerHighlight": {
            "title": "🔢 Max snaps per Highlight album",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Cap the snaps kept per album, newest first. Real albums in the sample reached 99 snaps. 0 = no cap.",
            "default": 0
          },
          "maxStorySnaps": {
            "title": "🔢 Max live Story snaps per profile",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Cap the live Story snaps kept per profile, newest first. 0 = no cap.",
            "default": 0
          },
          "maxHighlights": {
            "title": "📚 Max Highlight albums per profile",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Cap the number of albums kept per profile, newest first. Profiles in the sample had 1-18 albums. 0 = no cap. Snapchat serves only one page of albums and exposes no working pagination, so this can only reduce, never extend, what the page ships.",
            "default": 0
          },
          "pushSnapsToChildDataset": {
            "title": "🧾 Also push one flat row per snap",
            "type": "boolean",
            "description": "Mirror every kept Story and Highlight snap into a separate named dataset, one row per snap, ready for CSV or Excel export. The main profile dataset is unchanged.",
            "default": false
          },
          "childDatasetName": {
            "title": "🏷️ Snap dataset name",
            "type": "string",
            "description": "Name of the named dataset used for the flat snap rows. Only used when the option above is on.",
            "default": "snapchat-snaps"
          },
          "maxRetries": {
            "title": "🔁 Retries per profile",
            "minimum": 3,
            "maximum": 10,
            "type": "integer",
            "description": "Attempts per profile before the run gives up on it. The engine keeps the base floor of 3, so lower values are raised back to 3.",
            "default": 3
          },
          "requestTimeoutSecs": {
            "title": "⏱️ Request timeout (seconds)",
            "minimum": 5,
            "maximum": 180,
            "type": "integer",
            "description": "HTTP timeout for each profile page request.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy settings",
            "type": "object",
            "description": "Optional. Uses no proxy by default, which is what the Snapchat profile page needs. If you enable Apify Proxy and get blocked, the actor auto-switches to Residential and logs it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}