Spotlight video
curl --request GET \
--url https://api.scraperize.com/v1/snapchat/spotlight \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/snapchat/spotlight"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/snapchat/spotlight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/snapchat/spotlight",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/snapchat/spotlight"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/snapchat/spotlight")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/snapchat/spotlight")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"spotlight": {
"id": "W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"title": "Spotlight Snap",
"description": "Another Spotlight Snap brought to you by Snapchat",
"embeddedTextCaption": null,
"videoUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.27.IRZXSOY?mo=Gl0aCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBNggbEiUKIwjK82UgATCcBDjAB0ABSg4KCXc1QUU3NEg_QRD0A1D-YmgCIgsSACoHSVJaWFNPWZAD_mI%3D&uc=46",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
"viewCount": 139745,
"shareCount": 180,
"boostCount": 12680,
"recommendCount": 483,
"durationMs": 12670,
"width": 540,
"height": 960,
"uploadedAt": "2026-07-31T22:42:40.667Z",
"keywords": [],
"hashtags": [],
"language": "en",
"creator": {
"type": "personCreator",
"username": "angellynn21",
"name": "Angel vinup",
"url": "https://www.snapchat.com/@angellynn21",
"followerCount": 0,
"websiteUrl": null
},
"user": null,
"audio": {
"title": "Original Sound",
"subtitle": "angellynn21",
"id": "93783123568",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8"
},
"lenses": [],
"contextCards": [
{
"type": 2,
"title": "Original Sound",
"subtitle": "angellynn21",
"url": null,
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8",
"id": "93783123568"
},
{
"type": 3,
"title": "Angel vinup",
"subtitle": "angellynn21",
"url": "https://www.snapchat.com/@angellynn21",
"thumbnailUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvVTM0WmJyR0ZPSW41b1hGaHlQekpVP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,640_FMjpeg",
"id": "ee7ff958-6b52-49de-a187-6991d0683695"
}
],
"transcript": null,
"llm": {
"title": "Father and Son Enjoying a Boat Ride Together",
"description": "A shirtless man with a tattoo on his back sits on a boat, holding the steering wheel while a young boy sits beside him, wearing a life jacket. They are on a lake surrounded by trees under a cloudy sky. The man points forward, seemingly giving directions or showing something to the boy. The boat has a gray interior with white seats, and they are both barefoot. The atmosphere is relaxed and leisurely, capturing a moment of bonding between the father and son during their boating trip.",
"keywords": [
"boat safety tips"
]
},
"previewImageUrl": "https://story.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw/preview/square.jpeg",
"isAttributed": true,
"restricted": false
},
"fetchedAt": "2026-09-14T12:14:55.187Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Snapchat
Spotlight video
Fetches a public Snapchat Spotlight video by URL: the video (title, description, MP4 URL, thumbnail, engagement counts, duration, dimensions), the creator/user, the audio/music + lens attribution, the transcript, and the AI-generated SEO metadata.
GET
/
v1
/
snapchat
/
spotlight
Spotlight video
curl --request GET \
--url https://api.scraperize.com/v1/snapchat/spotlight \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/snapchat/spotlight"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/snapchat/spotlight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/snapchat/spotlight",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/snapchat/spotlight"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/snapchat/spotlight")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/snapchat/spotlight")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"spotlight": {
"id": "W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"title": "Spotlight Snap",
"description": "Another Spotlight Snap brought to you by Snapchat",
"embeddedTextCaption": null,
"videoUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.27.IRZXSOY?mo=Gl0aCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBNggbEiUKIwjK82UgATCcBDjAB0ABSg4KCXc1QUU3NEg_QRD0A1D-YmgCIgsSACoHSVJaWFNPWZAD_mI%3D&uc=46",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
"viewCount": 139745,
"shareCount": 180,
"boostCount": 12680,
"recommendCount": 483,
"durationMs": 12670,
"width": 540,
"height": 960,
"uploadedAt": "2026-07-31T22:42:40.667Z",
"keywords": [],
"hashtags": [],
"language": "en",
"creator": {
"type": "personCreator",
"username": "angellynn21",
"name": "Angel vinup",
"url": "https://www.snapchat.com/@angellynn21",
"followerCount": 0,
"websiteUrl": null
},
"user": null,
"audio": {
"title": "Original Sound",
"subtitle": "angellynn21",
"id": "93783123568",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8"
},
"lenses": [],
"contextCards": [
{
"type": 2,
"title": "Original Sound",
"subtitle": "angellynn21",
"url": null,
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8",
"id": "93783123568"
},
{
"type": 3,
"title": "Angel vinup",
"subtitle": "angellynn21",
"url": "https://www.snapchat.com/@angellynn21",
"thumbnailUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvVTM0WmJyR0ZPSW41b1hGaHlQekpVP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,640_FMjpeg",
"id": "ee7ff958-6b52-49de-a187-6991d0683695"
}
],
"transcript": null,
"llm": {
"title": "Father and Son Enjoying a Boat Ride Together",
"description": "A shirtless man with a tattoo on his back sits on a boat, holding the steering wheel while a young boy sits beside him, wearing a life jacket. They are on a lake surrounded by trees under a cloudy sky. The man points forward, seemingly giving directions or showing something to the boy. The boat has a gray interior with white seats, and they are both barefoot. The atmosphere is relaxed and leisurely, capturing a moment of bonding between the father and son during their boating trip.",
"keywords": [
"boat safety tips"
]
},
"previewImageUrl": "https://story.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw/preview/square.jpeg",
"isAttributed": true,
"restricted": false
},
"fetchedAt": "2026-09-14T12:14:55.187Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Cost: 1 credit per successful request. Errors and cache hits (
cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
Paste this into ChatGPT, Claude or your coding assistant to generate working code for this endpoint (use the copy button).
Prompt
I want to make an API call to /v1/snapchat/spotlight. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/snapchat/spotlight
Description: Fetches a public Snapchat Spotlight video by URL: the video (title, description, MP4 URL, thumbnail, engagement counts, duration, dimensions), the creator/user, the audio/music + lens attribution, the transcript, and the AI-generated SEO metadata.
Required Headers:
- x-api-key: Your API key
Parameters:
- url (string) [required]: Snapchat Spotlight URL, e.g. https://www.snapchat.com/spotlight/<snapID> (the https://www.snapchat.com/@<username>/spotlight/<snapID> form is also accepted).
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"spotlight": {
"id": "W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw",
"title": "Spotlight Snap",
"description": "Another Spotlight Snap brought to you by Snapchat",
"embeddedTextCaption": null,
"videoUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.27.IRZXSOY?mo=Gl0aCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBNggbEiUKIwjK82UgATCcBDjAB0ABSg4KCXc1QUU3NEg_QRD0A…",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/cMqz9zr0wKrGpVbV6C1WK.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z…",
"viewCount": 139745,
"shareCount": 180,
"boostCount": 12680,
"recommendCount": 483,
"durationMs": 12670,
"width": 540,
"height": 960,
"uploadedAt": "2026-07-31T22:42:40.667Z",
"keywords": [],
"hashtags": [],
"language": "en",
"creator": {
"type": "personCreator",
"username": "angellynn21",
"name": "Angel vinup",
"url": "https://www.snapchat.com/@angellynn21",
"followerCount": 0,
"websiteUrl": null
},
"user": null,
"audio": {
"title": "Original Sound",
"subtitle": "angellynn21",
"id": "93783123568",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8"
},
"lenses": [],
"contextCards": [
{
"type": 2,
"title": "Original Sound",
"subtitle": "angellynn21",
"url": null,
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/6YKRUxipwtyh6YMgtaJbK?bo=Eg0aABoAMgEESAJQCGAB&uc=8",
"id": "93783123568"
}
],
"transcript": null,
"llm": {
"title": "Father and Son Enjoying a Boat Ride Together",
"description": "A shirtless man with a tattoo on his back sits on a boat, holding the steering wheel while a young boy sits beside him, wearing a life jacket. They are on a lak…",
"keywords": [
"boat safety tips"
]
},
"previewImageUrl": "https://story.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcWJ1dGZxYm1kAZ-6WEWcAZ-6WA2bAAAAAw/preview/square.jpeg",
"isAttributed": true,
"restricted": false
},
"fetchedAt": "2026-09-14T12:14:55.187Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
Snapchat Spotlight URL, e.g. https://www.snapchat.com/spotlight/ (the https://www.snapchat.com/@/spotlight/ form is also accepted).
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
Available options:
1d, 3d, 7d, 14d, 30d