Automated App Store Screenshots via API: iOS & Android in One Call
Learn how to automate iOS App Store and Google Play screenshot capture via API. Monitor competitors, document changelogs, and manage app portfolios — all from a single endpoint.
App store screenshots are a critical marketing asset — they are the first thing a potential user sees before deciding whether to download. Whether you are tracking how competitors refresh their store presence, documenting your own app's visual history, or building a portfolio management tool for an agency that manages dozens of apps, automating app store screenshot capture is a meaningful productivity unlock. ScreenshotFreeAPI's /screenshots/mobile endpoint makes this a single API call.
The /screenshots/mobile Endpoint
Pass an appName or bundleId (iOS bundle ID or Android package name) and the API automatically locates the app on both the iOS App Store and the Google Play Store, captures all available marketing screenshots, and returns them as a structured result with store metadata.
curl -X POST https://api.screenshotfreeapi.com/screenshots/mobile \
-H "Authorization: Bearer sfa_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"appName": "Notion",
"stores": ["ios", "android"],
"format": "png",
"webhookUrl": "https://yourapp.com/hooks/mobile-screenshot"
}'
# Immediate response: 202 Accepted
# { "jobId": "job_02mbnot", "status": "queued" }When the job completes, the result contains separate screenshot arrays for each store, along with store metadata such as the app's current rating, version, and description:
{
"jobId": "job_02mbnot",
"status": "completed",
"stores": {
"ios": {
"appName": "Notion - Notes, Docs, Tasks",
"bundleId": "notion.id",
"version": "3.21.0",
"rating": 4.7,
"screenshots": [
{ "url": "https://sfa-results.s3.amazonaws.com/.../ios_0.png", "index": 0 },
{ "url": "https://sfa-results.s3.amazonaws.com/.../ios_1.png", "index": 1 }
]
},
"android": {
"packageName": "notion.id",
"version": "3.21.0",
"rating": 4.6,
"screenshots": [
{ "url": "https://sfa-results.s3.amazonaws.com/.../android_0.png", "index": 0 }
]
}
}
}Use Case 1: Competitor App Monitoring
Mobile growth teams regularly monitor how competitors update their app store screenshots — a new screenshot often signals a feature launch, A/B test, or seasonal campaign. Doing this manually across 10 competitors on two platforms is a full-time job. Automating it with ScreenshotFreeAPI takes 30 minutes to set up.
const API_KEY = process.env.SFA_API_KEY!;
const BASE_URL = 'https://api.screenshotfreeapi.com';
const COMPETITOR_APPS = [
'Notion', 'Obsidian', 'Roam Research', 'Logseq',
'Craft', 'Bear', 'Agenda', 'Mem', 'Reflect', 'Capacities',
];
async function captureAllCompetitorScreenshots(): Promise<void> {
const jobs = await Promise.all(
COMPETITOR_APPS.map(async (appName) => {
const res = await fetch(`${BASE_URL}/screenshots/mobile`, {
method: 'POST',
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
appName,
stores: ['ios', 'android'],
format: 'png',
webhookUrl: 'https://yourapp.com/hooks/mobile-screenshot',
}),
});
if (!res.ok) throw new Error(`Failed for ${appName}: ${res.status}`);
const { jobId } = await res.json() as { jobId: string };
console.log(`Queued ${appName}: ${jobId}`);
return { appName, jobId };
})
);
console.log(`Queued ${jobs.length} competitor capture jobs`);
// Results arrive at your webhookUrl as each job completes
}
captureAllCompetitorScreenshots().catch(console.error);Use Case 2: App Portfolio Management
Agencies managing app store presence for multiple clients need a reliable way to pull current screenshots for reports, audits, and presentations. With ScreenshotFreeAPI, you can pull the current published screenshots for all clients' apps in a single batch job and store them in your own CMS — no manual App Store Connect downloads required.
Use Case 3: Changelog Documentation
Development teams that ship frequent updates benefit from an automated screenshot history — a visual record of what the app looked like at each store submission. Trigger a /screenshots/mobile job as part of your release pipeline, and you automatically build a visual changelog without any manual effort.
Scheduled Monitoring with the Monitors Endpoint
For ongoing competitor monitoring, ScreenshotFreeAPI's /monitors/app endpoint runs on a schedule you define (daily, weekly) and delivers webhook notifications when new screenshots are detected. This means you no longer need to run a cron job yourself — the platform handles scheduling and diffing.
curl -X POST https://api.screenshotfreeapi.com/monitors/app \
-H "Authorization: Bearer sfa_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"appName": "Notion",
"stores": ["ios", "android"],
"schedule": "daily",
"notifyOnChange": true,
"webhookUrl": "https://yourapp.com/hooks/app-monitor"
}'Note
App monitor webhooks include a changed boolean and a diff array listing which screenshot indices changed. You only receive a notification when the store page actually updates.
Start monitoring iOS and Android app store screenshots automatically — free for up to 100 captures per month.
Start free — no credit card