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

# Get a product

> One product: its trend, the prompts that showed it and the shopping prompts that did not, the products shown alongside it, its quoted prices by day and its stores.



## OpenAPI

````yaml /api-reference/openapi.json get /projects/{projectId}/products/{productKey}
openapi: 3.1.0
info:
  title: Citino API
  version: v1
  description: >-
    Read how AI engines answer your market's questions, and keep your prompts,
    competitors, segments and engines in step from code. Every number carries
    its band and sample size.
servers:
  - url: https://api.citino.ai/v1
security:
  - bearerAuth: []
tags:
  - name: Brand and competitors
  - name: Definitions
  - name: Engines
  - name: Projects
  - name: Alerts
  - name: Attribution
  - name: Claims
  - name: Crawlability
  - name: Crawler activity
  - name: Metrics
  - name: Experiments
  - name: Prompts
  - name: Objections
  - name: Products
  - name: Monthly reports
  - name: Reports
  - name: Runs
  - name: Searches
  - name: Sources
  - name: Work items
  - name: Settings
paths:
  /projects/{projectId}/products/{productKey}:
    get:
      tags:
        - Products
      summary: Get a product
      description: >-
        One product: its trend, the prompts that showed it and the shopping
        prompts that did not, the products shown alongside it, its quoted prices
        by day and its stores.
      operationId: getProjectsByProjectIdProductsByProductKey
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: productKey
          in: path
          required: true
          schema:
            type: string
        - name: window
          in: query
          required: false
          schema:
            type: string
            enum:
              - 7d
              - 30d
              - 90d
              - 180d
              - 365d
              - custom
        - name: from
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
        - name: to
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
        - name: segments
          in: query
          required: false
          schema:
            type: string
        - name: engines
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  product_key:
                    type: string
                  title:
                    type: string
                  yours:
                    type: boolean
                  visibility:
                    anyOf:
                      - type: object
                        properties:
                          value:
                            type:
                              - number
                              - 'null'
                          unit:
                            type: string
                            enum:
                              - percent
                              - points
                              - count
                              - score
                              - rank
                              - ratio
                          band:
                            type:
                              - number
                              - 'null'
                          'n':
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          delta:
                            type:
                              - number
                              - 'null'
                          within_noise:
                            type: boolean
                          low_sample:
                            type: boolean
                          state:
                            type: string
                            enum:
                              - measured
                              - no_data
                              - never_named
                          note:
                            type: string
                        required:
                          - value
                          - unit
                          - band
                          - 'n'
                          - delta
                          - within_noise
                          - low_sample
                          - state
                        additionalProperties: false
                        description: >-
                          A measured number with its uncertainty. value is null
                          with n = 0 (no answers yet); within_noise true means a
                          delta is not a move.
                      - type: 'null'
                  win_rate:
                    anyOf:
                      - type: object
                        properties:
                          value:
                            type:
                              - number
                              - 'null'
                          unit:
                            type: string
                            enum:
                              - percent
                              - points
                              - count
                              - score
                              - rank
                              - ratio
                          band:
                            type:
                              - number
                              - 'null'
                          'n':
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          delta:
                            type:
                              - number
                              - 'null'
                          within_noise:
                            type: boolean
                          low_sample:
                            type: boolean
                          state:
                            type: string
                            enum:
                              - measured
                              - no_data
                              - never_named
                          note:
                            type: string
                        required:
                          - value
                          - unit
                          - band
                          - 'n'
                          - delta
                          - within_noise
                          - low_sample
                          - state
                        additionalProperties: false
                        description: >-
                          A measured number with its uncertainty. value is null
                          with n = 0 (no answers yet); within_noise true means a
                          delta is not a move.
                      - type: 'null'
                  position:
                    anyOf:
                      - type: object
                        properties:
                          value:
                            type:
                              - number
                              - 'null'
                          unit:
                            type: string
                            enum:
                              - percent
                              - points
                              - count
                              - score
                              - rank
                              - ratio
                          band:
                            type:
                              - number
                              - 'null'
                          'n':
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          delta:
                            type:
                              - number
                              - 'null'
                          within_noise:
                            type: boolean
                          low_sample:
                            type: boolean
                          state:
                            type: string
                            enum:
                              - measured
                              - no_data
                              - never_named
                          note:
                            type: string
                        required:
                          - value
                          - unit
                          - band
                          - 'n'
                          - delta
                          - within_noise
                          - low_sample
                          - state
                        additionalProperties: false
                        description: >-
                          A measured number with its uncertainty. value is null
                          with n = 0 (no answers yet); within_noise true means a
                          delta is not a move.
                      - type: 'null'
                  appearances:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  price:
                    anyOf:
                      - type: object
                        properties:
                          amount:
                            type: string
                          currency:
                            type: string
                        required:
                          - amount
                          - currency
                        additionalProperties: false
                      - type: 'null'
                  stores:
                    type: array
                    items:
                      type: object
                      properties:
                        domain:
                          type: string
                        cards:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        share:
                          type: number
                      required:
                        - domain
                        - cards
                        - share
                      additionalProperties: false
                  trend:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          pattern: ^\d{4}-\d{2}-\d{2}$
                        visibility:
                          anyOf:
                            - type: object
                              properties:
                                value:
                                  type:
                                    - number
                                    - 'null'
                                unit:
                                  type: string
                                  enum:
                                    - percent
                                    - points
                                    - count
                                    - score
                                    - rank
                                    - ratio
                                band:
                                  type:
                                    - number
                                    - 'null'
                                'n':
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                delta:
                                  type:
                                    - number
                                    - 'null'
                                within_noise:
                                  type: boolean
                                low_sample:
                                  type: boolean
                                state:
                                  type: string
                                  enum:
                                    - measured
                                    - no_data
                                    - never_named
                                note:
                                  type: string
                              required:
                                - value
                                - unit
                                - band
                                - 'n'
                                - delta
                                - within_noise
                                - low_sample
                                - state
                              additionalProperties: false
                              description: >-
                                A measured number with its uncertainty. value is
                                null with n = 0 (no answers yet); within_noise
                                true means a delta is not a move.
                            - type: 'null'
                      required:
                        - date
                        - visibility
                      additionalProperties: false
                  prompts:
                    type: object
                    properties:
                      shown:
                        type: array
                        items:
                          type: object
                          properties:
                            prompt_id:
                              type: string
                            text:
                              type:
                                - string
                                - 'null'
                            appearances:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            shopping_answers:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            visibility:
                              anyOf:
                                - type: object
                                  properties:
                                    value:
                                      type:
                                        - number
                                        - 'null'
                                    unit:
                                      type: string
                                      enum:
                                        - percent
                                        - points
                                        - count
                                        - score
                                        - rank
                                        - ratio
                                    band:
                                      type:
                                        - number
                                        - 'null'
                                    'n':
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    delta:
                                      type:
                                        - number
                                        - 'null'
                                    within_noise:
                                      type: boolean
                                    low_sample:
                                      type: boolean
                                    state:
                                      type: string
                                      enum:
                                        - measured
                                        - no_data
                                        - never_named
                                    note:
                                      type: string
                                  required:
                                    - value
                                    - unit
                                    - band
                                    - 'n'
                                    - delta
                                    - within_noise
                                    - low_sample
                                    - state
                                  additionalProperties: false
                                  description: >-
                                    A measured number with its uncertainty.
                                    value is null with n = 0 (no answers yet);
                                    within_noise true means a delta is not a
                                    move.
                                - type: 'null'
                          required:
                            - prompt_id
                            - text
                            - appearances
                            - shopping_answers
                            - visibility
                          additionalProperties: false
                      not_shown:
                        type: array
                        items:
                          type: object
                          properties:
                            prompt_id:
                              type: string
                            text:
                              type:
                                - string
                                - 'null'
                            shopping_answers:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                          required:
                            - prompt_id
                            - text
                            - shopping_answers
                          additionalProperties: false
                    required:
                      - shown
                      - not_shown
                    additionalProperties: false
                  alongside:
                    type: array
                    items:
                      type: object
                      properties:
                        product_key:
                          type: string
                        title:
                          type:
                            - string
                            - 'null'
                        answers:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                      required:
                        - product_key
                        - title
                        - answers
                      additionalProperties: false
                  prices:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          pattern: ^\d{4}-\d{2}-\d{2}$
                        amount:
                          type: string
                        currency:
                          type: string
                      required:
                        - date
                        - amount
                        - currency
                      additionalProperties: false
                required:
                  - product_key
                  - title
                  - yours
                  - visibility
                  - win_rate
                  - position
                  - appearances
                  - price
                  - stores
                  - trend
                  - prompts
                  - alongside
                  - prices
                additionalProperties: false
        '400':
          description: The request is invalid; `error.field` names the parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: 'No live API key in an `Authorization: Bearer` header.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key lacks the scope named in the message, or cannot write.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such resource in this key's projects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Over the key's or the workspace's rate limit; see `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Busy or timed out; retry after `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: bash
          label: curl
          source: >-
            curl
            "https://api.citino.ai/v1/projects/{projectId}/products/{productKey}"
            \
              -H "Authorization: Bearer $CITINO_API_KEY"
        - lang: python
          label: Python
          source: |-
            import os
            import requests

            res = requests.get(
                "https://api.citino.ai/v1/projects/{projectId}/products/{productKey}",
                headers={"Authorization": f"Bearer {os.environ['CITINO_API_KEY']}"},
            )
            print(res.json())
        - lang: javascript
          label: JavaScript
          source: >-
            const res = await
            fetch("https://api.citino.ai/v1/projects/{projectId}/products/{productKey}",
            {
              headers: {
                Authorization: `Bearer ${process.env.CITINO_API_KEY}`,
              },
            });

            console.log(await res.json());
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: >-
                validation, unauthorized, forbidden, not_found, conflict,
                plan_limit, rate_limited, busy, query_timeout
            message:
              type: string
            field:
              type: string
            detail:
              type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from Workspace settings → API keys, sent as `Authorization:
        Bearer <key>`.

````

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