{
  "actorSpecification": 1,
  "fields": {
    "properties": {
      "IAPRange": {
        "description": "Displayed in-app purchase range.",
        "type": "string"
      },
      "adSupported": {
        "description": "Whether the app contains ads.",
        "type": "boolean"
      },
      "androidVersion": {
        "description": "Minimum Android version when published.",
        "type": "string"
      },
      "appId": {
        "description": "Backward-compatible alias of packageName.",
        "type": "string"
      },
      "appTitle": {
        "description": "App name for a review record.",
        "type": "string"
      },
      "appVersion": {
        "description": "App version the review was written for.",
        "type": "string"
      },
      "author": {
        "description": "Reviewer name.",
        "type": "string"
      },
      "available": {
        "description": "Whether the app is listed in the selected storefront.",
        "type": "boolean"
      },
      "categories": {
        "description": "Categories as objects with name and id.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "containsAds": {
        "description": "Whether the app is marked as containing ads.",
        "type": "boolean"
      },
      "content": {
        "description": "Backward-compatible alias of text.",
        "type": "string"
      },
      "contentRating": {
        "description": "Content rating, for example Everyone or Teen.",
        "type": "string"
      },
      "country": {
        "description": "Storefront used for the request.",
        "type": "string"
      },
      "criterias": {
        "description": "Per-criterion ratings when Google Play provides them.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "currency": {
        "description": "ISO currency code.",
        "type": "string"
      },
      "dataSafety": {
        "description": "Shared data, collected data, security practices, and privacy policy URL.",
        "type": "object"
      },
      "date": {
        "description": "Review date in ISO 8601 format.",
        "type": "string"
      },
      "description": {
        "description": "Full app description as plain text.",
        "type": "string"
      },
      "descriptionHTML": {
        "description": "Full app description with Google Play HTML markup.",
        "type": "string"
      },
      "developer": {
        "description": "Developer display name.",
        "type": "string"
      },
      "developerAddress": {
        "description": "Developer contact address.",
        "type": "string"
      },
      "developerEmail": {
        "description": "Developer contact email.",
        "type": "string"
      },
      "developerId": {
        "description": "Google Play developer ID.",
        "type": "string"
      },
      "developerInput": {
        "description": "Developer ID or display name used for the run.",
        "type": "string"
      },
      "developerLegalAddress": {
        "description": "Legal developer address.",
        "type": "string"
      },
      "developerLegalEmail": {
        "description": "Legal developer email.",
        "type": "string"
      },
      "developerLegalName": {
        "description": "Legal developer name.",
        "type": "string"
      },
      "developerLegalPhone": {
        "description": "Legal developer phone number.",
        "type": "string"
      },
      "developerReply": {
        "description": "Developer reply text and date when present.",
        "type": "object"
      },
      "developerUrl": {
        "description": "Developer catalog URL.",
        "type": "string"
      },
      "developerWebsite": {
        "description": "Developer website.",
        "type": "string"
      },
      "free": {
        "description": "Whether the app is free.",
        "type": "boolean"
      },
      "genre": {
        "description": "Primary genre name.",
        "type": "string"
      },
      "genreId": {
        "description": "Primary genre ID.",
        "type": "string"
      },
      "headerImage": {
        "description": "Header image URL.",
        "type": "string"
      },
      "helpfulCount": {
        "description": "Number of helpful votes.",
        "type": "integer"
      },
      "histogram": {
        "description": "Rating distribution from 1 star to 5 stars.",
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "icon": {
        "description": "App icon URL.",
        "type": "string"
      },
      "id": {
        "description": "Stable identifier. For app records this is the Android package name; for reviews it is the review ID.",
        "type": "string"
      },
      "installs": {
        "description": "Displayed install count, for example 1,000,000,000+.",
        "type": "string"
      },
      "isExactMatch": {
        "description": "Whether the record is Google Play's exact-match card.",
        "type": "boolean"
      },
      "language": {
        "description": "Language used for the request.",
        "type": "string"
      },
      "lastUpdated": {
        "description": "Backward-compatible alias of updated.",
        "type": "string"
      },
      "maxInstalls": {
        "description": "Upper bound of the install estimate.",
        "type": "integer"
      },
      "minInstalls": {
        "description": "Lower bound of the install estimate.",
        "type": "integer"
      },
      "name": {
        "description": "App name.",
        "type": "string"
      },
      "offersIAP": {
        "description": "Whether the app offers in-app purchases.",
        "type": "boolean"
      },
      "packageName": {
        "description": "Android package name, for example com.whatsapp.",
        "type": "string"
      },
      "permissionGroups": {
        "description": "Permissions grouped the way Google Play presents them.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "permissions": {
        "description": "Flat permission list with permission, group, and type.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "price": {
        "description": "App price in the selected storefront currency. Zero means free.",
        "type": "number"
      },
      "priceText": {
        "description": "Localized price text.",
        "type": "string"
      },
      "privacyPolicy": {
        "description": "Privacy policy URL.",
        "type": "string"
      },
      "rank": {
        "description": "One-based position in search or developer results.",
        "type": "integer"
      },
      "rating": {
        "description": "Average rating from 0 to 5.",
        "type": "number"
      },
      "ratingCount": {
        "description": "Total number of ratings.",
        "type": "integer"
      },
      "ratings": {
        "description": "Backward-compatible alias of ratingCount.",
        "type": "integer"
      },
      "realInstalls": {
        "description": "Google Play install estimate.",
        "type": "integer"
      },
      "recentChanges": {
        "description": "Latest changelog.",
        "type": "string"
      },
      "recordType": {
        "description": "app, review, permissions, dataSafety, or similar.",
        "type": "string"
      },
      "released": {
        "description": "Original release date as displayed by Google Play.",
        "type": "string"
      },
      "repliedAt": {
        "description": "Backward-compatible developer reply date.",
        "type": "string"
      },
      "replyContent": {
        "description": "Backward-compatible developer reply text.",
        "type": "string"
      },
      "reviewCount": {
        "description": "Total number of written reviews.",
        "type": "integer"
      },
      "reviewId": {
        "description": "Review ID (backward-compatible alias of id).",
        "type": "string"
      },
      "reviewUrl": {
        "description": "Permalink to the review.",
        "type": "string"
      },
      "reviews": {
        "description": "Nested reviews when reviews are requested alongside app records.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "score": {
        "description": "Backward-compatible alias of rating.",
        "type": "number"
      },
      "scoreText": {
        "description": "Rating as displayed by Google Play.",
        "type": "string"
      },
      "scrapedAt": {
        "description": "ISO 8601 collection timestamp.",
        "type": "string"
      },
      "screenshots": {
        "description": "Screenshot URLs.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "searchQuery": {
        "description": "Search query that produced the record.",
        "type": "string"
      },
      "similarApps": {
        "description": "Apps related to the seed app.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "size": {
        "description": "Download size when Google Play exposes it.",
        "type": "string"
      },
      "sort": {
        "description": "Review sort order.",
        "type": "string"
      },
      "sourceUrl": {
        "description": "URL the record was collected from.",
        "type": "string"
      },
      "storeCountry": {
        "description": "Storefront used for a review request.",
        "type": "string"
      },
      "summary": {
        "description": "Short app summary.",
        "type": "string"
      },
      "text": {
        "description": "Review text.",
        "type": "string"
      },
      "thumbsUpCount": {
        "description": "Backward-compatible alias of helpfulCount.",
        "type": "integer"
      },
      "title": {
        "description": "Backward-compatible alias of name.",
        "type": "string"
      },
      "updated": {
        "description": "Last update date.",
        "type": "string"
      },
      "url": {
        "description": "Google Play app URL.",
        "type": "string"
      },
      "userImage": {
        "description": "Reviewer avatar URL.",
        "type": "string"
      },
      "userName": {
        "description": "Reviewer name (backward-compatible alias of author).",
        "type": "string"
      },
      "version": {
        "description": "Latest app version when Google Play publishes it.",
        "type": "string"
      },
      "video": {
        "description": "Promo video URL.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "title": "Google Play Store records",
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "currency": {
            "format": "text",
            "label": "Currency"
          },
          "developer": {
            "format": "text",
            "label": "Developer"
          },
          "genre": {
            "format": "text",
            "label": "Genre"
          },
          "installs": {
            "format": "text",
            "label": "Installs"
          },
          "name": {
            "format": "text",
            "label": "App"
          },
          "packageName": {
            "format": "text",
            "label": "Package"
          },
          "price": {
            "format": "number",
            "label": "Price"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "ratingCount": {
            "format": "number",
            "label": "Ratings"
          },
          "updated": {
            "format": "text",
            "label": "Updated"
          },
          "url": {
            "format": "text",
            "label": "URL"
          }
        }
      },
      "title": "Apps",
      "transformation": {
        "fields": [
          "packageName",
          "name",
          "developer",
          "rating",
          "ratingCount",
          "installs",
          "price",
          "currency",
          "genre",
          "updated",
          "url"
        ]
      }
    },
    "reviews": {
      "display": {
        "component": "table",
        "properties": {
          "appId": {
            "format": "text",
            "label": "App ID"
          },
          "appTitle": {
            "format": "text",
            "label": "App"
          },
          "author": {
            "format": "text",
            "label": "Author"
          },
          "date": {
            "format": "text",
            "label": "Date"
          },
          "helpfulCount": {
            "format": "number",
            "label": "Helpful"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "reviewId": {
            "format": "text",
            "label": "Review ID"
          },
          "text": {
            "format": "text",
            "label": "Review"
          }
        }
      },
      "title": "Reviews",
      "transformation": {
        "fields": [
          "reviewId",
          "appId",
          "appTitle",
          "author",
          "rating",
          "text",
          "date",
          "helpfulCount"
        ]
      }
    },
    "similar": {
      "display": {
        "component": "table",
        "properties": {
          "name": {
            "format": "text",
            "label": "Seed app"
          },
          "packageName": {
            "format": "text",
            "label": "Seed package"
          },
          "similarApps": {
            "format": "text",
            "label": "Similar apps"
          }
        }
      },
      "title": "Similar apps",
      "transformation": {
        "fields": [
          "packageName",
          "name",
          "similarApps"
        ]
      }
    },
    "trust": {
      "display": {
        "component": "table",
        "properties": {
          "dataSafety": {
            "format": "text",
            "label": "Data safety"
          },
          "name": {
            "format": "text",
            "label": "App"
          },
          "packageName": {
            "format": "text",
            "label": "Package"
          },
          "permissions": {
            "format": "text",
            "label": "Permissions"
          }
        }
      },
      "title": "Permissions and data safety",
      "transformation": {
        "fields": [
          "packageName",
          "name",
          "permissions",
          "dataSafety"
        ]
      }
    }
  }
}
