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

# Get Chart Data

> Returns the data behind a single chart, as an array of rows. Each call runs the chart's analytics query and returns the result.


<Note>
  **About the chart data:**

  * The data matches what the chart shows in the MoEngage dashboard. It uses the chart's saved settings, such as its date range, segment, filters, and breakdowns. You can't change these settings through the API, because the endpoint accepts no date-range or segment parameters.
  * By default, the response is served from a server-side cache. To recompute the chart with the latest data, set the `cache` query parameter to `false`.
  * The fields in each row depend on the chart's analysis type: Behavior, Funnels, Retention, User, or Session and Source. To learn more about these analysis types, see [MoEngage Analytics](/user-guide/analyze/moengage-analytics/overview).
</Note>


## OpenAPI

````yaml /api/analytics/analytics.yaml get /v5/analytics/dashboards/{dashboard_id}/charts/{chart_id}
openapi: 3.0.3
info:
  title: MoEngage Analytics Dashboard and Chart API
  description: >
    Read-only REST APIs to access your MoEngage Custom Dashboards and the
    analytics data behind their charts. All endpoints are `GET` requests and do
    not modify any data.
  version: '5.0'
servers:
  - url: https://api-{dc}.moengage.com
    description: MoEngage API Server
    variables:
      dc:
        default: '01'
        description: >-
          The 'dc' in the API Endpoint URL refers to the MoEngage Data Center
          (DC). MoEngage hosts each customer in a different DC. You can find
          your DC number and replace the value of 'dc' in the URL by referring
          to the DC and API endpoint mapping
          [here](/api/introduction#data-centers). Your MoEngage Data Center (DC)
          can be 01, 02, 03, 04, 05, 06, or 101.
security:
  - basicAuth: []
tags:
  - name: Dashboards
    description: Read custom dashboards and their chart data.
paths:
  /v5/analytics/dashboards/{dashboard_id}/charts/{chart_id}:
    get:
      tags:
        - Dashboards
      summary: Get Chart Data
      description: >
        Returns the data behind a single chart, as an array of rows. Each call
        runs the chart's analytics query and returns the result.
      operationId: getChartData
      parameters:
        - $ref: '#/components/parameters/DashboardId'
        - $ref: '#/components/parameters/ChartId'
        - $ref: '#/components/parameters/Cache'
        - $ref: '#/components/parameters/MoeAppKey'
        - $ref: '#/components/parameters/MoeTeamId'
      responses:
        '200':
          description: >-
            This response is returned when the request is processed
            successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response_id:
                    $ref: '#/components/schemas/ResponseId'
                  type:
                    type: string
                    description: The type of resource returned in the `data` field.
                    example: chart_data
                  data:
                    type: array
                    description: The resolved chart data, as an array of metric rows.
                    items:
                      $ref: '#/components/schemas/ChartSeriesPoint'
              examples:
                behavior:
                  summary: Behavior analysis
                  value:
                    response_id: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
                    type: chart_data
                    data:
                      - metric: 1
                        granularity: 2026/06/29
                        splitby: []
                        grouped_by: []
                        step: A
                        tseq: 0
                        cseq: 0
                funnel:
                  summary: Funnel analysis
                  value:
                    response_id: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
                    type: chart_data
                    data:
                      - step: 1
                        metric: 4
                        splitby: []
                        granularity: entire
                        split_by_weight: 4
                        tseq: 0
                        cseq: 0
                      - step: 2
                        metric: 0
                        splitby: []
                        granularity: entire
                        split_by_weight: 4
                        tseq: 0
                        cseq: 0
                retention:
                  summary: Retention analysis
                  value:
                    response_id: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
                    type: chart_data
                    data:
                      - metric: 0
                        granularity: 2026/06/29
                        splitby: []
                        total_users: 1
                        retained_user: 0
                        retention_comparison_index: 0
                        retention_compared_by: 2026/06/29
                        tseq: 0
                        cseq: 0
                user:
                  summary: User analysis
                  value:
                    response_id: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
                    type: chart_data
                    data:
                      - metric: 14
                        granularity: entire
                        splitby: []
                        step: A
                        tseq: 0
                        cseq: 0
                        bucket: '1.0'
                      - metric: 8559
                        granularity: entire
                        splitby: []
                        step: A
                        tseq: 0
                        cseq: 0
                        bucket: '0.0'
                      - metric: 2
                        granularity: entire
                        splitby: []
                        step: A
                        tseq: 0
                        cseq: 0
                        bucket: '2.0'
                sessionAndSource:
                  summary: Session and Source analysis
                  value:
                    response_id: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
                    type: chart_data
                    data:
                      - analysis_type: session_count
                        splitby: []
                        granularity: 2026/06/29
                        metric: 48
                        fseq: 0
                        event_name: MOE_SESSION
                        tseq: 0
                        cseq: 0
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    DashboardId:
      name: dashboard_id
      in: path
      required: true
      description: >-
        The unique identifier of the dashboard. You can retrieve dashboard IDs
        from the [List Dashboards](/api/dashboards/list-dashboards) response.
      schema:
        type: string
        example: 6a10ae88f3a1896d59d5bf8f
    ChartId:
      name: chart_id
      in: path
      required: true
      description: >-
        The unique identifier of the chart on the dashboard. You can retrieve
        chart IDs from the [Get Dashboard
        Charts](/api/dashboards/get-dashboard-charts) response.
      schema:
        type: string
        example: 6a10af49f3a1896d59d5bfbd
    Cache:
      name: cache
      in: query
      required: false
      description: >-
        Controls whether the chart data is served from the server-side cache.
        Set to `false` to bypass the cache and recompute the chart. Defaults to
        `true`.
      schema:
        type: boolean
        default: true
    MoeAppKey:
      name: MOE-APPKEY
      in: header
      required: true
      description: >-
        Your MoEngage workspace ID (also known as the App ID), which identifies
        the workspace the request applies to. You can find it in the MoEngage
        dashboard at **Settings** > **Account** > **APIs** > **Workspace ID
        (earlier app id)**.
      schema:
        type: string
        example: ABCD1234EFGH56789
    MoeTeamId:
      name: MOE-Team-ID
      in: header
      required: false
      description: >-
        The team ID, required only when MoEngage Teams is enabled for your
        workspace. Scopes the request to the specified team.
      schema:
        type: string
  schemas:
    ResponseId:
      type: string
      description: >-
        A unique identifier for this response. Include it when reporting issues
        to MoEngage Support to help trace the request.
      example: b3f1c0d2-2a4e-4f9b-9c1a-6d2e8f0a1b23
    ChartSeriesPoint:
      type: object
      description: >
        One row of a chart's resolved data series. The keys below are common
        across analysis types, but each analysis type returns additional,
        type-specific keys. For example:


        - **Behavior** adds `grouped_by` and `step`.

        - **Funnels** add `step` (the step number) and `split_by_weight`.

        - **Retention** adds `total_users`, `retained_user`,
        `retention_comparison_index`, and `retention_compared_by`.

        - **User** adds `step` and `bucket`.

        - **Session and Source** adds `analysis_type`, `event_name`, and `fseq`.


        See the response examples for a sample of each analysis type.
      properties:
        metric:
          type: number
          description: The metric value for this data point.
          example: 48
        granularity:
          type: string
          description: >-
            The time bucket for this data point, such as a day, week, or month.
            Returns `entire` when the result is not bucketed by time.
          example: 2026/06/29
        splitby:
          type: array
          description: The split-by dimension values applied to this data point, if any.
          items: {}
        tseq:
          type: integer
          description: The time-sequence index of this data point within the series.
          example: 0
        cseq:
          type: integer
          description: The category-sequence index of this data point within the series.
          example: 0
      additionalProperties: true
  responses:
    BadRequest:
      description: >-
        This response is returned when the dashboard ID or chart ID is invalid,
        or the request is malformed.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A machine-readable error code.
                    example: VALIDATION_FAILED
                  message:
                    type: string
                    description: A human-readable description of the error.
                    example: Invalid dashboard_id.
                  target:
                    type: string
                    description: >-
                      The field or parameter the error refers to, when
                      applicable.
                    example: dashboard_id
                  doc_url:
                    type: string
                    description: A link to documentation about this error, when available.
              response_id:
                $ref: '#/components/schemas/ResponseId'
    Unauthorized:
      description: >-
        This response is returned when the authentication credentials are
        missing or invalid.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A machine-readable error code.
                    example: UNAUTHORIZED
                  message:
                    type: string
                    description: A human-readable description of the error.
                    example: Missing or invalid credentials.
                  target:
                    type: string
                    description: >-
                      The field or parameter the error refers to, when
                      applicable.
                  doc_url:
                    type: string
                    description: A link to documentation about this error, when available.
              response_id:
                $ref: '#/components/schemas/ResponseId'
    Forbidden:
      description: >-
        This response is returned when the caller does not have access to the
        requested dashboard or chart, or the selected team is not permitted.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A machine-readable error code.
                    example: FORBIDDEN
                  message:
                    type: string
                    description: A human-readable description of the error.
                    example: >-
                      This request cannot be performed in the selected team.
                      Please select the correct team.
                  target:
                    type: string
                    description: >-
                      The field or parameter the error refers to, when
                      applicable.
                    example: MOE-Team-ID
                  doc_url:
                    type: string
                    description: A link to documentation about this error, when available.
              response_id:
                $ref: '#/components/schemas/ResponseId'
    NotFound:
      description: >-
        This response is returned when the requested dashboard or chart does not
        exist.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A machine-readable error code.
                    example: NOT_FOUND
                  message:
                    type: string
                    description: A human-readable description of the error.
                    example: Dashboard not found.
                  target:
                    type: string
                    description: >-
                      The field or parameter the error refers to, when
                      applicable.
                  doc_url:
                    type: string
                    description: A link to documentation about this error, when available.
              response_id:
                $ref: '#/components/schemas/ResponseId'
    InternalError:
      description: This response is returned when the system runs into an unexpected error.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A machine-readable error code.
                    example: INTERNAL_ERROR
                  message:
                    type: string
                    description: A human-readable description of the error.
                    example: An unexpected error occurred while processing the request.
                  target:
                    type: string
                    description: >-
                      The field or parameter the error refers to, when
                      applicable.
                  doc_url:
                    type: string
                    description: A link to documentation about this error, when available.
              response_id:
                $ref: '#/components/schemas/ResponseId'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >
        Authentication is done via Basic Auth. This requires a base64-encoded
        string of your credentials in the format `username:password`.


        - **Username**: Use your MoEngage workspace ID (also known as the App
        ID). You can find it in the MoEngage dashboard at **Settings** >
        **Account** > **APIs** > **Workspace ID (earlier app id)**.

        - **Password**: Use your Data API Key, which you can find in the
        MoEngage dashboard at **Settings** > **Account** > **APIs**.


        For more information, see
        [Authentication](/api/introduction#authentication).

````