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

# List content analytics

> Retrieves an analytics overview for all content items in a project



## OpenAPI

````yaml get /projects/{project_id}/content/analytics
openapi: 3.0.1
info:
  title: BeyondWords REST API
  description: |-
    This is the documentation for the BeyondWords REST API.
              You can use this API to use BeyondWords programmatically.
              You can get your API Key and Project ID for each project in the Project settings tab in the BeyondWords
              <a href="https://dash.beyondwords.io/dashboard">dashboard</a>.
  version: 1.0.0
servers:
  - url: https://api.beyondwords.io/v1
security: []
paths:
  /projects/{project_id}/content/analytics:
    parameters:
      - name: project_id
        in: path
        description: The numeric ID of your project
        required: true
        schema:
          type: string
    get:
      tags:
        - Analytics
      summary: Contents analytics
      description: Retrieves an analytics overview for all content items in a project
      operationId: content#analytics_list
      parameters:
        - name: media_variants[]
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - article
                - summary
          required: false
          description: The media variants to fetch data for
        - name: media_formats[]
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - audio
                - video
          required: false
          description: The media formats to fetch data for
        - name: time_range[start]
          in: query
          required: false
          description: >-
            The start date of the aggregation period. The value of this property
            should be a string in
                      the format yyyy-mm-dd according to ISO 8601.
          schema:
            type: string
        - name: time_range[end]
          in: query
          required: false
          description: >-
            The end date of the aggregation period. The value of this property
            should be a string
                      in the format yyyy-mm-dd according to ISO 8601. If this is set to today, the current day is still
                      in progress and therefore only partial analytics data is returned until the day ends.
          schema:
            type: string
        - name: pagination[limit]
          in: query
          required: false
          description: '''limit'' sets the number of results to return in each page.'
          schema:
            type: integer
        - name: pagination[offset]
          in: query
          required: false
          description: >-
            'offset' sets the first position to return from the results of the
            query. The default is 0, which starts the page at the first result.
          schema:
            type: integer
        - name: order[by]
          in: query
          schema:
            type: string
            enum:
              - player_impressions
              - listens
              - listen_rate
              - avg_listen_time
              - avg_listen_duration
          required: false
          description: >-
            This is used to order analytics by number of listens or average
            listen time or average listen duration
        - name: order[dir]
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
          required: false
          description: This is used to order analytics in the ascending or descending order
        - name: access_tiers[]
          in: query
          schema:
            type: array
            items:
              type: string
          required: false
          description: The access tiers to fetch data for
        - name: filter[title]
          in: query
          required: false
          description: >-
            Get analytics for content whose title contains the specified string.
            **Note**: `filter[title]` does not work in combination with
            `order[by]`
          schema:
            type: string
        - name: filter[player_impressions][to]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[player_impressions][from]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[listens][to]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[listens][from]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[listen_rate][to]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[listen_rate][from]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[avg_listen_time][to]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[avg_listen_time][from]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[avg_listen_duration][to]
          in: query
          schema:
            type: integer
          required: false
        - name: filter[avg_listen_duration][from]
          in: query
          schema:
            type: integer
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                example:
                  $ref: '#/components/examples/analyticsContentsListExample'
              schema:
                $ref: '#/components/schemas/analyticsContentsListModel'
          headers:
            X-BeyondWords-Filter:
              description: The filters fields applied (if any).
              schema:
                type: string
              required: false
            X-Pagination-Limit:
              description: |-
                The requested number of results to be returned for this request.
                          The actual number of results returned may be lower.
              schema:
                type: integer
              required: false
            X-Pagination-OffSet:
              description: >-
                The position of the first result in the response (before
                pagination was applied).
              schema:
                type: integer
              required: false
            X-BeyondWords-Order-By:
              description: The ordering field applied (if any).
              schema:
                type: string
              required: false
            X-BeyondWords-Order-Dir:
              description: The ordering direction applied (if any).
              schema:
                type: string
              required: false
            X-BeyondWords-Aggregation:
              description: Analytics aggregation
              schema:
                type: string
              required: false
            X-BeyondWords-Time-Range-Start:
              description: Analytics start time
              schema:
                type: string
              required: false
            X-BeyondWords-Time-Range-End:
              description: Analytics end time
              schema:
                type: string
              required: false
      security:
        - apiKey: []
components:
  examples:
    analyticsContentsListExample:
      summary: Sample list of content analytics response
      value:
        - id: b48ddb68-9a70-4443-9990-4f0479095f77,
          source_id: 12345
          title: Project title
          listens: 29103
          avg_listen_time: 243
          avg_listen_duration: 86.52
          published: 2022-12-31 23:59:59 UTC
  schemas:
    analyticsContentsListModel:
      nullable: false
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            nullable: true
            description: Content identifier
          source_id:
            type: string
            description: Externally provided content identifier
          source_url:
            type: string
            nullable: true
            description: URL of the source content
            format: uri
          image_url:
            type: string
            nullable: true
            description: Content image URL
            format: uri
          title:
            type: string
            nullable: true
            description: Content title
          player_impressions:
            type: integer
            description: Number of player loads (audio or video)
          listens:
            type: integer
            description: Number of play sessions (audio or video)
          listen_rate:
            type: number
            description: Proportion of impressions that resulted in a play (0.0–1.0)
          avg_listen_time:
            type: integer
            description: >-
              Average play time per session in seconds (audio or video). This
              metric may be understated when play progress is stored as every
              10% milestone event per session instead of only a final event.
          avg_listen_duration:
            type: number
            description: >-
              Average percentage of the item consumed (0-100). This metric may
              be understated when play progress is stored as every 10% milestone
              event per session instead of only a final event.
          published:
            type: string
            nullable: true
            format: date-time
            description: Time at which the content was published (ISO 8601)
          media:
            type: object
            nullable: true
            properties:
              url:
                type: string
                description: URL of the media file
                format: uri
              duration:
                type: integer
                description: Duration of the media file in milliseconds
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-Api-Key
      in: header

````