Blog
Use Case

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.

bash
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:

json
{
  "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.

typescript
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.

bash
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

Marcus Webb

Developer Advocate at ScreenshotFreeAPI