Apptentive metrics API

metrics data endpoints

Operations 19

GET /metrics/v2/apps Get All Available Apps #
GET /metrics/v2/apps/{app_id}/app-health/active-users Active Users Data #
GET /metrics/v2/apps/{app_id}/app-health/interactions/notes Get Notes Timeseries #
GET /metrics/v2/apps/{app_id}/app-health/interactions/surveys Get Surveys Timeseries #
GET /metrics/v2/apps/{app_id}/app-health/love-percent Love Percent Data #
GET /metrics/v2/apps/{app_id}/app-health/ratings Star Ratings Data #
GET /metrics/v2/apps/{app_id}/app-health/retention Retention Data #
GET /metrics/v2/apps/{app_id}/fan-signals/counts Fan Signals Counts Data #
GET /metrics/v2/apps/{app_id}/fan-signals/net-fan-score Net Fan Score Data #
GET /metrics/v2/apps/{app_id}/reviews fetch app reviews #
GET /metrics/v2/apps/{app_id}/stats/events Event Stats #
GET /metrics/v2/apps/{app_id}/stats/event-trend Event Trend Stats #
GET /metrics/v2/apps/{app_id}/stats/notes Notes Stats #
GET /metrics/v2/apps/{app_id}/stats/surveys Survey Stats #
GET /metrics/v2/apps/{app_id}/survey/{survey_id}/stats Survey Reporting Quantative Stats #
GET /metrics/v2/apps/{app_id}/survey/{survey_id}/question/{question_id}/responses Survey Reporting Text Responses #
GET /metrics/v2/apps/{app_id}/survey/insights fetch survey responses #
POST /metrics/v2/apps/{app_id}/gdpr-ccpa/requests Triggers GDPR/CCPA request #
GET /metrics/v2/apps/{app_id}/gdpr-ccpa/requests/{request_id} Fetches GDPR/CCPA request status #

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/apptentive-metrics-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

apptentive-metrics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Public API Service
  version: 2.0.0
  title: public-api-service experimental Metrics API
  termsOfService: https://www.apptentive.com/terms/
servers:
- url: https://data.apptentive.com/
- url: http://data.apptentive.com/
tags:
- name: metrics
  description: metrics data endpoints
paths:
  /metrics/v2/apps:
    get:
      tags:
      - metrics
      summary: Get All Available Apps
      description: Expose All Apps Assosiated with the JWT Token
      operationId: getAllApps
      security:
      - ApiKeyAuth: []
      parameters:
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: the list of available apps
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RollupResponseArray'
            application/xml:
              schema:
                $ref: '#/components/schemas/RollupResponseArray'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/active-users:
    get:
      tags:
      - metrics
      summary: Active Users Data
      description: Active Users Data
      operationId: getActiveUsersData
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: period
        in: query
        description: 'granularity period: [ day | week | month | quarter | year | all ]'
        required: false
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: active users data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActiveUserResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ActiveUserResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/interactions/notes:
    get:
      tags:
      - metrics
      summary: Get Notes Timeseries
      description: Get Notes Timeseries
      operationId: getNotes
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: notes timeseries data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotesDataResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/NotesDataResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/interactions/surveys:
    get:
      tags:
      - metrics
      summary: Get Surveys Timeseries
      description: Get Surveys Timeseries
      operationId: getSurveys
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: surveys timeseries data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SurveyDataResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/SurveyDataResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/love-percent:
    get:
      tags:
      - metrics
      summary: Love Percent Data
      description: Love Percent Data
      operationId: getLovePercentData
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: love percent timeseries data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LovePercentResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/LovePercentResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/ratings:
    get:
      tags:
      - metrics
      summary: Star Ratings Data
      description: Star Ratings Data
      operationId: getRatings
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: star ratings data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatingsDataResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/RatingsDataResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/RatingsDataResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/retention:
    get:
      tags:
      - metrics
      summary: Retention Data
      description: Retention Data
      operationId: getRetention
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: period
        in: query
        description: retention period, should be 'monthly' or 'daily'
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: retention data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetentionResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/RetentionResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/fan-signals/counts:
    get:
      tags:
      - metrics
      summary: Fan Signals Counts Data
      description: Fan Signals Counts Data
      operationId: getFSCounts
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: fs counts data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FanSignalsCountsArray'
            application/xml:
              schema:
                $ref: '#/components/schemas/FanSignalsCountsArray'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/fan-signals/net-fan-score:
    get:
      tags:
      - metrics
      summary: Net Fan Score Data
      description: Net Fan Score Data
      operationId: getNFSData
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: net fan score data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetFanScoreResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/NetFanScoreResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/reviews:
    get:
      tags:
      - metrics
      summary: fetch app reviews
      description: fetch app reviews
      operationId: fetchReviews
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        schema:
          type: string
      - name: page_size
        in: query
        description: the page size number
        required: false
        schema:
          type: string
          default: 100
      - name: starts_after
        in: query
        description: the non-inclusive offset in in mongo id format (ex. 5e22085d5379215be800002b)
        required: false
        schema:
          type: string
      - name: regions
        in: query
        description: 'regions filter, can be comma-separated like US,CA,.. '
        required: false
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: the reviews response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ReviewResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ReviewResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/events:
    get:
      tags:
      - metrics
      summary: Event Stats
      description: Events Stats
      operationId: getEventStats
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: include_all
        in: query
        description: include apptentive events
        required: false
        schema:
          type: boolean
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: event stats data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventStatsArray'
            application/xml:
              schema:
                $ref: '#/components/schemas/EventStatsArray'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/event-trend:
    get:
      tags:
      - metrics
      summary: Event Trend Stats
      description: Events Trend Stats
      operationId: getEventTrendStats
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        schema:
          type: string
      - name: label
        in: query
        description: event label
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: event stats trend data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventStatsTrend'
            application/xml:
              schema:
                $ref: '#/components/schemas/EventStatsTrend'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
        '401':
          description: not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/notes:
    get:
      tags:
      - metrics
      summary: Notes Stats
      description: Notes Stats
      operationId: getNotesStats
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        schema:
          type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        schema:
          type: string
      responses:
        '200':
          description: notes stats data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotesStatsArray'
            application/xml:
              schema:
                $ref: '#/components/schemas/NotesStatsArray'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ErrorBadRequestResponse'
  

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