openapi: 3.0.0
info:
  title: Google Play Product API
  description: |
    Retrieve detailed information about Google Play Store products including apps, games, books, audiobooks, movies, and TV shows.

    **Cross-linking**: This API provides product details that can complement the Google Play Store API for broader product discovery.
  version: 1.0.0
servers:
  - url: https://www.searchapi.io/api/v1
paths:
  /search:
    get:
      summary: Google Play Product Search
      security:
        - ApiKeyAuth: []
        - ApiKeyQuery: []
      parameters:
        - name: engine
          in: query
          required: true
          description: Search engine to use
          schema:
            type: string
            enum: ["google_play_product"]
        - name: store
          in: query
          required: true
          description: Google Play store type
          schema:
            type: string
            enum: ["apps", "books", "movies", "tv", "audiobooks"]
            default: "apps"
        - name: product_id
          in: query
          required: true
          description: Google Play product identifier
          schema:
            type: string
        - name: hl
          in: query
          required: false
          description: Interface language (ISO 639-1 code)
          schema:
            type: string
            enum: ["af", "ak", "sq", "am", "ar", "hy", "az", "eu", "be", "bem", "bn", "bh", "xx-bork", "bs", "br", "bg", "km", "ca", "chr", "ny", "zh-cn", "zh-tw", "co", "hr", "cs", "da", "nl", "xx-elmer", "en", "eo", "et", "ee", "fo", "tl", "fi", "fr", "fy", "gaa", "gl", "ka", "de", "el", "kl", "gn", "gu", "xx-hacker", "ht", "ha", "haw", "iw", "hi", "hu", "is", "ig", "id", "ia", "ga", "it", "ja", "jw", "kn", "kk", "rw", "rn", "xx-klingon", "kg", "ko", "kri", "ku", "ckb", "ky", "lo", "la", "lv", "ln", "lt", "loz", "lg", "ach", "mk", "mg", "my", "ms", "ml", "mt", "mv", "mi", "mr", "mfe", "mo", "mn", "sr-me", "ne", "pcm", "nso", "no", "nn", "oc", "or", "om", "ps", "fa", "xx-pirate", "pl", "pt", "pt-br", "pt-pt", "pa", "qu", "ro", "rm", "nyn", "ru", "gd", "sr", "sh", "st", "tn", "crs", "sn", "sd", "si", "sk", "sl", "so", "es", "es-419", "su", "sw", "sv", "tg", "ta", "tt", "te", "th", "ti", "to", "lua", "tum", "tr", "tk", "tw", "ug", "uk", "ur", "uz", "vu", "vi", "cy", "wo", "xh", "yi", "yo", "zu"]
            default: "en"
        - name: gl
          in: query
          required: false
          description: Country code (ISO 3166-1 alpha-2)
          schema:
            type: string
            enum: ["af", "al", "dz", "as", "ad", "ao", "ai", "aq", "ag", "ar", "am", "aw", "au", "at", "az", "bs", "bh", "bd", "bb", "by", "be", "bz", "bj", "bm", "bt", "bo", "ba", "bw", "bv", "br", "io", "bn", "bg", "bf", "bi", "kh", "cm", "ca", "cv", "ky", "cf", "td", "cl", "cn", "cx", "cc", "co", "km", "cg", "cd", "ck", "cr", "ci", "hr", "cu", "cy", "cz", "dk", "dj", "dm", "do", "ec", "eg", "sv", "gq", "er", "ee", "et", "fk", "fo", "fj", "fi", "fr", "gf", "pf", "tf", "ga", "gm", "ge", "de", "gh", "gi", "gr", "gl", "gd", "gp", "gu", "gt", "gn", "gw", "gy", "ht", "hm", "va", "hn", "hk", "hu", "is", "in", "id", "ir", "iq", "ie", "il", "it", "jm", "jp", "jo", "kz", "ke", "ki", "kp", "kr", "kw", "kg", "la", "lv", "lb", "ls", "lr", "ly", "li", "lt", "lu", "mo", "mk", "mg", "mw", "my", "mv", "ml", "mt", "mh", "mq", "mr", "mu", "yt", "mx", "fm", "md", "mc", "mn", "ms", "ma", "mz", "mm", "na", "nr", "np", "nl", "nc", "nz", "ni", "ne", "ng", "nu", "nf", "mp", "no", "om", "pk", "pw", "ps", "pa", "pg", "py", "pe", "ph", "pn", "pl", "pt", "pr", "qa", "re", "ro", "ru", "rw", "sh", "kn", "lc", "pm", "vc", "ws", "sm", "st", "sa", "sn", "rs", "sc", "sl", "sg", "sk", "si", "sb", "so", "za", "gs", "es", "lk", "sd", "sr", "sj", "sz", "se", "ch", "sy", "tw", "tj", "tz", "th", "tl", "tg", "tk", "to", "tt", "tn", "tr", "tm", "tc", "tv", "ug", "ua", "ae", "uk", "gb", "us", "um", "uy", "uz", "vu", "ve", "vn", "vg", "vi", "wf", "eh", "ye", "zm", "zw", "gg", "je", "im", "me"]
            default: "us"
        - name: season_id
          in: query
          required: false
          description: Season ID for TV shows (only supported for tv store)
          schema:
            type: string
        - name: num
          in: query
          required: false
          description: Number of reviews to retrieve
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 40
        - name: next_page_token
          in: query
          required: false
          description: Token for retrieving next page of reviews
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          description: Validation Error. There is an issue with query parameters, such as missing required parameters or invalid values.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication Error. The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate Limit Exceeded. The number of allowed requests has been exceeded. Consider upgrading your plan or waiting for the limit to reset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server Error. Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Timeout. We could not retrieve results in 90 seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use Bearer authentication. Format: "Bearer YOUR_API_KEY"'
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: Pass API key as query parameter
  schemas:
    SearchResponse:
      type: object
      properties:
        search_metadata:
          $ref: '#/components/schemas/SearchMetadata'
        search_parameters:
          $ref: '#/components/schemas/SearchParameters'
        product:
          $ref: '#/components/schemas/Product'
        media:
          $ref: '#/components/schemas/Media'
        staff:
          $ref: '#/components/schemas/Staff'
        data_safety:
          $ref: '#/components/schemas/DataSafety'
        additional_information:
          $ref: '#/components/schemas/AdditionalInformation'
        episodes:
          $ref: '#/components/schemas/Episodes'
        seasons:
          $ref: '#/components/schemas/Seasons'
        extras:
          $ref: '#/components/schemas/Extras'
        similar_products:
          $ref: '#/components/schemas/SimilarProducts'
        reviews:
          $ref: '#/components/schemas/Reviews'
        reviews_pagination:
          $ref: '#/components/schemas/ReviewsPagination'

    SearchMetadata:
      type: object
      required: [id, status, created_at]
      properties:
        id:
          type: string
          description: Unique identifier for the search request
        status:
          type: string
          description: Status of the search request
        created_at:
          type: string
          format: date-time
          description: Timestamp when the search was created
        request_time_taken:
          type: number
          description: Time taken to make the request in seconds
        parsing_time_taken:
          type: number
          description: Time taken to parse the results in seconds
        total_time_taken:
          type: number
          description: Total time taken for the search in seconds
        request_url:
          type: string
          description: Google Play URL for this search
        html_url:
          type: string
          description: URL to view HTML results
        json_url:
          type: string
          description: URL to view JSON results

    SearchParameters:
      type: object
      properties:
        engine:
          type: string
          description: Search engine used
        store:
          type: string
          description: Google Play store type
        gl:
          type: string
          description: Country code used
        hl:
          type: string
          description: Interface language used
        product_id:
          type: string
          description: Product identifier searched
        season_id:
          type: string
          description: Season ID for TV shows
        num:
          type: integer
          description: Number of reviews retrieved
        next_page_token:
          type: string
          description: Token for next page of reviews

    Product:
      type: object
      properties:
        title:
          type: string
          description: Product title
        product_id:
          type: string
          description: Google Play product identifier
        authors:
          type: array
          items:
            $ref: '#/components/schemas/Author'
          description: Product authors or developers
        narrator:
          type: string
          description: Narrator name (audiobooks only)
        series:
          $ref: '#/components/schemas/Series'
        about_the_author:
          $ref: '#/components/schemas/AboutTheAuthor'
        developer_contact:
          $ref: '#/components/schemas/DeveloperContact'
        extensions:
          type: array
          items:
            type: string
          description: Additional product information
        release_date:
          type: string
          description: Product release date
        audiobook_link:
          $ref: '#/components/schemas/RelatedLink'
        book_link:
          $ref: '#/components/schemas/RelatedLink'
        rating:
          type: number
          description: Average user rating
        reviews:
          type: integer
          description: Total number of reviews
        reviews_histogram:
          $ref: '#/components/schemas/ReviewsHistogram'
        downloads:
          type: string
          description: Download count range (apps only)
        content_rating:
          $ref: '#/components/schemas/ContentRating'
        price:
          type: string
          description: Product price
        extracted_price:
          type: number
          description: Numerical price value
        offers:
          type: array
          items:
            $ref: '#/components/schemas/Offer'
          description: Available purchase offers
        rank:
          type: string
          description: Product ranking information
        categories:
          oneOf:
            - type: array
              items:
                $ref: '#/components/schemas/Category'
            - $ref: '#/components/schemas/Category'
          description: Product categories
        snippet:
          type: string
          description: Short product description
        description:
          type: string
          description: Full product description
        thumbnail:
          type: string
          description: Product thumbnail image URL
        duration:
          type: string
          description: Movie/video duration
        tomatometer:
          type: string
          description: Rotten Tomatoes rating
        eligible:
          type: string
          description: Eligibility information
        pages:
          type: integer
          description: Number of pages (books only)
        length:
          type: string
          description: Audio length (audiobooks only)
        reading_information:
          type: array
          items:
            $ref: '#/components/schemas/InformationItem'
          description: Reading-related information
        listening_information:
          type: array
          items:
            $ref: '#/components/schemas/InformationItem'
          description: Listening-related information

    Author:
      type: object
      properties:
        name:
          type: string
          description: Author or developer name
        id:
          type: string
          description: Author identifier
        link:
          type: string
          description: Link to author page
        description:
          type: string
          description: Author description

    Series:
      type: object
      properties:
        current:
          type: string
          description: Current book in series
        name:
          type: string
          description: Series name
        id:
          type: string
          description: Series identifier
        link:
          type: string
          description: Link to series page

    AboutTheAuthor:
      type: object
      properties:
        description:
          type: string
          description: Author biography
        thumbnail:
          type: string
          description: Author photo URL

    DeveloperContact:
      type: object
      properties:
        website:
          type: string
          description: Developer website URL
        phone_number:
          type: string
          description: Developer phone number
        email:
          type: string
          description: Developer email address
        address:
          type: string
          description: Developer physical address
        privacy_policy:
          type: string
          description: Privacy policy URL

    RelatedLink:
      type: object
      properties:
        text:
          type: string
          description: Link text
        product_id:
          type: string
          description: Related product identifier
        link:
          type: string
          description: Link URL

    ReviewsHistogram:
      type: object
      properties:
        '1':
          type: integer
          description: Number of 1-star reviews
        '2':
          type: integer
          description: Number of 2-star reviews
        '3':
          type: integer
          description: Number of 3-star reviews
        '4':
          type: integer
          description: Number of 4-star reviews
        '5':
          type: integer
          description: Number of 5-star reviews

    ContentRating:
      type: object
      properties:
        category:
          type: string
          description: Content rating category
        description:
          type: string
          description: Content rating description
        thumbnail:
          type: string
          description: Content rating icon URL

    Offer:
      type: object
      properties:
        text:
          type: string
          description: Offer description text
        title:
          type: string
          description: Offer title
        link:
          type: string
          description: Purchase link
        price:
          type: string
          description: Offer price
        extracted_price:
          type: number
          description: Numerical price value
        original_price:
          type: string
          description: Original price before discount
        extracted_original_price:
          type: number
          description: Numerical original price value
        description:
          type: string
          description: Offer description

    Category:
      type: object
      properties:
        title:
          type: string
          description: Category name
        category:
          type: string
          description: Category name (alternative field)
        link:
          type: string
          description: Category page URL
        id:
          type: string
          description: Category identifier

    InformationItem:
      type: object
      properties:
        title:
          type: string
          description: Information title
        description:
          type: string
          description: Information description

    Media:
      type: object
      properties:
        images:
          type: array
          items:
            type: string
          description: Product screenshot URLs
        background_image:
          type: string
          description: Background image URL
        video:
          oneOf:
            - type: string
            - $ref: '#/components/schemas/VideoMedia'
          description: Video content

    VideoMedia:
      type: object
      properties:
        link:
          type: string
          description: Video URL
        thumbnail:
          type: string
          description: Video thumbnail URL

    Staff:
      type: object
      properties:
        actors:
          type: array
          items:
            $ref: '#/components/schemas/StaffMember'
          description: Movie/TV show actors
        directors:
          type: array
          items:
            $ref: '#/components/schemas/StaffMember'
          description: Movie/TV show directors
        producers:
          type: array
          items:
            $ref: '#/components/schemas/StaffMember'
          description: Movie/TV show producers
        writers:
          type: array
          items:
            $ref: '#/components/schemas/StaffMember'
          description: Movie/TV show writers

    StaffMember:
      type: object
      properties:
        name:
          type: string
          description: Staff member name
        link:
          type: string
          description: Link to staff member page

    DataSafety:
      type: array
      items:
        $ref: '#/components/schemas/DataSafetyItem'
      description: App data safety information

    DataSafetyItem:
      type: object
      properties:
        title:
          type: string
          description: Data safety item title
        subtitle:
          type: string
          description: Data safety item subtitle
        thumbnail:
          type: string
          description: Data safety icon URL
        link:
          type: string
          description: More information link

    AdditionalInformation:
      type: object
      properties:
        version:
          type: string
          description: App version
        required_android:
          type: string
          description: Required Android version
        recent_updates:
          type: array
          items:
            type: string
          description: Recent update notes
        last_updated:
          type: string
          description: Last update date
        language:
          type: string
          description: Product language
        seller:
          type: string
          description: Product seller
        content_protection:
          type: string
          description: Content protection information
        genres:
          type: array
          items:
            type: string
          description: Product genres

    Episodes:
      type: array
      items:
        $ref: '#/components/schemas/Episode'
      description: TV show episodes

    Episode:
      type: object
      properties:
        title:
          type: string
          description: Episode title
        description:
          type: string
          description: Episode description
        price:
          type: string
          description: Episode price
        extracted_price:
          type: number
          description: Numerical episode price
        date:
          type: string
          description: Episode air date
        thumbnail:
          type: string
          description: Episode thumbnail URL

    Seasons:
      type: object
      properties:
        current:
          $ref: '#/components/schemas/Season'
        all:
          type: array
          items:
            $ref: '#/components/schemas/Season'
          description: All available seasons

    Season:
      type: object
      properties:
        season:
          type: string
          description: Season number or name
        season_id:
          type: string
          description: Season identifier
        link:
          type: string
          description: Season page URL
        offers:
          type: array
          items:
            $ref: '#/components/schemas/SeasonOffer'
          description: Season purchase offers

    SeasonOffer:
      type: object
      properties:
        price:
          type: string
          description: Season price
        extracted_price:
          type: number
          description: Numerical season price
        description:
          type: string
          description: Offer description
        link:
          type: string
          description: Purchase link

    Extras:
      type: object
      properties:
        title:
          type: string
          description: Extras section title
        subtitle:
          type: string
          description: Extras section subtitle
        items:
          type: array
          items:
            $ref: '#/components/schemas/ExtraItem'
          description: Extra content items

    ExtraItem:
      type: object
      properties:
        title:
          type: string
          description: Extra item title
        description:
          type: string
          description: Extra item description
        length:
          type: string
          description: Extra item duration
        thumbnail:
          type: string
          description: Extra item thumbnail URL

    SimilarProducts:
      type: array
      items:
        $ref: '#/components/schemas/SimilarProductsSection'
      description: Related products recommendations

    SimilarProductsSection:
      type: object
      properties:
        title:
          type: string
          description: Section title
        see_more_link:
          type: string
          description: Link to see more products
        see_more_token:
          type: string
          description: Token for loading more products
        items:
          type: array
          items:
            $ref: '#/components/schemas/SimilarProduct'
          description: Similar product items

    SimilarProduct:
      type: object
      properties:
        title:
          type: string
          description: Product title
        author:
          type: string
          description: Product author/developer
        product_id:
          type: string
          description: Product identifier
        link:
          type: string
          description: Product page URL
        rating:
          type: number
          description: Product rating
        price:
          type: string
          description: Product price
        extracted_price:
          type: number
          description: Numerical price value
        original_price:
          type: string
          description: Original price before discount
        extracted_original_price:
          type: number
          description: Numerical original price value
        free:
          type: boolean
          description: Whether the product is free
        thumbnail:
          type: string
          description: Product thumbnail URL

    Reviews:
      type: array
      items:
        $ref: '#/components/schemas/Review'
      description: User reviews

    Review:
      type: object
      properties:
        id:
          type: string
          description: Review identifier
        product_version:
          type: string
          description: Product version at time of review
        username:
          type: string
          description: Reviewer username
        avatar:
          type: string
          description: Reviewer avatar URL
        rating:
          type: integer
          description: Review rating (1-5 stars)
        link:
          type: string
          description: Link to full review
        text:
          type: string
          description: Review text content
        likes:
          type: integer
          description: Number of helpful votes
        date:
          type: string
          description: Review date
        iso_date:
          type: string
          description: Review date in ISO format
        response:
          $ref: '#/components/schemas/ReviewResponse'

    ReviewResponse:
      type: object
      properties:
        username:
          type: string
          description: Developer response username
        text:
          type: string
          description: Developer response text
        date:
          type: string
          description: Response date
        iso_date:
          type: string
          description: Response date in ISO format

    ReviewsPagination:
      type: object
      properties:
        next_page_token:
          type: string
          description: Token for retrieving next page of reviews

    ErrorResponse:
      type: object
      required: [error]
      properties:
        error:
          type: string
          description: Error message describing what went wrong