How to scrape Snapchat Spotlight Comments with Rust
Spotlight Comments by Link This tutorial gets it with a short Rust program and the Snapchat Spotlight Comments API. Each successful call costs 1 credit; errors and not-found answers are free.
1. Get an API key
Sign in to get a key and 100 free credits, no card. Then put the key in an environment variable so it stays out of your code:
export SCRAPEIO_API_KEY="your_key_here"2. Set up Rust
cargo new scrape && cd scrape && cargo add reqwest --features blocking,json && cargo add serde_json3. Write the code
Save this as src/main.rs. Replace PASTE_URL_HERE with a real url.
use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let key = std::env::var("SCRAPEIO_API_KEY")?;
let client = reqwest::blocking::Client::new();
let mut params: Vec<(&str, String)> = vec![("url", "PASTE_URL_HERE".to_string())];
let mut items: Vec<Value> = Vec::new();
loop {
let body: Value = client.get("https://scrapeio.com/v1/snapchat/spotlight/comments").query(¶ms).header("x-api-key", &key).send()?.error_for_status()?.json()?;
let data = &body["data"];
if let Some(rows) = data["items"].as_array() {
items.extend(rows.iter().cloned());
}
let cursor = data["cursor"].as_str().unwrap_or("").to_string();
if !data["has_more"].as_bool().unwrap_or(false) || cursor.is_empty() || items.len() >= 100 {
break;
}
params.retain(|(k, _)| *k != "cursor");
params.push(("cursor", cursor));
}
println!("{} items", items.len());
println!("{}", serde_json::to_string_pretty(&items.iter().take(3).collect::<Vec<_>>())?);
Ok(())
}The loop follows data.cursor until data.has_more is false, and stops at 100 items. Each page is one call, so it costs 1 credit.
4. Run it
cargo runThe response has the same envelope on every endpoint: success, cached, credits_used, credits_remaining and data. Shared fields such as handle, followers, plays, likes and created_at have the same names on every platform.
Parameters
| Name | Type | Description |
|---|---|---|
url (required) | string | Snapchat Spotlight URL. |
cursor | string | Pagination cursor from the previous response. |
Errors and what you pay
| Status | Meaning | Charged |
|---|---|---|
200 | Success | Yes, unless cached |
400 | A parameter is missing or wrong | No |
401 | The key is missing or invalid | No |
402 | Not enough credits | No |
403 | The account or post is private | No |
404 | Not found on the platform | No |
429 | More than 300 requests a minute | No |
502 | Every source is down; retry shortly | No |
Same endpoint in other languages
Python · Node.js · JavaScript · TypeScript · Go · Java · C# · PHP · Ruby · Kotlin · Swift · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses call_endpoint with path /v1/snapchat/spotlight/comments for you.
100 free credits, no card. Credits never expire.
Get API key