Mapp Marketing Cloud Analysis API

Submit analysis and get data

Operations 8

DELETE /analysis-query/{correlationId} Cancel query
GET /analysis-query/{correlationId} Get query status
DELETE /report-query/{reportCorrelationId} Cancel report calculation query #
GET /report-query/{reportCorrelationId} Get report calculation query state #
POST /analysis-query Create calculation query
POST /report-query Create report calculation query #
GET /analysis-result/{calculationId} Get analysis result
GET /analysis-usage/current Get number of analysis done for current month

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mapp-analysis-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mapp-analysis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Analytics Analysis API
  description: "OpenAPI 3.0 Specification of Mapp Intelligence AnalyticsAPI \n\n In order to use these endpoints you must authorize by using a valid OAuth clientID configured in Mapp Intelligence Settings section."
  version: 1.0.0
  contact:
    name: Technical Support Mapp Digital
    url: https://mapp.com/tech-support/
servers:
- url: https://api.mapp.com/api/analytics
  description: Production
security:
- oauth_security_scheme:
  - mapp.intelligence-api
tags:
- name: Analysis
  description: Submit analysis and get data
paths:
  /analysis-query/{correlationId}:
    delete:
      tags:
      - Analysis
      summary: Cancel query
      description: Abort running query, if still running
      externalDocs:
        url: https://documentation.mapp.com
      parameters:
      - name: correlationId
        in: path
        description: ID of the query to be canceled
        required: 'true'
        schema:
          type: string
      responses:
        '200':
          description: Query successfully canceled
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    get:
      tags:
      - Analysis
      summary: Get query status
      description: "Returns status of the analysis query. \n\n Once calculation is SUCCESS, result is  available and can be retrieved by using the provided link (or calculationId)."
      externalDocs:
        url: https://documentation.mapp.com
      parameters:
      - name: correlationId
        in: path
        description: ID of the query
        required: 'true'
        schema:
          type: string
      responses:
        '200':
          description: Query status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryState'
              examples:
                Analysis running:
                  value:
                    calculationId: 579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                    status: RUNNING
                    details:
                      lastUpdatedAt: '1630430823529'
                Analysis completed:
                  value:
                    calculationId: 579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                    status: SUCCESS
                    resultUrl: https://intelligence.eu.mapp.com/analytics/api/analysis-result/579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                    details:
                      lastUpdatedAt: '1630430828912'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /report-query/{reportCorrelationId}:
    delete:
      tags:
      - Analysis
      operationId: deleteReportAnalysis
      summary: Cancel report calculation query
      description: Cancel report calculation query
      parameters:
      - name: reportCorrelationId
        in: path
        required: 'true'
        schema:
          type: string
      responses:
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '200':
          description: OK
    get:
      tags:
      - Analysis
      summary: Get report calculation query state
      description: Get report calculation query state
      operationId: status
      parameters:
      - name: reportCorrelationId
        in: path
        required: 'true'
        schema:
          type: string
      responses:
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportQueryState'
              examples:
                Analysis running:
                  value:
                    reportCorrelationId: 1ea0f0c7-b05e-47e6-8d4f-e78787dfe9ac
                    status: RUNNING
                    details:
                      lastUpdatedAt: '1727114468280'
                      reportId: '1006'
                      reportTitle: Advertiser Overview
                    queryStates:
                    - calculationId: 579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                      accountId: '294915650484552'
                      correlationId: 1ba0f0c7-b05e-47e6-8d4f-e78787dfe9ab
                      resultUrl: https://intelligence.eu.mapp.com/analytics/api/analysis-query/1ba0f0c7-b05e-47e6-8d4f-e78787dfe9ab
                      status: RUNNING
                      details:
                        lastUpdatedAt: '1727114468280'
                        reportElementId: '43946'
                Analysis completed:
                  value:
                    reportCorrelationId: 1ea0f0c7-b05e-47e6-8d4f-e78787dfe9ac
                    status: SUCCESS
                    details:
                      lastUpdatedAt: '1727114468280'
                      reportId: '1006'
                      reportTitle: Advertiser Overview
                    queryStates:
                    - calculationId: 579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                      accountId: '294915650484552'
                      correlationId: 1ba0f0c7-b05e-47e6-8d4f-e78787dfe9ab
                      resultUrl: https://intelligence.eu.mapp.com/analytics/api/analysis-result/579d66fe984f72f7154c5f48e0d3d65741dac870eb337a0524d4d3db02f119b7_294915650484552
                      status: SUCCESS
                      details:
                        lastUpdatedAt: '1727114468280'
                        reportElementId: '43946'
  /analysis-query:
    post:
      tags:
      - Analysis
      summary: Create calculation query
      description: "Create a calculation query. \n\n Response will be either \n+ 200 if the result is already available and can be retrieved by using the provided link (or calculationId) \n+ 201 if the calculation is being queued. Status can be polled by using the provided link (or correlationId)."
      externalDocs:
        url: https://documentation.mapp.com
      requestBody:
        description: Analytics Request Format
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalysisQuery'
            examples:
              Pivot:
                $ref: '#/components/examples/analysisQueryPivot'
              Comparison:
                $ref: '#/components/examples/analysisQueryComparison'
              TimeSeries:
                $ref: '#/components/examples/analysisQueryTimeSeries'
              Path:
                $ref: '#/components/examples/analysisPath'
              CrossTable:
                $ref: '#/components/examples/analysisCrossTable'
      responses:
        '200':
          description: Analysis completed
          content:
            application/json:
              schema:
                properties:
                  calculationId:
                    type: string
                  resultUrl:
                    type: string
              examples:
                Calculated data available:
                  value:
                    calculationId: 8612fa1eaada53fbb1956402bbded4db732074e7e399645880ae6a54b99a2bd9_294915650484552
                    resultUrl: https://intelligence.eu.mapp.com/analytics/api/analysis-result/8612fa1eaada53fbb1956402bbded4db732074e7e399645880ae6a54b99a2bd9_294915650484552
        '201':
          description: Analysis enqueued
          content:
            application/json:
              schema:
                properties:
                  correlationId:
                    type: string
                  statusUrl:
                    type: string
              examples:
                Query enqueued:
                  value:
                    correlationId: 94295cef-5b64-4934-ba25-011dd997aa81
                    statusUrl: https://intelligence.eu.mapp.com/analytics/api/analysis-query/94295cef-5b64-4934-ba25-011dd997aa81
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          description: Invalid JSON input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
  /report-query:
    post:
      tags:
      - Analysis
      summary: Create report calculation query
      description: Create multiple calculation queries, also known as a report.
      operationId: createReportQuery
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportQueryRequest'
            examples:
              ANALYSIS:
                $ref: '#/components/examples/reportQueryObject'
        required: 'true'
      responses:
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ReportQueryState'
  /analysis-result/{calculationId}:
    get:
      tags:
      - Analysis
      summary: Get analysis result
      description: Retrieve the analysis data.
      externalDocs:
        url: https://documentation.mapp.com
      parameters:
      - name: calculationId
        in: path
        description: ID of the calculated Data
        required: 'true'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisResult'
              examples:
                Simple analysis result:
                  $ref: '#/components/examples/analysisResultExample'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /analysis-usage/current:
    get:
      tags:
      - Analysis
      summary: Get number of analysis done for current month
      description: Get number of analysis done for current month
      externalDocs:
        url: https://documentation.mapp.com
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisUsage'
              examples:
                AnalysisUsage:
                  value:
                    calculationsCount: '4012'
                    maxCalculationsAllowed: '310000'
                    month: '1'
                    year: '2022'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    ReportElement:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: ID of the element
        reportId:
          type: integer
          format: int32
          description: ID of the report
        type:
          type: string
          description: Type of the element for eg. Analysis, KPI, Sparkline
        configJson:
          type: object
          description: Different type of queries are possible
          oneOf:
          - $ref: '#/components/schemas/TableQuery'
          - $ref: '#/components/schemas/KpiQuery'
    Warning:
      type: object
      properties:
        name:
          type: string
          description: 'Each warnings has specific properties described in following table:


            | Warning| Description | Relevant parameters |

            | ---------------- | ------------| -----------------------------------|

            | FilterLogicalCubeMismatch | At least one filter is ignored due to incompatibily with Dimensions and Metrics used. | List of incomptible filter objects in _names_ array. |

            | InvalidMetricContext | Metric used in an invalid context. | List of metric with invalid context in _aliases_ array. |

            | SortingEnforced |  Sorting criteria has been added automatically | List of objects that were sorted automatically in _aliases_ array. |

            | NoSortingDefined |  Sorting criteria is required for some dimensions. | List of dimensions requiring a sorting in _names_ array. |

            | SortingLimitExceeded | 3 sorting criteria are allowed. All additional sorting criteria have been omitted.| List of columns ignored for sorting in _aliases_ array. |

            | SortingRemoved | A requested sorting criteria has been removed | List of objects that were removed automatically in _aliases_ array. |

            | TodayRemoved | Today date has been removed from calculation time range because the selected datasource does not contain it. | daysInDataSource, todayDate|'
          enum:
          - FilterLogicalCubeMismatch
          - InvalidMetricContext
          - SortingEnforced
          - NoSortingDefined
          - SortingLimitExceeded
          - SortingRemoved
          - TodayRemoved
        parameters:
          type: object
          properties:
            arrangeTypes:
              type: array
              description: List of internal object names (dimension, metrics, filter, ...) that corresponds to the warning.
              items:
                type: string
            aliases:
              type: array
              description: List of columns aliases that corresponds to the error. See Result Header alias property.
              items:
                type: string
            names:
              type: array
              description: List of object names (dimension, metrics, filter, ...) that corresponds to the warning.
              items:
                type: string
            daysInDataSource:
              type: string
              description: Number of days in the datasource which is beeing cut
            todayDate:
              type: string
              description: Date of the day being cut
    AnalysisUsage:
      title: AnalysisUsage
      description: Analysis Usage for a given period
      type: object
      properties:
        calculationsCount:
          type: integer
          description: Number of calculation for the current period
        maxCalculationsAllowed:
          type: integer
          description: Max number of allowed of calculation per Month as defined in contract
        month:
          type: integer
          description: month of the current period
        year:
          type: integer
          description: Year of the current period
      required:
      - calculationsCount
      - maxCalculationsAllowed
      - month
      - year
    ViewMode:
      type: object
      properties:
        active:
          type: string
          enum:
          - comparison
          - timeSeries
          - path
          - crossTable
        comparison:
          type: object
          properties:
            type:
              type: string
              description: type of comparison. It can be either on *time* or *segment*. The corresponding properties must be filled accordingly in *values* and *sorting*
              enum:
              - time
              - segment
            values:
              type: object
              properties:
                time:
                  type: array
                  items:
                    $ref: '#/components/schemas/Filter'
                segment:
                  type: array
                  items:
                    $ref: '#/components/schemas/SegmentContainer'
            sorting:
              type: object
              properties:
                time:
                  type: array
                  items:
                    $ref: '#/components/schemas/ViewModeComparisonSortingItem'
                segment:
                  type: array
                  items:
                    $ref: '#/components/schemas/ViewModeComparisonSortingItem'
        timeSeries:
          type: object
          properties:
            timeName:
              type: string
              description: The name of the time dimension used in the time series - i.e. "time_days" for days.
            viewType:
              type: string
              description: The type of the time series view mode. Set "top" for time series of the top "x" number of objects. Set "values" based on specific object values populated in the values list of this configuration.
              enum:
              - top
              - values
            top:
              type: integer
              description: The number of top objects the time series is build upon.
            values:
              type: array
              description: A list of object values - i.e. ["Seach", "Cart", "Home"] for object "pages".
              items:
                type: string
        path:
          type: object
          properties:
            metricName:
              type: string
              description: The name of the metric used in the path analysis - i.e. "visits".
            dimensionContext:
              type: string
              description: The context in which the dimension for the path analysis is evaluated.
              enum:
              - VISITOR
              - SESSION
              - PAGE
              - ACTION
              - ATOMIC
              - NONE
            reverse:
              type: boolean
              description: Whether the path analysis should be performed in reverse order.
            distinct:
              type: boolean
              description: Whether to count only unique paths in the analysis.
            pathLength:
              type: integer
              description: The maximum number of steps to include in the path analysis.
        crossTable:
          type: object
          properties:
            metricName:
              type: string
              description: The name of the metric used for values in the cross table analysis - i.e. "pages_pageImpressions".
            crossDimensionName:
              type: string
              description: The name of the dimension used for the cross-analysis - i.e. "browser_fullName".
            mainDimensionSortDirection:
              type: string
              description: Sort direction for the main dimension.
              enum:
              - ASCENDING
              - DESCENDING
              - ''
            metricSortDirection:
              type: string
              description: Sort direction for the metric values.
              enum:
              - ASCENDING
              - DESCENDING
              - ''
            dimensionUpperLimit:
              type: integer
              description: The maximum number of dimension values to include in the analysis.
            crossDimensionSortDirection:
              type: string
              description: Sort direction for the cross dimension.
              enum:
              - ASCENDING
              - DESCENDING
              - ''
    QueryState:
      title: QueryState
      type: object
      properties:
        accountId:
          type: string
          description: Id of the account
        correlationId:
          type: string
          description: ID of the query
        calculationId:
          type: string
          description: Id of the calculated data
        resultUrl:
          type: string
          description: Link to get analysis data
        status:
          type: string
          description: Analysis query state
          enum:
          - SUCCESS
          - FAILED
          - ABORTED
          - RUNNING
          - INITIATED
        details:
          type: object
          properties:
            lastUpdatedAt:
              type: integer
              description: Last update time in milliseconds since the UNIX epoch
            reportElementId:
              type: integer
              description: ID of the report element
    InOrNotInPredicateEnum:
      type: string
      enum:
      - IN
      - NOT_IN
    ConnectorPredicateEnum:
      type: string
      description: Connectors
      enum:
      - AND
      - OR
    ColumnPeriodEnum:
      type: string
      description: 'Indicates which Time range must be used for the column. ANALYSIS: uses the analysis time range. COLUMN: uses the time filter defined inside the column. ELEMENT: uses the time filter defined inside the element configuration - i.e. custom metric/formula'
      enum:
      - ANALYSIS
      - COLUMN
      - ELEMENT
    Problem:
      type: object
      properties:
        status:
          type: integer
          description: HTTP Status Code
        statusCode:
          type: string
          description: Specific Mapp Error Code
        title:
          type: string
          description: Short description of the problem
        detail:
          type: string
          description: Detailed informations about the problem
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/Warning'
    FilterPredicateEnum:
      type: string
      description: Filter predicates
      enum:
      - EQUAL
      - UNEQUAL
      - LESS
      - LESSEQUAL
      - GREATER
      - GREATEREQUAL
      - BETWEEN
      - LIKE
      - NOT_LIKE
    ContextEnum:
      type: string
      description: Context to evaluate the metric/dimension. If context property is not given or empty the default context of the object will be used. The default context can be identified from the context property in the response list of /query-objects.
      enum:
      - VISITOR
      - SESSION
      - PAGE
      - ACTION
      - ATOMIC
      - NONE
    Report:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Report Id
        title:
          type: string
        description:
          type: string
        reportElements:
          type: array
          description: Array of columns
          items:
            $ref: '#/components/schemas/ReportElement'
        timeFilter:
          $ref: '#/components/schemas/Filter'
        quickFilters:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
    Comparison:
      type: object
      description: Comparison definition
      properties:
        type:
          type: string
          description: Type of comparison
          enum:
          - NONE
          - PERIOD
          - LIMIT
          - SLIDING_WINDOW
        slidingWindowWeekdayAdjust:
          type: boolean
        slidingWindowTimeShift:
          type: string
          enum:
          - PRECEDING
          - PREVIOUS_MONTH
          - PREVIOUS_QUARTER
          - PREVIOUS_YEAR
        filter:
          $ref: '#/components/schemas/Filter'
    AnalysisQuery:
      type: object
      description: Defintiona of a anaylsis query structure
      properties:
        resultType:
          type: string
          description: Type of result
          enum:
          - DATA_ONLY
        queryObject:
          description: Different type of queries are possible
          oneOf:
          - $ref: '#/components/schemas/TableQuery'
          - $ref: '#/components/schemas/KpiQuery'
      required:
      - resultType
      - queryObject
    TableQuery:
      type: object
      description: Tabular query definition
      properties:
        columns:
          type: array
          description: Array of columns
          items:
            type: object
            properties:
              name:
                type: string
              sortDirection:
                $ref: '#/components/schemas/SortDirectionEnum'
              sortIndex:
                type: integer
                description: Indicates order of sorting when there is more than one sorting column. (starting from 0).
              lowerLimit:
                type: integer
              upperLimit:
                type: integer
              inTimeSeries:
                type: boolean
                description: Optional property indicating if a column will be used in time series view mode; defaults to false. Can be omitted if it's value is not set to true.
              columnPeriod:
                $ref: '#/components/schemas/ColumnPeriodEnum'
              scope:
                $ref: '#/components/schemas/ScopeEnum'
              context:
                $ref: '#/components/schemas/ContextEnum'
              predefinedContainer:
                $ref: '#/components/schemas/Container'
        variant:
          type: string
          description: Type of Data Structure
          enum:
          - LIST
          - PIVOT
          - PIVOT_AS_LIST
          - COMPARISON
        predefinedContainer:
          $ref: '#/components/schemas/Container'
        predefinedSegmentConnections:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
        viewMode:
          $ref: '#/components/schemas/ViewMode'
      required:
      - columns
      - variant
      - predefinedContainer
    AnalysisResult:
      type: object
      properties:
        calculationDataType:
          type: string
          description: DataType returned
          enum:
          - RAW_DATA
          - RAW_DATA_SAMPLING
        rows:
          type: array
          description: Array of rows
          items:
            type: array
            description: Array of values following the strict order of the headers
            items: {}
        rowCount:
          type: integer
          description: Number of rows returned.
        rowCountTotal:
          type: integer
          description: Number of rows in the whole resultSet wihtout subtotals
        headers:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Name of the Dimension or Metric
              alias:
                type: string
                description: Generated unique identifier of the column in the analysis.
              arrangeType:
                type: string
                description: Mapp identifier of the Dimension or Metric
              metric:
                type: boolean
                description: Indicates if column is a metric
              dimension:
                type: boolean
                description: Indicates if column is a dimension
              sumPositions:
                type: array
                description: Indicates which rows contains a (sub)total value
                items:
                  type: integer
              pivotGroups:
                type: array
                description: Indicates which rows contains a grouping row
                items:
                  type: integer
              sortIndex:
                type: integer
                description: Indicates order of sorting when there is more than one sorting column. (starting from 0)
              sortDirection:
                $ref: '#/components/schemas/SortDirectionEnum'
        columnCount:
          type: integer
          description: Number of columns
        warnings:
          type: array
          description: Array of warnings occurred during calculation
          items:
            $ref: '#/components/schemas/Warning'
        timerange:
          type: array
          description: time range boundaries with format yyyy-MM-dd HH:mm:ss
          minItems: '2'
          maxItems: '2'
          items:
            type: string
        timestamp:
          type: string
          format: date-time
          description: Timestamp of the calculation
    ReportQueryState:
      type: object
      properties:
        reportCorrelationId:
          type: string
          description: Correlation Id of the report
        status:
          type: string
          description: Status of the report after complete analysis
        details:
          $ref: '#/components/schemas/ReportQueryStateDetails'
        queryStates:
          type: array
          description: List of query state of all caculation queries
          items:
            $ref: '#/components/schemas/QueryState'
    ReportQueryStateDetails:
      type: object
      properties:
        lastUpdatedAt:
          type: integer
          description: Last updated time of report in milliseconds since the UNIX epoch
        reportId:
          type: integer
          description: Report Unique Id
        reportTitle:
          type: string
          description: Report Name
    SegmentContainer:
      type: object
      properties:
        segmentID:
          type: string
          description: ID of the Segment
        connectorPredicate:
          type: string
        inOrNotInPredicate:
          type: string
        context:
          $ref: '#/components/schemas/ContextEnum'
        position:
          type: integer
          description: Indicates segment ordering in case of several Segment
    SortDirectionEnum:
      type: string
      description: Possible sorting directions
      enum:
      - ASCENDING
      - DESCENDING
    KpiQuery:
      type: object
      description: KPI query definition
      properties:
        elementPeriod:
          type: string
          description: 'One of the following periods should be used:

            * ELEMENT: when the time filter is either inherited from the report or the time filter configured in the report element configuration.

            * MONAD: when the time filter is inherited from the custom metric configuration.'
          enum:
          - ELEMENT
          - MONAD
        type:
          type: string
          description: Type of the query
          enum:
          - KPI
          - SPARKLINE
        metricName:
          type: string
          description: name of the metric of the KPI
        dimensionName:
          type: string
          description: name of the dimension of the KPI
        comparison:
          $ref: '#/components/schemas/Comparison'
        predefinedContainer:
          $ref: '#/components/schemas/Container'
        predefinedSegmentConnections:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
    Container:
      type: object
      properties:
        filters:
          type: array
          description: Array of filters
          items:
            $ref: '#/components/schemas/Filter'
        containers:
          type: array
          description: array of containers (recursion)
          items:
            $ref: '#/components/schemas/Container'
        connector:
          $ref: '#/components/schemas/ConnectorPredicateEnum'
        context:
          $ref: '#/components/schemas/ContextEnum'
        type:
          description: Indicates how filters must be applied. TIME_ORDER is sequential, NORMAL not
          type: string
          enum:
          - NORMAL
          - TIME_ORDER
    

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mapp/refs/heads/main/openapi/mapp-analysis-api-openapi.yml