Apptentive raw API

raw data endpoints

Operations 10

GET /raw/v2/apps/{app_id}/messages Retrieve all messages #
GET /raw/v2/apps/{app_id}/devices Retrieve all devices #
GET /raw/v2/apps/{app_id}/devices/{device_id} Retrieve single device #
GET /raw/v2/apps/{app_id}/people Retrieve all people #
GET /raw/v2/apps/{app_id}/people/{person_id} Retrieve single person #
GET /raw/v2/apps/{app_id}/conversations Retrieve all conversations #
GET /raw/v2/apps/{app_id}/conversations/{conversation_id} Retrieve single person #
GET /raw/v2/apps/{app_id}/conversation-all-data/{conversation_id} Retrieve all data for conversation
GET /raw/v2/apps/{app_id}/surveys/{survey_id}/responses Retrieve all survey responses #
GET /raw/v2/apps/{app_id}/custom-attributes-keys Retrieve all custom attributes for application

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-raw-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-raw-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Public API Service
  version: 2.0.0
  title: public-api-service experimental Raw API
  termsOfService: https://www.apptentive.com/terms/
servers:
- url: https://data.apptentive.com/
- url: http://data.apptentive.com/
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
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        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 message id from the ‘ends_with’ field, for pagination (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: message response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessagesResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/MessagesResponse'
        '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'
  /raw/v2/apps/{app_id}/devices:
    get:
      tags:
      - raw
      summary: Retrieve all devices
      description: Retrieve all devices
      operationId: getDevices
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        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 device id from the ‘ends_with’ field, for pagination (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: devices response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/DevicesResponse'
        '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'
  /raw/v2/apps/{app_id}/devices/{device_id}:
    get:
      tags:
      - raw
      summary: Retrieve single device
      description: Retrieve single device
      operationId: getSingleDevice
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: device_id
        in: path
        description: the device id in mongo 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: single device response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
            application/xml:
              schema:
                $ref: '#/components/schemas/Device'
        '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'
  /raw/v2/apps/{app_id}/people:
    get:
      tags:
      - raw
      summary: Retrieve all people
      description: Retrieve all people
      operationId: getPeople
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        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 people id from the ‘ends_with’ field, for pagination (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: people response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeopleResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/PeopleResponse'
        '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'
  /raw/v2/apps/{app_id}/people/{person_id}:
    get:
      tags:
      - raw
      summary: Retrieve single person
      description: Retrieve single person
      operationId: getSinglePerson
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: person_id
        in: path
        description: the person id in mongo 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: person response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
            application/xml:
              schema:
                $ref: '#/components/schemas/Person'
        '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'
  /raw/v2/apps/{app_id}/conversations:
    get:
      tags:
      - raw
      summary: Retrieve all conversations
      description: Retrieve all conversations
      operationId: getConversations
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        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 conversation id from the ‘ends_with’ field, for pagination (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: conversation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
        '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'
  /raw/v2/apps/{app_id}/conversations/{conversation_id}:
    get:
      tags:
      - raw
      summary: Retrieve single person
      description: Retrieve single person
      operationId: getSingleConversation
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: conversation_id
        in: path
        description: the conversation id in mongo 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: single conversation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conversation'
            application/xml:
              schema:
                $ref: '#/components/schemas/Conversation'
        '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'
  /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
        schema:
          type: string
      - description: The conversation ID in Mongo format (ex. 5e22085d5379215be800002b)
        in: path
        name: conversation_id
        required: true
        schema:
          type: string
      - description: (optional) You can provide the X-API-KEY as 'api_key' query parameter
        in: query
        name: api_key
        schema:
          type: string
      - description: (optional) You can provide the accept header as 'accept' query parameter
        in: query
        name: accept
        schema:
          type: string
      responses:
        '200':
          description: Conversation all response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationAllResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/ConversationAllResponse'
        '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'
      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
      security:
      - ApiKeyAuth: []
      parameters:
      - name: app_id
        in: path
        description: the application id in mongo id format (ex. 5e22085d5379215be800002b)
        required: true
        schema:
          type: string
      - name: survey_id
        in: path
        description: the survey 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: order
        in: query
        description: the order by date (desc | asc)
        required: false
        schema:
          type: string
          default: asc
      - name: starts_after
        in: query
        description: The survey response id from the ‘ends_with’ field, for pagination (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: survey responses object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SurveyResponsesObject'
            application/xml:
              schema:
                $ref: '#/components/schemas/SurveyResponsesObject'
        '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'
  /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
        schema:
          type: string
      - description: (optional) You can provide the X-API-KEY as 'api_key' query parameter
        in: query
        name: api_key
        schema:
          type: string
      - description: (optional) You can provide the accept header as 'accept' query parameter
        in: query
        name: accept
        schema:
          type: string
      responses:
        '200':
          description: Custom Attributes Keys Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomAttributesKeysResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/CustomAttributesKeysResponse'
        '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'
      security:
      - ApiKeyAuth: []
      summary: Retrieve all custom attributes for application
      tags:
      - raw
components:
  schemas:
    SRAnswersRowArray:
      type: array
      items:
        $ref: '#/components/schemas/SurveyAnswerResponse'
      description: the list of survey response answers
    SRPerson:
      type: object
      properties:
        id:
          type: string
          description: the hex id of the person
          example: 95fbe2e775bf3c760b1000bc
        custom_data:
          $ref: '#/components/schemas/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
    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: '#/components/schemas/CustomData'
    PersonRowArray:
      type: array
      items:
        $ref: '#/components/schemas/Person'
      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'']'
    CustomAttributesKeysResponse:
      properties:
        device_keys:
          additionalProperties:
            $ref: '#/components/schemas/TypeValue'
          type: object
        person_keys:
          additionalProperties:
            $ref: '#/components/schemas/TypeValue'
          type: object
      type: object
    MessageSnapshotData:
      type: object
      properties:
        timestamp:
          type: number
          description: snapshot data unix timestamp
          example: 1667319932
        app_release:
          $ref: '#/components/schemas/SRAppRelease'
        sender:
          $ref: '#/components/schemas/MessageSender'
    ConversationAllResponse:
      properties:
        conversation:
          $ref: '#/components/schemas/ConversationAll'
        conversation_id:
          type: string
        device:
          $ref: '#/components/schemas/ConversationAllDevice'
        device_id:
          type: string
        person:
          $ref: '#/components/schemas/ConversationAllPerson'
        person_id:
          type: string
      type: object
    ErrorUnauthorizedResponse:
      type: object
      properties:
        error:
          type: string
          description: the root cause in text representation
          example: not authorized
    ConversationAllPerson:
      properties:
        address:
          type: string
        birthday:
          type: string
        created_at:
          type: string
        custom_data: {}
        email:
          type: string
        id:
          type: string
        mparticle_id:
          type: string
        name:
          type: string
        phone_number:
          type: string
        type:
          type: string
        updated_at:
          type: string
      type: object
    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
    SurveyAnswerResponse:
      type: object
      properties:
        question:
          $ref: '#/components/schemas/Question'
        answer:
          $ref: '#/components/schemas/Answer'
    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
    ConversationResponse:
      type: object
      properties:
        conversations:
          $ref: '#/components/schemas/ConversationRowArray'
        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: 6e22085d5379215be800002b
        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: '#/components/schemas/Conversation'
      description: the list of conversations
    SurveyResponsesRowArray:
      type: array
      items:
        $ref: '#/components/schemas/SurveyResponse'
      description: the list of survey responses
    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: '#/components/schemas/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
    PeopleResponse:
      type: object
      properties:
        people:
          $ref: '#/components/schemas/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.
    MessageSender:
      type: object
      properties:
        id:
          type: string
          description: the person id of the sender
          example: 5e22085d5379215be800002b
        name:
          type: string
          description: sender name
          example: John Doe
        profile_photo:
          type: string
          description: direct source of the photo profile
          example: https://secure.gravatar.com/avatar/..d7cab1a059d1c7b?d=mm&r=pg
        email:
          type: string
          description: sender email
          example: johndoe@mail.com
        custom_data:
          $ref: '#/components/schemas/CustomData'
    SurveyResponsesObject:
      type: object
      properties:
        responses:
          $ref: '#/components/schemas/SurveyResponsesRowArray'
        

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