Snapchat Ads Scraper
Pricing
from $5.00 / 1,000 ad scrapeds
Snapchat Ads Scraper
Scrape Snapchat ads from the official Ads Gallery API + Political Ads Library — creatives, impressions, targeting, and spend. MCP/API-ready.
Pricing
from $5.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Snapchat Ads Scraper is an Apify Actor for marketers, researchers, journalists, compliance teams, and AI agents that need one structured record per Snapchat ad or archive row. It accepts a single JSON input object and returns one flat record per item, depending on the selected mode. The output can include advertiser name, creator name, headline, call to action, media URL, landing URL, impressions, spend, targeting, and review status when Snapchat provides those fields. The Actor is usable through Apify, the Apify API, and Apify MCP, and it writes results to the default dataset for programmatic readback.
Best fit and connected workflows
This Actor fits workflows that begin with a brand name, creator handle, or political search term and continue into structured Snapchat ad records for review, analysis, or automation.
- Use
searchwhen you have a paying advertiser name and want Ads Gallery records for a brand in EU and EEA markets. - Use
creatorwhen you have a creator name and want sponsored or branded content tied to that public profile. - Use
politicalwhen you need records from the worldwide Political Ads Library, including spend and targeting fields. - If your workflow starts in another advertising transparency surface, this Actor works well as the Snapchat-specific step in a broader cross-platform research pipeline.
Practical scenario
A media analyst wants to review ads from a cosmetics brand in France and Germany. They start with the advertiser name, select search mode, add fr and de to countries, and set status to ACTIVE. The returned records include fields such as headline, callToAction, mediaDownloadUrl, landingUrl, impressionsTotal, and targeting. The analyst uses those fields to compare creative hooks and then opens the landing URLs for manual review.
Input fields
| Field | Type | Mode | Description |
|---|---|---|---|
mode | string | all | Selects the Snapchat data source: search, creator, or political. Defaults to search. |
advertiserName | string | search | Paying advertiser / brand name for Ads Gallery search. |
countries | array[string] | search | EU/EEA country codes for Ads Gallery search. Empty selects the supported country set. |
status | string | search | Ads Gallery delivery status filter: ANY, ACTIVE, or PAUSED. |
startDate | string | search | Lower bound for Ads Gallery delivery date, in ISO-8601 format. |
endDate | string | search | Upper bound for Ads Gallery delivery date, in ISO-8601 format. |
creatorName | string | creator | Creator / public profile name for creator mode. |
politicalYears | array[string] | political | Political Ads Library archive years to download. |
politicalCountry | string | political | Optional 2-letter country filter for political records. |
politicalSearchTerm | string | political | Optional keyword filter for political records. |
maxResults | integer | all | Maximum number of records to return and bill for. |
proxyConfiguration | object | all | Proxy settings, with Apify Proxy as the default. |
Focused input example
{"mode": "search","advertiserName": "Nike","countries": ["fr", "de"],"status": "ACTIVE","startDate": "2025-01-01","maxResults": 50}
Output fields
The Actor stores flat records in the default dataset. The output schema points to the dataset items endpoint, and each record may include fields from the selected source.
| Field | Type | Description |
|---|---|---|
source | string | Record origin such as ads_gallery, creator_content, or political. |
id | string | Snapchat ad or record identifier. |
name | string | Internal ad or creative name. |
advertiserName | string | Paying advertiser from Ads Gallery records. |
payingAdvertiserName | string | Paying advertiser from Political Ads Library records. |
adAccountName | string | Ad account name. |
profileName | string | Public Snapchat profile or handle. |
creatorName | string | Creator handle in creator mode. |
creatorUrl | string | Creator profile URL in creator mode. |
sponsorName | string | Sponsoring brand in creator mode. |
sponsorUrl | string | Sponsor profile URL in creator mode. |
contentType | string | Sponsored content type in creator mode. |
contentUrl | string | Sponsored content URL in creator mode. |
thumbnailUrl | string | Content thumbnail URL in creator mode. |
status | string | Delivery status. |
creativeType | string | Creative format, such as WEB_VIEW. |
adType | string | Ad type, such as REMOTE_WEBPAGE. |
headline | string | Ad headline text. |
callToAction | string | CTA label, such as SHOP NOW. |
languages | array | Creative languages. |
topSnapMediaType | string | Top-snap media type, such as VIDEO or IMAGE. |
mediaDownloadUrl | string | Direct CDN media download link. |
landingUrl | string | Web view or landing page URL. |
creativeUrl | string | Creative URL in political mode. |
startDate | string | Delivery start, ISO-8601. |
endDate | string | Delivery end, ISO-8601. |
impressionsTotal | integer | Total impressions in Ads Gallery mode. |
impressions | integer | Impressions bucket in political mode. |
impressionsByCountry | object | Non-zero impressions keyed by ISO country. |
spend | number | Reported spend in political mode. |
currencyCode | string | Spend currency in political mode. |
countryCode | string | Country in political mode. |
organizationName | string | Funding organization in political mode. |
candidateBallotInfo | string | Candidate or ballot info in political mode. |
committeeName | string | Committee name in political mode. |
advertisingJurisdiction | string | Jurisdiction in political mode. |
gender | string | Gender targeting. |
ageBracket | string | Age bracket targeting in political mode. |
regionsIncluded | string | Included regions in political mode. |
interests | string | Interest targeting in political mode. |
segments | string | Audience segments in political mode. |
language | string | Targeted language in political mode. |
osType | string | OS targeting in political mode. |
targeting | object | Simplified Ads Gallery targeting such as age, gender, and devices. |
reviewStatus | string | Snapchat review status. |
Illustrative dataset record
{"source": "ads_gallery","id": "1e02cbfd-033c-419b-af83-8ab4dabf68de","advertiserName": "Nike, Inc.","adAccountName": "Nike EMEA - Initiative Womens","profileName": "jumpman23","status": "ACTIVE","creativeType": "WEB_VIEW","adType": "REMOTE_WEBPAGE","headline": "La Air Jordan 40 est arrivée","callToAction": "SHOP NOW","topSnapMediaType": "VIDEO","mediaDownloadUrl": "https://cf-st.sc-cdn.net/d/...","landingUrl": "https://www.nike.com/fr/w/...","startDate": "2025-07-11T22:00:00.000Z","impressionsTotal": 2437373,"impressionsByCountry": {"fr": 2437373},"targeting": {"minAge": "18"},"reviewStatus": "APPROVED"}
How it works
This Actor uses Snapchat's public ad transparency surfaces in three modes:
searchqueries the Ads Gallery for brand or advertiser searches in EU and EEA markets.creatorpulls sponsored and branded content tied to a creator name.politicaldownloads the Political Ads Library archive and filters rows by year, country, and keyword when those inputs are provided.
The live manifest describes the Actor as HTTP-only and no-auth, and the dataset schema exposes a single flat record shape with fields that vary by source. The output schema points readers to the default dataset items endpoint, so downstream tools can read the results directly.
Pricing
This Actor uses Pay per event pricing plus Apify platform usage. Open the live Pricing tab in the Apify Console for the current pricing details for your account and run.
Billing events are defined by the returned records:
- Actor start: one event per run
- Ad scraped: one event for each Ads Gallery or creator content item returned
- Political ad scraped: one event for each Political Ads Library record returned
Example in words: if a run returns one hundred Ads Gallery records, the execution includes one Actor start event and one hundred ad scraped events. If you run the same Actor in political mode and return fifty political records, the execution includes one Actor start event and fifty political ad scraped events for that run.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. The exact Actor identity is khadinakbar/snapchat-ads-scraper.
Tool description: fetch Snapchat ad transparency records from Ads Gallery, creator content, or the Political Ads Library and return structured dataset rows that can be read programmatically.
Search Snapchat Ads Gallery for Nike in France and Germany, then return the ad records with headline, CTA, media URL, landing URL, impressions, and targeting.
Output interpretation: source identifies which Snapchat surface produced each record, and the remaining fields reflect the selected mode. Provenance lives in the returned dataset rows created by the Actor run. Ads Gallery requests are paginated through Snap's public cursor flow until maxResults is reached, while political mode reads yearly archive files selected in the input. To manage cost, set maxResults before the run so billing stops at the selected record count. The returned dataset can be read from the default dataset items endpoint, which is the same output location used by Apify API clients and MCP workflows.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/snapchat-ads-scraper').call({mode: 'search',advertiserName: 'Nike',countries: ['fr', 'de'],status: 'ACTIVE',maxResults: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems({clean: true,format: 'json',});console.log(items);
Best results and outcome guidance
Use the input that matches the Snapchat surface you already know.
- Start with
advertiserNamefor commercial Ads Gallery research. - Use
creatorNamewhen the starting point is a public creator profile. - Use
politicalYearswithpoliticalCountryorpoliticalSearchTermwhen the task is archive analysis. - Keep
maxResultsaligned with the number of records you want to analyze. - Review
mediaDownloadUrl,landingUrl,headline,callToAction, andtargetingtogether when comparing creative and delivery details.
Focused standalone workflow
This Actor is designed as a focused standalone workflow.
Design note
I found that the overview view is intentionally source-agnostic: it highlights source, advertiserName, payingAdvertiserName, headline, callToAction, status, impressionsTotal, spend, currencyCode, startDate, mediaDownloadUrl, and landingUrl across all modes.
FAQ
When should I use search instead of creator?
Use search when the starting point is a paying advertiser or brand name. Use creator when the starting point is a creator handle or public profile name.
What does political add that the other modes may not?
Political mode returns records from the Political Ads Library and includes spend, currency, and richer targeting fields such as country, age bracket, gender, interests, and segments when they are present.
Which countries are available in Ads Gallery search?
The input schema lists the supported EU and EEA country codes in the countries field, and leaving the field empty selects the supported country set.
How do I control run size?
Set maxResults to the number of records you want returned and billed.
Can I use this Actor through Apify MCP?
Yes. It is an Apify Actor usable through Apify MCP, and the Actor identity is khadinakbar/snapchat-ads-scraper.
Responsible use
This Actor reads public Snapchat ad transparency sources. Use the data in ways that respect applicable laws, platform terms, and privacy obligations. Review the returned records in context before making decisions based on them.