Apptentive metrics API

metrics data endpoints

OpenAPI Specification

apptentive-metrics-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: Public API Service
  version: 2.0.0
  title: public-api-service experimental metrics API
  termsOfService: https://www.apptentive.com/terms/
host: data.apptentive.com
basePath: /
schemes:
- https
- http
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
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: the list of available apps
          schema:
            $ref: '#/definitions/RollupResponseArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/active-users:
    get:
      tags:
      - metrics
      summary: Active Users Data
      description: Active Users Data
      operationId: getActiveUsersData
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: period
        in: query
        description: 'granularity period: [ day | week | month | quarter | year | all ]'
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: active users data
          schema:
            $ref: '#/definitions/ActiveUserResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/interactions/notes:
    get:
      tags:
      - metrics
      summary: Get Notes Timeseries
      description: Get Notes Timeseries
      operationId: getNotes
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: notes timeseries data
          schema:
            $ref: '#/definitions/NotesDataResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/interactions/surveys:
    get:
      tags:
      - metrics
      summary: Get Surveys Timeseries
      description: Get Surveys Timeseries
      operationId: getSurveys
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: surveys timeseries data
          schema:
            $ref: '#/definitions/SurveyDataResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/love-percent:
    get:
      tags:
      - metrics
      summary: Love Percent Data
      description: Love Percent Data
      operationId: getLovePercentData
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: love percent timeseries data
          schema:
            $ref: '#/definitions/LovePercentResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/ratings:
    get:
      tags:
      - metrics
      summary: Star Ratings Data
      description: Star Ratings Data
      operationId: getRatings
      produces:
      - application/json
      - application/xml
      - text/csv
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: star ratings data
          schema:
            $ref: '#/definitions/RatingsDataResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/app-health/retention:
    get:
      tags:
      - metrics
      summary: Retention Data
      description: Retention Data
      operationId: getRetention
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: period
        in: query
        description: retention period, should be 'monthly' or 'daily'
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: retention data
          schema:
            $ref: '#/definitions/RetentionResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/fan-signals/counts:
    get:
      tags:
      - metrics
      summary: Fan Signals Counts Data
      description: Fan Signals Counts Data
      operationId: getFSCounts
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: fs counts data
          schema:
            $ref: '#/definitions/FanSignalsCountsArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/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
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: net fan score data
          schema:
            $ref: '#/definitions/NetFanScoreResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/reviews:
    get:
      tags:
      - metrics
      summary: fetch app reviews
      description: fetch app reviews
      operationId: fetchReviews
      consumes:
      - application/json
      produces:
      - application/json
      - application/xml
      - text/csv
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        type: string
      - name: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: starts_after
        in: query
        description: the non-inclusive offset in in mongo id format (ex. 5e22085d5379215be800002b)
        required: false
        type: string
      - name: regions
        in: query
        description: 'regions filter, can be comma-separated like US,CA,.. '
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: the reviews response
          schema:
            $ref: '#/definitions/ReviewResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/events:
    get:
      tags:
      - metrics
      summary: Event Stats
      description: Events Stats
      operationId: getEventStats
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: include_all
        in: query
        description: include apptentive events
        required: false
        type: boolean
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: event stats data
          schema:
            $ref: '#/definitions/EventStatsArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/event-trend:
    get:
      tags:
      - metrics
      summary: Event Trend Stats
      description: Events Trend Stats
      operationId: getEventTrendStats
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: label
        in: query
        description: event label
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: event stats trend data
          schema:
            $ref: '#/definitions/EventStatsTrend'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/notes:
    get:
      tags:
      - metrics
      summary: Notes Stats
      description: Notes Stats
      operationId: getNotesStats
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: notes stats data
          schema:
            $ref: '#/definitions/NotesStatsArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/stats/surveys:
    get:
      tags:
      - metrics
      summary: Survey Stats
      description: Surveys Stats
      operationId: getSurveyStats
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: survey stats data
          schema:
            $ref: '#/definitions/SurveyStatsArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/survey/{survey_id}/stats:
    get:
      tags:
      - metrics
      summary: Survey Reporting Quantative Stats
      description: Survey Reporting Quantative Stats
      operationId: getOneSurveyStats
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: survey_id
        in: path
        description: the survey id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: survey questions stats data
          schema:
            $ref: '#/definitions/QuestionStatsArray'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/survey/{survey_id}/question/{question_id}/responses:
    get:
      tags:
      - metrics
      summary: Survey Reporting Text Responses
      description: Survey Reporting Text Responses
      operationId: getSurveyResponses
      produces:
      - application/json
      - application/xml
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: survey_id
        in: path
        description: the survey id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: question_id
        in: path
        description: the question id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: false
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: false
        type: string
      - name: page
        in: query
        description: the page number
        default: 0
        required: false
        type: string
      - name: limit
        in: query
        default: 20
        description: the limit of text responses, max limit is 1000
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: survey responses data
          schema:
            $ref: '#/definitions/SurveyResponses'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/survey/insights:
    get:
      tags:
      - metrics
      summary: fetch survey responses
      description: fetch survey responses
      operationId: fetch responses
      consumes:
      - application/json
      produces:
      - application/json
      - application/xml
      - text/csv
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: start_date
        in: query
        description: start date in format of YYYY-MM-DD
        required: true
        type: string
      - name: end_date
        in: query
        description: end date in format of YYYY-MM-DD
        required: true
        type: string
      - name: page
        in: query
        description: the page number
        default: 0
        required: false
        type: string
      - name: api_key
        in: query
        description: (optional) you can provide the X-API-KEY as 'api_key' query parameter
        required: false
        type: string
      - name: accept
        in: query
        description: (optional) you can provide the accept header as 'accept' query parameter
        required: false
        type: string
      responses:
        '200':
          description: the reviews response
          schema:
            $ref: '#/definitions/InsightsSurveyResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/gdpr-ccpa/requests:
    post:
      tags:
      - metrics
      summary: Triggers GDPR/CCPA request
      consumes:
      - application/json
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - in: body
        name: gdprPayload
        description: GDPR/CCPA request payload
        schema:
          $ref: '#/definitions/POSTGDPRRequest'
      description: Triggers GDPR/CCPA request
      operationId: postGDPRRequest
      produces:
      - application/json
      security:
      - ApiKeyAuth: []
      responses:
        '201':
          description: the request is successfully submitted
          schema:
            $ref: '#/definitions/POSTGDPRResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
  /metrics/v2/apps/{app_id}/gdpr-ccpa/requests/{request_id}:
    get:
      tags:
      - metrics
      summary: Fetches GDPR/CCPA request status
      description: Fetches GDPR/CCPA request status
      operationId: getGDPRRequest
      produces:
      - application/json
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        type: string
      - name: request_id
        in: path
        description: the id of submitted GDPR/CCPA request
        required: true
        type: string
      responses:
        '200':
          description: the gdpr/ccpa request status
          schema:
            $ref: '#/definitions/GetGDPRStatusResponse'
        '400':
          description: bad request
          schema:
            $ref: '#/definitions/ErrorBadRequestResponse'
        '401':
          description: not authorized
          schema:
            $ref: '#/definitions/ErrorUnauthorizedResponse'
        '404':
          description: not found
          schema:
            $ref: '#/definitions/ErrorNotFoundResponse'
        '500':
          description: internal server error
          schema:
            $ref: '#/definitions/ErrorInternalErrorResponse'
definitions:
  SurveyDataResponse:
    type: object
    properties:
      total:
        type: integer
        exa

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