> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# App Store app details

> One canonical App Store app record with description, subtitle, developer, public website, category, ratings, price, original release, version, screenshots, supported languages and related apps when supplied. Google-only fields remain null. Country accepts a documented ISO code, full name or numeric location code; language selects the DataForSEO task locale. Public Apple lookups enrich missing metadata; their category labels are not guaranteed to match the requested language. Mixed-source age advisories remain separate. Nonempty uncached responses cost five credits. Empty search, failures, cache and replay are free. Task submissions are durable and capped at twenty within the existing trial; polling may return free UPSTREAM_TASK_PENDING with the same task reused on retry. This finite trial is not sustained production capacity.

Pass one numeric `app_id`, obtained from app-search. The response `data` is one canonical App object, not a one-item list. It includes description, subtitle, developer and public website, category, ratings, price, release/update date, version, minimum OS, screenshots, supported languages and related/developer apps when supplied. Missing fields remain null. Google-only install/email/address fields are null. A missing app is an uncharged 404.

Choose one of the source's 105 country locations by ISO code, country name or numeric code (`US`, `United Kingdom`, `2840`). `UK` aliases `GB`. Language uses one of the 39 supported source locale codes and defaults to `en`; unsupported countries/languages fail before submitting tasks.

DataForSEO supplies ranking and localized listing text. Anonymous Apple batch lookups provide developer/category metadata and missing detail fields. Those enrichment labels are not guaranteed to match the requested language. Age advisories can differ between the two sources: the source page advisory stays in `advisories` and Apple's rating is retained under `ext.appdata.apple_advisory`. The adapter does not hide that disagreement or infer a rating.

Nonempty uncached results cost **5 credits** regardless of depth. Empty search results, all failures, cache hits and successful replays are free. Use `X-Max-Credits: 5`. A failed enrichment batch rejects the collection instead of charging for incomplete app rows. Use a 60-second client timeout. When task processing exceeds the polling window, an uncharged `UPSTREAM_TASK_PENDING` response asks you to retry the same parameters; durable task state avoids a new provider submission for one hour.

<Note>New source tasks share a non-resetting ceiling of twenty submissions within the existing DataForSEO trial balance. No paid plan or top-up is enabled. Ongoing funded capacity remains unconfigured.</Note>


## OpenAPI

````yaml GET /app_store/app-info
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /app_store/app-info:
    get:
      tags:
        - App Store
      summary: App Store App Info
      description: >-
        One canonical App Store app record with description, subtitle,
        developer, public website, category, ratings, price, original release,
        version, screenshots, supported languages and related apps when
        supplied. Google-only fields remain null. Country accepts a documented
        ISO code, full name or numeric location code; language selects the
        DataForSEO task locale. Public Apple lookups enrich missing metadata;
        their category labels are not guaranteed to match the requested
        language. Mixed-source age advisories remain separate. Nonempty uncached
        responses cost five credits. Empty search, failures, cache and replay
        are free. Task submissions are durable and capped at twenty within the
        existing trial; polling may return free UPSTREAM_TASK_PENDING with the
        same task reused on retry. This finite trial is not sustained production
        capacity.
      operationId: get_app_store_app_info
      parameters:
        - name: app_id
          in: query
          required: true
          example: '324684580'
          schema:
            type: string
        - name: country
          in: query
          required: false
          example: United States
          schema:
            type: string
          description: >-
            One of 105 documented App Store source locations: ISO code, full
            country name or numeric location code. UK aliases GB; default US.
        - name: language
          in: query
          required: false
          schema:
            type: string
          description: >-
            One of the 39 source language codes. The source task uses this
            locale; Apple metadata enrichment labels are not guaranteed to use
            it. Default en.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            One canonical App Store app record with description, subtitle,
            developer, public website, category, ratings, price, original
            release, version, screenshots, supported languages and related apps
            when supplied. Google-only fields remain null. Country accepts a
            documented ISO code, full name or numeric location code; language
            selects the DataForSEO task locale. Public Apple lookups enrich
            missing metadata; their category labels are not guaranteed to match
            the requested language. Mixed-source age advisories remain separate.
            Nonempty uncached responses cost five credits. Empty search,
            failures, cache and replay are free. Task submissions are durable
            and capped at twenty within the existing trial; polling may return
            free UPSTREAM_TASK_PENDING with the same task reused on retry. This
            finite trial is not sustained production capacity.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          id:
                            type: string
                            description: >-
                              Store app ID (Google Play package name / App Store
                              numeric id)
                          store:
                            type: string
                            description: App marketplace ("google_play" or "app_store")
                          url:
                            type:
                              - string
                              - 'null'
                            description: String at app.url
                          title:
                            type:
                              - string
                              - 'null'
                            description: App title
                          subtitle:
                            type:
                              - string
                              - 'null'
                            description: String at app.subtitle
                          icon:
                            type:
                              - string
                              - 'null'
                            description: String at app.icon
                          description:
                            type:
                              - string
                              - 'null'
                            description: String at app.description
                          developer:
                            type: object
                            description: >-
                              Developer block (name, id, url; email/address for
                              Google)
                            properties:
                              id:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.developer.id
                              name:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.developer.name
                              url:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.developer.url
                              email:
                                type: 'null'
                              address:
                                type: 'null'
                              website:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.developer.website
                          rating:
                            type: object
                            description: Aggregate rating (value, max, number of ratings)
                            properties:
                              value:
                                type:
                                  - number
                                  - 'null'
                                minimum: 0
                                maximum: 5
                              max:
                                type:
                                  - number
                                  - 'null'
                                enum:
                                  - 5
                                  - null
                              count:
                                type:
                                  - integer
                                  - 'null'
                                minimum: 0
                          price:
                            type: object
                            description: >-
                              Price block (current, original, currency, is_free,
                              displayed)
                            properties:
                              current:
                                type:
                                  - number
                                  - 'null'
                                minimum: 0
                              original:
                                type:
                                  - number
                                  - 'null'
                                minimum: 0
                              currency:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.price.currency
                              is_free:
                                type:
                                  - boolean
                                  - 'null'
                                description: Boolean at app.price.is_free
                              displayed:
                                type:
                                  - string
                                  - 'null'
                                description: String at app.price.displayed
                          reviews_count:
                            type:
                              - integer
                              - 'null'
                            description: Numeric at app.reviews_count
                          category:
                            type:
                              - string
                              - 'null'
                            description: String at app.category
                          categories:
                            type:
                              - array
                              - 'null'
                            description: Array at app.categories
                            items:
                              type: string
                              description: String at app.categories
                          installs:
                            type: 'null'
                          version:
                            type:
                              - string
                              - 'null'
                            description: String at app.version
                          minimum_os_version:
                            type:
                              - string
                              - 'null'
                            description: String at app.minimum_os_version
                          size:
                            type:
                              - string
                              - 'null'
                            description: String at app.size
                          released_at:
                            type:
                              - string
                              - integer
                              - 'null'
                            description: 'Union: string | integer | null'
                          updated_at:
                            type:
                              - string
                              - integer
                              - 'null'
                            description: 'Union: string | integer | null'
                          update_notes:
                            type:
                              - string
                              - 'null'
                            description: String at app.update_notes
                          image_urls:
                            type:
                              - array
                              - 'null'
                            description: Screenshot URLs
                            items:
                              type: string
                              description: Screenshot URLs
                          video_urls:
                            type: 'null'
                          languages:
                            type:
                              - array
                              - 'null'
                            description: Array at app.languages
                            items:
                              type: string
                              description: String at app.languages
                          advisories:
                            type:
                              - array
                              - 'null'
                            description: Apple age/content advisories (null on Google)
                            items:
                              type: string
                              description: Apple age/content advisories (null on Google)
                          genres:
                            type: 'null'
                          tags:
                            type: 'null'
                          similar_apps:
                            type:
                              - array
                              - 'null'
                            description: Array at app.similar_apps
                            items:
                              type: object
                              description: 'Nested object: app.similar_apps'
                              properties:
                                id:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.similar_apps.id
                                title:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.similar_apps.title
                                url:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.similar_apps.url
                          more_by_developer:
                            type:
                              - array
                              - 'null'
                            description: Array at app.more_by_developer
                            items:
                              type: object
                              description: 'Nested object: app.more_by_developer'
                              properties:
                                id:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.more_by_developer.id
                                title:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.more_by_developer.title
                                url:
                                  type:
                                    - string
                                    - 'null'
                                  description: String at app.more_by_developer.url
                          ext:
                            type: object
                            properties:
                              appdata:
                                type: object
                                properties:
                                  country:
                                    type: string
                                  requested_language:
                                    type: string
                                  source:
                                    const: dataforseo
                                  enrichment_source:
                                    const: apple_itunes
                                  source_rank:
                                    type:
                                      - integer
                                      - 'null'
                                    minimum: 0
                                  apple_advisory:
                                    type:
                                      - string
                                      - 'null'
                                  coverage_note:
                                    type: string
                                required:
                                  - country
                                  - requested_language
                                  - source
                                  - enrichment_source
                                  - source_rank
                                  - apple_advisory
                                  - coverage_note
                                additionalProperties: false
                            required:
                              - appdata
                            additionalProperties: false
                        required:
                          - id
                          - store
                          - url
                          - title
                          - subtitle
                          - icon
                          - description
                          - developer
                          - rating
                          - price
                          - reviews_count
                          - category
                          - categories
                          - installs
                          - version
                          - minimum_os_version
                          - size
                          - released_at
                          - updated_at
                          - update_notes
                          - image_urls
                          - video_urls
                          - languages
                          - advisories
                          - genres
                          - tags
                          - similar_apps
                          - more_by_developer
                          - ext
                        additionalProperties: false
                    required:
                      - data
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.