App Store Screenshot Monitor
Pricing
from $15.00 / 1,000 image inspecteds
App Store Screenshot Monitor
Monitor public app listing screenshots and creative assets for visual/listing changes.
App Store Screenshot Monitor
Pricing
from $15.00 / 1,000 image inspecteds
Monitor public app listing screenshots and creative assets for visual/listing changes.
You can access the App Store Screenshot Monitor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "VA3XYmCgCGe3UK36a" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/junipr~app-store-screenshot-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-junipr-app-store-screenshot-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/junipr~app-store-screenshot-monitor/runs": { "post": { "operationId": "runs-sync-junipr-app-store-screenshot-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/junipr~app-store-screenshot-monitor/run-sync": { "post": { "operationId": "run-sync-junipr-app-store-screenshot-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "targets": { "title": "App Listing Targets", "type": "array", "description": "Capped prior/current screenshot comparisons by app, locale, and device.", "items": { "type": "object" }, "default": [] }, "sourceUrl": { "title": "Store Listing URL", "type": "string", "description": "Listing URL attached to output rows. Screenshot assets must be supplied separately.", "default": "" }, "appId": { "title": "App ID", "type": "string", "description": "Apple app ID, Google Play package name, or internal app identifier.", "default": "" }, "platform": { "title": "Store Platform", "enum": [ "apple-app-store", "google-play", "other" ], "type": "string", "description": "Store associated with the screenshot set.", "default": "apple-app-store" }, "locale": { "title": "Locale", "type": "string", "description": "Default locale for screenshot rows.", "default": "en-US" }, "device": { "title": "Device Class", "type": "string", "description": "Default device or display class.", "default": "unspecified" }, "previousScreenshots": { "title": "Previous Screenshots", "type": "array", "description": "Prior screenshot URLs and optional supplied hashes/dimensions.", "items": { "type": "object" }, "default": [] }, "currentScreenshots": { "title": "Current Screenshots", "type": "array", "description": "Current screenshot URLs and optional supplied hashes/dimensions.", "items": { "type": "object" }, "default": [] }, "previousSnapshot": { "title": "Previous Screenshot JSON", "type": "string", "description": "Optional JSON manifest or Apple lookup response.", "default": "" }, "currentSnapshot": { "title": "Current Screenshot JSON", "type": "string", "description": "Optional JSON manifest or Apple lookup response.", "default": "" }, "inspectImages": { "title": "Download And Verify Images", "type": "boolean", "description": "Download each supplied screenshot URL and compute SHA-256, dimensions, byte size, and MIME type.", "default": false }, "fetchTimeoutMs": { "title": "Image Fetch Timeout", "minimum": 1000, "maximum": 30000, "type": "integer", "description": "Per-image timeout in milliseconds.", "default": 10000 }, "maxImageBytes": { "title": "Max Bytes Per Image", "minimum": 1000, "maximum": 25000000, "type": "integer", "description": "Reject an image that exceeds this byte limit.", "default": 10000000 }, "maxTargets": { "title": "Max Listings", "minimum": 1, "maximum": 50, "type": "integer", "description": "Maximum listing comparisons.", "default": 1 }, "maxImagesPerTarget": { "title": "Max Images Per Set", "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum previous and current screenshots per target.", "default": 20 }, "includeUnchanged": { "title": "Include Unchanged Images", "type": "boolean", "description": "Emit screenshot pairs with no detected changes.", "default": false }, "includeReport": { "title": "Include Report", "type": "boolean", "description": "Write JSON result, JSON summary, and Markdown artifacts.", "default": true }, "dryRun": { "title": "Dry Run", "type": "boolean", "description": "Validate input without downloads, charges, or output rows.", "default": false }, "debug": { "title": "Debug Logs", "type": "boolean", "description": "Enable debug logging.", "default": false } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for App Store Screenshot Monitor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: