openapi: 3.0.0
info:
  title: Google About This Store API
  version: 1.0.0
  description: |
    Google About This Store API returns metadata about an online store, including ratings, reviews, badges, review category sentiment, merchant videos, social profiles, and individual customer reviews.

    Use this API to check merchant reputation, benchmark competitors, monitor review sentiment, or enrich shopping data with trustworthy store metadata.
servers:
  - url: https://www.searchapi.io/api/v1
paths:
  /search:
    get:
      operationId: searchGoogleAboutThisStore
      summary: Get About This Store data
      description: Returns Google's About This Store metadata for a given domain, including title, description, rating, reviews count, website, thumbnail, badge, social profiles, reviews histogram, rating details, insights, other ratings, shipping, return policy, videos, trending products, and reviews.
      security:
        - ApiKeyAuth: []
        - ApiKeyQuery: []
      parameters:
        - $ref: '#/components/parameters/engine'
        - $ref: '#/components/parameters/api_key'
        - $ref: '#/components/parameters/domain'
        - $ref: '#/components/parameters/gl'
        - $ref: '#/components/parameters/hl'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/rating'
        - $ref: '#/components/parameters/time_period'
        - $ref: '#/components/parameters/reviews_next_page_token'
      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.
          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
  parameters:
    engine:
      name: engine
      in: query
      required: true
      description: Must be set to google_about_this_store.
      schema:
        type: string
        enum: ["google_about_this_store"]
    api_key:
      name: api_key
      in: query
      required: true
      description: Your API key for authentication.
      schema:
        type: string
    domain:
      name: domain
      in: query
      required: true
      description: The domain you want to get information about (e.g., walmart.com).
      schema:
        type: string
    gl:
      name: gl
      in: query
      required: false
      description: Defines the country of the search. Uses a two-letter country code (e.g., us, gb, de).
      schema:
        type: string
        default: "us"
    hl:
      name: hl
      in: query
      required: false
      description: Defines the interface language of the search.
      schema:
        type: string
        default: "en"
    sort_by:
      name: sort_by
      in: query
      required: false
      description: Sorts the reviews returned.
      schema:
        type: string
        enum: ["newest", "most_helpful"]
    rating:
      name: rating
      in: query
      required: false
      description: Filters reviews by star rating.
      schema:
        type: string
        enum: ["5", "4", "3", "2", "1"]
    time_period:
      name: time_period
      in: query
      required: false
      description: Filters reviews by time period.
      schema:
        type: string
        enum: ["last_six_months", "last_year", "last_five_years"]
    reviews_next_page_token:
      name: reviews_next_page_token
      in: query
      required: false
      description: Continuation token for fetching the next page of reviews. Captures the original `domain`, `gl`, `hl`, `sort_by`, `rating`, and `time_period`, so paginated requests only need to pass the token back. Explicit query values override the carried values when you want to change a filter mid-stream.
      schema:
        type: string
  schemas:
    SearchResponse:
      type: object
      properties:
        search_metadata:
          $ref: '#/components/schemas/SearchMetadata'
        search_parameters:
          $ref: '#/components/schemas/SearchParameters'
        store:
          $ref: '#/components/schemas/Store'
        reviews:
          type: array
          description: Returned only on paginated requests (when `reviews_next_page_token` is supplied). Contains the next batch of customer reviews. Initial requests place reviews under `store.reviews`.
          items:
            $ref: '#/components/schemas/Review'
        reviews_next_page_token:
          type: string
          description: Continuation token to fetch the next page of reviews. Pass it back as the `reviews_next_page_token` query parameter — the token already carries the filter context from the original request (domain, gl, hl, sort_by, rating, time_period).
        error:
          type: string
          description: Error message when no results are found.
    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 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: The search engine used.
        domain:
          type: string
          description: The domain queried.
        gl:
          type: string
          description: The country of the search.
        hl:
          type: string
          description: The interface language of the search.
        sort_by:
          type: string
          description: The sort order applied to reviews.
        rating:
          type: string
          description: The star rating filter applied to reviews.
        time_period:
          type: string
          description: The time period filter applied to reviews.
        reviews_next_page_token:
          type: string
          description: Echoes the continuation token used for the request, when present.
    Store:
      type: object
      description: Store metadata returned by Google's About This Store page.
      properties:
        title:
          type: string
          description: The store name.
        description:
          type: string
          description: Machine-generated retailer summary written by Google.
        rating:
          type: number
          format: float
          description: The aggregate store rating (0-5).
        reviews_count:
          type: integer
          description: Total number of reviews aggregated by Google.
        website:
          type: string
          description: The store's website URL.
        thumbnail:
          type: string
          description: URL of the store's logo or thumbnail image.
        badge:
          type: string
          description: Trust badge awarded by Google (e.g., "Top Quality Store").
        social_profiles:
          type: array
          description: Linked social media profiles.
          items:
            $ref: '#/components/schemas/SocialProfile'
        reviews_histogram:
          type: array
          description: Distribution of reviews per star rating, listed from 5 stars down to 1.
          items:
            $ref: '#/components/schemas/ReviewsHistogramRow'
        rating_details:
          type: array
          description: Aggregated review category sentiment (e.g., Shipping, Price, Customer support).
          items:
            $ref: '#/components/schemas/RatingDetail'
        ai_overview:
          type: string
          description: AI-generated summary of customer reviews and web mentions about the store.
        top_reviews:
          type: array
          description: Highlighted full Google reviews surfaced near the top of the page.
          items:
            $ref: '#/components/schemas/Review'
        web_mentions:
          type: array
          description: Snippets of mentions of the store from third-party sites (Quora, Reddit, Facebook, etc.).
          items:
            $ref: '#/components/schemas/WebMention'
        trending_products:
          type: array
          description: Products Google highlights as trending for this merchant.
          items:
            $ref: '#/components/schemas/TrendingProduct'
        shipping:
          $ref: '#/components/schemas/Shipping'
        return_policy:
          $ref: '#/components/schemas/ReturnPolicy'
        insights:
          type: array
          description: Highlighted store insights (e.g., "Exceptional", "Great") with descriptions and a 1..5 score.
          items:
            $ref: '#/components/schemas/Insight'
        other_ratings:
          type: array
          description: Ratings sourced from third-party sites (e.g., ScamAdviser).
          items:
            $ref: '#/components/schemas/OtherRating'
        videos:
          type: array
          description: Videos posted by the merchant (e.g., Instagram, TikTok).
          items:
            $ref: '#/components/schemas/Video'
        video_reviews:
          type: array
          description: Third-party video reviews of the merchant's popular products (typically YouTube).
          items:
            $ref: '#/components/schemas/Video'
        reviews:
          type: array
          description: Individual customer reviews.
          items:
            $ref: '#/components/schemas/Review'
    SocialProfile:
      type: object
      properties:
        name:
          type: string
          description: Name of the social network (e.g., Instagram, YouTube).
        link:
          type: string
          description: URL of the store's profile on the social network.
        thumbnail:
          type: string
          description: URL of the social network logo.
    ReviewsHistogramRow:
      type: object
      properties:
        stars:
          type: integer
          description: The star rating (1-5).
        count:
          type: integer
          description: Number of reviews at this star rating.
        percentage:
          type: integer
          description: Percentage of total reviews at this star rating.
    RatingDetail:
      type: object
      properties:
        name:
          type: string
          description: Name of the review category (e.g., Shipping, Price).
        mentions:
          type: integer
          description: Number of reviews that mention this category.
        sentiments:
          type: array
          description: Sentiment breakdown for the category.
          items:
            $ref: '#/components/schemas/Sentiment'
    Sentiment:
      type: object
      properties:
        label:
          type: string
          description: Sentiment label (e.g., good, poor, competitive, expensive).
        percentage:
          type: integer
          description: Percentage of mentions with this sentiment.
    Insight:
      type: object
      properties:
        name:
          type: string
          description: Name of the insight dimension (e.g., Shipping, Website quality).
        description:
          type: string
          description: Optional description of the insight.
        rating:
          type: integer
          description: Numeric rating on a 1..5 scale, where 5 is best.
        rating_label:
          type: string
          description: Qualitative label for the rating (e.g., Exceptional, Great).
    OtherRating:
      type: object
      properties:
        name:
          type: string
          description: Label Google rendered for the rating (e.g., "ScamAdviser trust score", "Trustpilot").
        rating:
          type: number
          description: Numeric rating value provided by the source.
        rating_max:
          type: integer
          description: Maximum value of the rating scale (e.g., 100 for ScamAdviser, 5 for Trustpilot).
        rating_label:
          type: string
          description: Rating formatted against its scale (e.g., "85/100", "2.6/5").
        link:
          type: string
          description: External link to the source's rating page.
    Video:
      type: object
      properties:
        position:
          type: integer
          description: Position of the video in the list.
        title:
          type: string
          description: Title of the video. For merchant-uploaded social videos this is the post caption; for product review videos this is the YouTube title.
        link:
          type: string
          description: URL of the video.
        thumbnail:
          type: string
          description: URL of the video thumbnail.
        length:
          type: string
          description: Length of the video in mm:ss format.
        length_seconds:
          type: integer
          description: Length of the video in seconds.
        source:
          type: string
          description: Source platform of the video (e.g., Instagram, YouTube).
        author:
          type: string
          description: Author or uploader of the video.
        iso_date:
          type: string
          format: date-time
          description: Publication date of the video in ISO 8601 format.
    TrendingProduct:
      type: object
      properties:
        position:
          type: integer
          description: Position of the product in the trending carousel.
        product_id:
          type: string
          description: Stable Google product identifier.
        title:
          type: string
          description: Product title.
        link:
          type: string
          description: URL of the product on the merchant's website.
        price:
          type: string
          description: Price including currency symbol (e.g., `$63.97`).
        extracted_price:
          type: number
          format: float
          description: Numeric price with sub-unit precision (e.g., 63.97).
        thumbnail:
          type: string
          description: URL of the product thumbnail on Google's CDN.
    Review:
      type: object
      properties:
        position:
          type: integer
          description: Position of the review in the reviews list.
        review_id:
          type: string
          description: Stable Google identifier for the review, useful for client-side deduplication across paginated pulls.
        text:
          type: string
          description: Review text. Absent for star-only reviews. When the review was originally written in another language, this is the translation in the requested hl language.
        has_text:
          type: boolean
          description: Set to true when the review includes written text. Omitted for star-only reviews.
        has_no_text:
          type: boolean
          description: Set to true when the review is star-only with no written text. Omitted when the review has text.
        has_translation:
          type: boolean
          description: Set to true when the review text is a translation of an original written in another language. Omitted when the review is in its original language.
        original_text:
          type: string
          description: The original review text, present when has_translation is true.
        original_language:
          type: string
          description: Language code of the original review text, present when has_translation is true.
        user:
          $ref: '#/components/schemas/ReviewUser'
        rating:
          type: integer
          description: Star rating given by the reviewer (1-5).
        extracted_likes:
          type: integer
          description: Number of users who marked the review as helpful. Present only on top_reviews.
        iso_date:
          type: string
          format: date-time
          description: Date the review was posted in ISO 8601 format.
        source:
          type: string
          description: Source of the review (e.g., Google).
    ReviewUser:
      type: object
      properties:
        name:
          type: string
          description: Reviewer's display name.
        thumbnail:
          type: string
          description: URL of the reviewer's profile picture.
    WebMention:
      type: object
      properties:
        position:
          type: integer
          description: Position of the mention in the list.
        snippet:
          type: string
          description: Excerpted text of the mention.
        source:
          type: string
          description: Source site of the mention (e.g., Quora, Reddit, Facebook).
        source_favicon:
          type: string
          description: URL of the source site's favicon on Google's CDN.
        link:
          type: string
          description: URL of the original post.
        iso_date:
          type: string
          format: date-time
          description: Date the mention was published in ISO 8601 format.
    ReturnPolicy:
      type: object
      description: Store return policy summary, when surfaced by Google.
      properties:
        window_days:
          type: integer
          description: Number of days the customer has to return a purchase.
        url:
          type: string
          description: URL of the store's return policy page.
    Shipping:
      type: object
      description: Store shipping summary, when surfaced by Google.
      properties:
        free_shipping_currency:
          type: string
          description: ISO currency code for the free-shipping minimum (e.g., USD).
        free_shipping_minimum:
          type: integer
          description: Minimum order amount that qualifies for free shipping.
        delivery_min_days:
          type: integer
          description: Lower bound of the typical delivery window in days.
        delivery_max_days:
          type: integer
          description: Upper bound of the typical delivery window in days.
    ErrorResponse:
      type: object
      required: [error]
      properties:
        error:
          type: string
          description: Error message describing what went wrong.
