{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store & Google Play Scraper & Monitor",
    "description": "Scrape App Store and Google Play app metadata, ratings, prices, releases, reviews, and developer replies in one normalized dataset. Monitor up to 500 iOS and Android apps for exact changes and new reviews—no API key, login, or browser required.",
    "version": "0.1",
    "x-build-id": "CsoTEhG9DkK5ulqWU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automa-flow~app-store-google-play-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automa-flow-app-store-google-play-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/automa-flow~app-store-google-play-monitor/runs": {
      "post": {
        "operationId": "runs-sync-automa-flow-app-store-google-play-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/automa-flow~app-store-google-play-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-automa-flow-app-store-google-play-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",
        "required": [
          "apps"
        ],
        "properties": {
          "apps": {
            "title": "Apps to watch",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "description": "One to 500 App Store or Google Play listings. Paste a numeric App Store ID, dotted Google Play package ID, or full store URL into each item's ID field. Country and Google Play language define a separate storefront baseline.",
            "items": {
              "type": "object",
              "required": [
                "store",
                "id"
              ],
              "additionalProperties": false,
              "properties": {
                "store": {
                  "title": "Store",
                  "type": "string",
                  "editor": "select",
                  "enum": [
                    "app_store",
                    "google_play"
                  ],
                  "enumTitles": [
                    "Apple App Store",
                    "Google Play"
                  ],
                  "description": "Store containing this listing."
                },
                "id": {
                  "title": "App ID, package ID, or URL",
                  "type": "string",
                  "editor": "textfield",
                  "maxLength": 1000,
                  "description": "Numeric App Store ID, dotted Google Play package ID, or a full URL from the declared store."
                },
                "country": {
                  "title": "Country",
                  "type": "string",
                  "editor": "textfield",
                  "default": "US",
                  "maxLength": 2,
                  "description": "Two-letter storefront country code, for example US, DE, GB, or BR."
                },
                "language": {
                  "title": "Google Play language",
                  "type": "string",
                  "editor": "textfield",
                  "default": "en",
                  "maxLength": 6,
                  "description": "Google Play language code such as en, de, or pt-BR. Ignored for App Store entries."
                },
                "externalId": {
                  "title": "Your external ID",
                  "type": "string",
                  "editor": "textfield",
                  "maxLength": 200,
                  "description": "Optional CRM, competitor, or account ID echoed onto every row and never sent to the store."
                },
                "groupId": {
                  "title": "Cross-store group ID",
                  "type": "string",
                  "editor": "textfield",
                  "maxLength": 200,
                  "description": "Optional explicit join key for iOS and Android listings of the same product. The Actor never guesses this link."
                }
              }
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "monitor",
              "snapshot"
            ],
            "type": "string",
            "description": "monitor compares with the last successful state. snapshot reads current public data without reading or writing state.",
            "default": "monitor"
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "changesOnly",
              "all"
            ],
            "type": "string",
            "description": "changesOnly emits one app status row per input plus only new review/reply events. all also returns current matching reviews.",
            "default": "changesOnly"
          },
          "includeReviews": {
            "title": "Collect reviews",
            "type": "boolean",
            "description": "Fetch recent reviews and monitor stable review IDs. Turn off for the lowest-cost release/rating monitor.",
            "default": true
          },
          "maxReviewsPerApp": {
            "title": "Maximum reviews per app",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum recent reviews read per app (0–500). Apple exposes at most 500 per country through its public feed.",
            "default": 100
          },
          "reviewRatings": {
            "title": "Review star ratings",
            "type": "array",
            "description": "Only reviews with these star ratings are emitted. Use [1, 2] for the negative-review feed. All fetched IDs still participate in deduplication.",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            },
            "default": [
              1,
              2,
              3,
              4,
              5
            ]
          },
          "monitorId": {
            "title": "Monitoring state ID",
            "maxLength": 200,
            "type": "string",
            "description": "Optional namespace for independent baselines when running directly through the API. Saved Apify Tasks are isolated automatically by Task ID."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Direct HTTP is the verified default and expected proxy cost is $0. Do not use proxy rotation to circumvent store rate limits.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}