Apptentive raw API

raw data endpoints

OpenAPI Specification

apptentive-raw-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: Public API Service
  version: 2.0.0
  title: public-api-service experimental raw API
  termsOfService: https://www.apptentive.com/terms/
host: data.apptentive.com
basePath: /
schemes:
- https
- http
tags:
- name: raw
  description: raw data endpoints
paths:
  /raw/v2/apps/{app_id}/messages:
    get:
      tags:
      - raw
      summary: Retrieve all messages
      description: Retrieve all messages
      operationId: getMessages
      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: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: starts_after
        in: query
        description: The message id from the ‘ends_with’ field, for pagination (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: message response
          schema:
            $ref: '#/definitions/MessagesResponse'
        '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'
  /raw/v2/apps/{app_id}/devices:
    get:
      tags:
      - raw
      summary: Retrieve all devices
      description: Retrieve all devices
      operationId: getDevices
      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: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: starts_after
        in: query
        description: The device id from the ‘ends_with’ field, for pagination (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: devices response
          schema:
            $ref: '#/definitions/DevicesResponse'
        '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'
  /raw/v2/apps/{app_id}/devices/{device_id}:
    get:
      tags:
      - raw
      summary: Retrieve single device
      description: Retrieve single device
      operationId: getSingleDevice
      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: device_id
        in: path
        description: the device id in mongo 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: single device response
          schema:
            $ref: '#/definitions/Device'
        '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'
  /raw/v2/apps/{app_id}/people:
    get:
      tags:
      - raw
      summary: Retrieve all people
      description: Retrieve all people
      operationId: getPeople
      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: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: starts_after
        in: query
        description: The people id from the ‘ends_with’ field, for pagination (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: people response
          schema:
            $ref: '#/definitions/PeopleResponse'
        '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'
  /raw/v2/apps/{app_id}/people/{person_id}:
    get:
      tags:
      - raw
      summary: Retrieve single person
      description: Retrieve single person
      operationId: getSinglePerson
      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: person_id
        in: path
        description: the person id in mongo 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: person response
          schema:
            $ref: '#/definitions/Person'
        '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'
  /raw/v2/apps/{app_id}/conversations:
    get:
      tags:
      - raw
      summary: Retrieve all conversations
      description: Retrieve all conversations
      operationId: getConversations
      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: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: starts_after
        in: query
        description: The conversation id from the ‘ends_with’ field, for pagination (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: conversation response
          schema:
            $ref: '#/definitions/ConversationResponse'
        '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'
  /raw/v2/apps/{app_id}/conversations/{conversation_id}:
    get:
      tags:
      - raw
      summary: Retrieve single person
      description: Retrieve single person
      operationId: getSingleConversation
      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: conversation_id
        in: path
        description: the conversation id in mongo 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: single conversation response
          schema:
            $ref: '#/definitions/Conversation'
        '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'
  /raw/v2/apps/{app_id}/conversation-all-data/{conversation_id}:
    get:
      description: Retrieve conversation data
      parameters:
      - description: The application ID in Mongo ID format (ex. 5e22085d5379215be800002b)
        in: path
        name: app_id
        required: true
        type: string
      - description: The conversation ID in Mongo format (ex. 5e22085d5379215be800002b)
        in: path
        name: conversation_id
        required: true
        type: string
      - description: (optional) You can provide the X-API-KEY as 'api_key' query parameter
        in: query
        name: api_key
        type: string
      - description: (optional) You can provide the accept header as 'accept' query parameter
        in: query
        name: accept
        type: string
      produces:
      - application/json
      - application/xml
      responses:
        '200':
          description: Conversation all response
          schema:
            $ref: '#/definitions/ConversationAllResponse'
        '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'
      security:
      - ApiKeyAuth: []
      summary: Retrieve all data for conversation
      tags:
      - raw
  /raw/v2/apps/{app_id}/surveys/{survey_id}/responses:
    get:
      tags:
      - raw
      summary: Retrieve all survey responses
      description: Retrieve all survey responses
      operationId: getRawSurveyResponses
      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: page_size
        in: query
        description: the page size number
        default: 100
        required: false
        type: string
      - name: order
        in: query
        description: the order by date (desc | asc)
        default: asc
        required: false
        type: string
      - name: starts_after
        in: query
        description: The survey response id from the ‘ends_with’ field, for pagination (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 responses object
          schema:
            $ref: '#/definitions/SurveyResponsesObject'
        '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'
  /raw/v2/apps/{app_id}/custom-attributes-keys:
    get:
      description: Retrieve person and device custom data
      parameters:
      - description: The application ID in Mongo ID format (ex. 5e22085d5379215be800002b)
        in: path
        name: app_id
        required: true
        type: string
      - description: (optional) You can provide the X-API-KEY as 'api_key' query parameter
        in: query
        name: api_key
        type: string
      - description: (optional) You can provide the accept header as 'accept' query parameter
        in: query
        name: accept
        type: string
      produces:
      - application/json
      - application/xml
      responses:
        '200':
          description: Custom Attributes Keys Response
          schema:
            $ref: '#/definitions/CustomAttributesKeysResponse'
        '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'
      security:
      - ApiKeyAuth: []
      summary: Retrieve all custom attributes for application
      tags:
      - raw
definitions:
  SRPerson:
    type: object
    properties:
      id:
        type: string
        description: the hex id of the person
        example: 95fbe2e775bf3c760b1000bc
      custom_data:
        $ref: '#/definitions/CustomData'
      email:
        type: string
        description: person email
        example: foo@bar.com
      facebook_id:
        type: string
        description: the facebook id
        example: 1184928249824
      mparticle_id:
        type: string
        description: the mParticle id
        example: -29482958295729572
      name:
        type: string
        description: person name
        example: Jack Daniels
  ConversationAll:
    properties:
      app_id:
        type: string
      app_release:
        $ref: '#/definitions/model.ConversationAllAppRelease'
      created_at:
        type: string
      device_id:
        type: string
      id:
        type: string
      person_id:
        type: string
      state:
        type: string
      updated_at:
        type: string
    type: object
  Conversation:
    type: object
    properties:
      id:
        type: string
        description: The id of the given Person
        example: 5e22085d5379215be800002b
      state:
        type: string
        description: conversation state
        example: new
      person_id:
        type: string
        description: The person id that is associated with following conversation id
        example: 5e22085d5379215be800002b
      device_id:
        type: string
        description: The device id that is associated with following conversation id
        example: 5e22085d5379215be800002b
      app_release:
        $ref: '#/definitions/CustomData'
  TypeValue:
    properties:
      description:
        type: string
      is_visible:
        type: boolean
      type:
        type: string
    type: object
  SurveyResponsesRowArray:
    type: array
    items:
      $ref: '#/definitions/SurveyResponse'
    description: the list of survey responses
  SRAppRelease:
    type: object
    properties:
      cf_bundle_version:
        type: string
        description: the build version number of the bundle
        example: 78
      cf_bundle_short_version_string:
        type: string
        description: the short version of the build version
        example: 4.5.11
      sdk_version:
        type: string
        description: sdk version
        example: 4.5.11
      sdk_platform:
        type: string
        description: sdk platform type
        example: iOS
      sdk_distribution:
        type: string
        description: the sdk distribution
        example: source
      sdk_distribution_version:
        type: string
        description: the sdk distribution version
        example: 4.5.11
  PeopleResponse:
    type: object
    properties:
      people:
        $ref: '#/definitions/PersonRowArray'
      ends_with:
        type: string
        description: The id of the last object returned on the current page. This should be provided as the value of starts_after to fetch the next page of results.
      page_size:
        type: number
        description: the amount of requested results per request
        example: 250
      has_more:
        type: boolean
        description: true when additional objects are available for retrieval; false otherwise.
  MessageArray:
    type: array
    items:
      $ref: '#/definitions/Message'
    description: list of conversation messages
  SnapshotData:
    type: object
    properties:
      device:
        $ref: '#/definitions/SRDevice'
      person:
        $ref: '#/definitions/SRPerson'
      app_release:
        $ref: '#/definitions/SRAppRelease'
  Question:
    type: object
    properties:
      id:
        type: string
        description: The id of the given survey response question
        example: 5e22085d5379215be800002b
      value:
        type: string
        description: The survey question value
        example: Choose one option
      type:
        type: string
        description: the type of the question
        example: multichoice | multiselect | range | nps | singleline
  SRAnswersRowArray:
    type: array
    items:
      $ref: '#/definitions/SurveyAnswerResponse'
    description: the list of survey response answers
  MessagesResponse:
    type: object
    properties:
      messages:
        $ref: '#/definitions/MessageArray'
      ends_with:
        type: string
        description: The id of the last object returned on the current page. This should be provided as the value of starts_after to fetch the next page of results.
        example: 64115344869d1b289c000049
      page_size:
        type: number
        description: the amount of requested results per request
        example: 250
      has_more:
        type: boolean
        description: true when additional objects are available for retrieval; false otherwise.
        example: true
  DevicesResponse:
    type: object
    properties:
      devices:
        $ref: '#/definitions/DevicesRowArray'
      ends_with:
        type: string
        description: The id of the last object returned on the current page. This should be provided as the value of starts_after to fetch the next page of results.
        example: 64115344869d1b289c000049
      page_size:
        type: number
        description: the amount of requested results per request
        example: 250
      has_more:
        type: boolean
        description: true when additional objects are available for retrieval; false otherwise.
        example: true
  ConversationRowArray:
    type: array
    items:
      $ref: '#/definitions/Conversation'
    description: the list of conversations
  SurveyAnswerResponse:
    type: object
    properties:
      question:
        $ref: '#/definitions/Question'
      answer:
        $ref: '#/definitions/Answer'
  Message:
    type: object
    properties:
      id:
        type: string
        description: the hex id message object representation
        example: 5e22085d5379215be800002b
      body:
        type: string
        description: the text body representation of the message
        example: Hello, how are you?
      conversation_id:
        type: string
        description: the hex id of the conversation the following message belongs to
        example: 5e22085d5379215be800002b
      created_at:
        type: string
        description: the date when this message was created
        example: '2018-04-09T21:18:22.677Z'
      inbound:
        type: boolean
        description: A boolean value denoting whether the message originated from the end-consumer or as a response back to them.  inbound:true originated from the mobile app
        example: true
      hidden:
        type: boolean
        description: identify if this message is hidden
        example: true
      snapshot_data:
        $ref: '#/definitions/MessageSnapshotData'
      customer_tags:
        type: array
        items:
          type: string
          description: customer tags
          example: hello-message
      nonce:
        type: string
        description: a unique identifier provided by the Message creator to ensure that duplicate Messages are not accidentally created
        example: C3FEEECB-D729-4508-B455-B04789D80142
      client_created_at_utc_offset:
        type: number
        description: the offset, in seconds, from UTC that client_created_at represents
        example: -14400
      client_created_at:
        type: number
        description: The timestamp (with fractional seconds) that the Message was created at on the server. In UTC
        example: 1667312180.5092402
      automated:
        type: boolean
        description: whether the message is automated
        example: false
      attachments:
        type: array
        items:
          $ref: '#/definitions/MessageAttachment'
        description: message attachments (optional)
      state:
        type: string
        description: the current state of the conversation. Can be open, waiting, or archived.
        example: open
      device_id:
        type: string
        description: the hex id of a device that initiates this message
        example: 5e22085d5379215be800002b
      person_id:
        type: string
        description: the hex id of a person that initiates this message
        example: 5e22085d5379215be800002b
  Device:
    type: object
    properties:
      id:
        type: string
        description: The id of the given Device
        example: 74e4d31328687cb30401460f
      os_name:
        type: string
        description: The operating system name
        example: iPhone OS
      os_version:
        type: string
        description: The version of the operating system
        example: 7.1.2
      os_build:
        type: string
        description: The operating system build identifier
        example: 11D257
      os_api_level:
        type: string
        description: The operating system API level (Android only)
        example: 7.1.2
      manufacturer:
        type: string
        description: The manufacturer of the Device
        example: TSMC
      model:
        type: string
        description: The model of the Device
        example: iPhone 8 CDMA
      board:
        type: string
        description: The name of the Device’s board
        example: DeviceBoard
      product:
        type: string
        description: The product name of the Device
        example: iPhone 8
      brand:
        type: string
        description: The brand of Device
        example: smdk4210
      cpu:
        type: string
        description: The CPU type within the Device
        example: Apple A6
      hardware:
        type: string
        description: The hardware identifier of the Device
        example: iPhone10,1
      carrier:
        type: string
        description: The primary network carrier for the Device
        example: Verizon
      current_carrier:
        type: string
        description: The currently active network carrier
        example: Verizon
      uuid:
        type: string
        description: the device uuid identificator
        example: 77625c5d-c52c-401f-a7f2-99b29f0e6970
      network_type:
        type: string
        description: The type of network that the Device is currently using
        example: HSDPA
      build_type:
        type: string
        description: The type of build for the Device
        example: user
      build_id:
        type: string
        description: The Device build identifier
        example: GINGERBREAD
      bootloader_version:
        type: string
        description: The version number of the bootloader for the Device
        example: 1.0
      radio_version:
        type: string
        description: The version number for the radio firmware on the Device
        example: N7000BDCLSB
      custom_data:
        $ref: '#/definitions/CustomData'
      local_language_code:
        type: string
        description: The two character language code for the Device’s current locale
        example: US
      local_country_code:
        type: string
        description: The two character country code for the Device’s current locale
        example: en
      locale_raw:
        type: string
        description: The raw locale string for the Device
        example: en_US
  MessageSnapshotData:
    type: object
    properties:
      timestamp:
        type: number
        description: snapshot data unix timestamp
        example: 1667319932
      app_release:
        $ref: '#/definitions/SRAppRelease'
      sender:
        $ref: '#/definitions/MessageSender'
  SRDevice:
    type: object
    properties:
      id:
        type: string
        description: the hex id of the device
        example: 55fbe2e775bf3c760b1000bc
      carrier:
        type: string
        description: The primary network carrier for the Device
        example: Verizon
      custom_data:
        $ref: '#/definitions/CustomData'
      manufacturer:
        type: string
        description: device manufacturer
        example: Samsung
      model:
        type: string
        description: device model
        example: S22
      os_api_level:
        type: string
        description: api level of the operating system
        example: 3.5.9
      os_name:
        type: string
        description: Operating System label
        example: Android
      os_version:
        type: string
        description: Operating System version
        example: 5.2.0
  SurveyResponse:
    type: object
    properties:
      id:
        type: string
        description: The id of the given survey response
        example: 5e22085d5379215be800002b
      survey_id:
        type: string
        description: The survey id of the given survey response
        example: 6e22085d5379215be800002b
      created_at:
        type: string
        description: survey response created date
        example: '2020-09-24T00:20:10'
      conversation_id:
        type: string
        description: The conversation id of the give survey response
        example: 7e22085d5379215be800002b
      answers:
        $ref: '#/definitions/SRAnswersRowArray'
      snapshot_data:
        $ref: '#/definitions/SnapshotData'
  ErrorBadRequestResponse:
    type: object
    properties:
      error:
        type: string
        description: the root cause in text representation
        example: some params are missing
  CustomData:
    type: object
    description: customer specific data
    properties:
      key:
        type: string
        description: custom key definition
        example: CustomKey
      value:
        type: string
        description: custom value definition
        example: CustomValue
  Person:
    type: object
    properties:
      id:
        type: string
        description: The id of the given Person
        example: 64115344869d1b289c000049
      name:
        type: string
        description: The full (first and last) name of the Person
        example: Bob
      email:
        type: string
        description: The e-mail address of the Person
        example: bob@gmail.com
      custom_data:
        $ref: '#/definitions/CustomData'
      mparticle_id:
        type: string
        description: mparticle_id (if exists)
        example: PeopleResponse
  DevicesRowArray:
    type: array
    items:
      $ref: '#/definitions/Device'
    description: the list of devices
  Answer:
    type: object
    properties:
      value:
        type: string
        description: selected answer value (could be an array of strings)
        example: '''yes'' OR [''Red'', ''Blue'']'
  ConversationAllResponse:
    properties:
      conversation:
        $ref: '#/definitions/ConversationAll'
      conversation_id:
        type: string
      device:
        $ref: '#/definitions/ConversationAllDevice'
      device_id:
        type: string
      person:
        $ref: '#/definitions/ConversationAllPerson'
      person_id:
        type: string
    type: object
  PersonRowArray:
    type: array
    items:
      $ref: '#/definitions/Person'
    description: the list of devices
  CustomAttributesKeysResponse:
    properties:
      device_keys:
        additionalProperties:
          $ref: '#/definitions/TypeValue'
        type: object
      person_keys:
        additionalProperties:
          $ref: '#/definitions/TypeValue'
        type: object
    type: object
  ErrorInternalErrorResponse:
    type: object
    properties:
      error:
        type: string
        description: the root cause in text representation
        example: unable to get the data - please contact the support team
  ErrorUnauthorizedResponse:
  

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