UserTesting Studies API

The Studies API from UserTesting — 2 operation(s) for studies.

OpenAPI Specification

usertesting-studies-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: 'API documentation for the legacy UTZ Integrations service (v1).


    This API enables partners and external applications to retrieve and embed UserTesting content, including clips, sessions, and highlight reels, and to access study and workspace metadata. Responses are designed to support rich previews and embedded playback experiences in third-party products.


    Endpoints require bearer token authentication and return standard HTTP error payloads for unauthorized or invalid requests.


    **Note**: This is a revised version of the original OpenAPI specification file. The original file can be found [here](https://github.com/UserTestingEnterprise/integrations/blob/main/docs/swagger.json).'
  title: Integrations (v1) Clip Studies API
  version: '1.0'
  contact:
    name: UserTesting Support
    url: https://developer.usertesting.com/
    email: support@usertesting.com
servers:
- url: //api.use2.usertesting.com/usertesting/api
security:
- bearerAuth: []
tags:
- name: Studies
paths:
  /v1/studies/{studyUuid}/completed-sessions:
    get:
      description: Fetch all completed sessions for a study identified by UUID. Returns comprehensive session data including participant information (name, demographics), screener responses, task answers with transcripts, session state, and completion timestamps. Use pagination with cursor for large result sets.
      parameters:
      - description: '[UUID of the study](https://developer.usertesting.com/v1.0/docs/how-to-obtain-uuids-for-api-requests#study-uuids) you want to obtain information for.'
        in: path
        name: studyUuid
        required: true
        schema:
          type: string
      - description: Cursor for paginating through study results. Use the `cursor` value from a previous response to retrieve the next 50 results following the indicated study.
        in: query
        name: after
        required: false
        schema:
          type: string
      - name: before
        in: query
        description: Cursor for paginating through study results. Use the `cursor` value from a previous response to retrieve the 50 results preceding the indicated study.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletedSessions'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
      summary: Retrieve all sessions in a study
      tags:
      - Studies
  /v1/studies/{studyUuid}:
    get:
      description: Fetch detailed information for a study (test) identified by UUID. Returns study configuration including title, session count, task definitions, test plan settings, and Net Promoter Score (NPS) data if available. Studies represent the overall test structure that participants complete.
      parameters:
      - description: '[UUID of the study](https://developer.usertesting.com/v1.0/docs/how-to-obtain-uuids-for-api-requests#study-uuids) you want to obtain information for.'
        in: path
        name: studyUuid
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Study'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorResponse'
      summary: Retrieve study metadata and configuration
      tags:
      - Studies
components:
  schemas:
    StudyNetPromoterScore:
      properties:
        detractorPercentage:
          type: integer
          description: Percentage of respondents classified as detractors for this NPS result.
          example: 18
        passivePercentage:
          type: integer
          description: Percentage of respondents classified as passives for this NPS result.
          example: 26
        promoterPercentage:
          type: integer
          description: Percentage of respondents classified as promoters for this NPS result.
          example: 56
        score:
          type: integer
          description: Net Promoter Score value for the study.
          example: 38
      type: object
      example:
        detractorPercentage: 18
        passivePercentage: 26
        promoterPercentage: 56
        score: 38
    HttpErrorResponse:
      properties:
        errorCode:
          type: string
          description: Machine-readable error code derived from the HTTP status returned by the API.
          example: BAD_REQUEST
        errorMessage:
          type: string
          description: Human-readable error message describing the failure.
          example: Not a valid UUID
      type: object
      example:
        errorCode: BAD_REQUEST
        errorMessage: Not a valid UUID
    Study:
      properties:
        netPromoterScores:
          items:
            $ref: '#/components/schemas/StudyNetPromoterScore'
          type: array
          description: Net Promoter Score result objects associated with the study.
          example:
          - detractorPercentage: 18
            passivePercentage: 26
            promoterPercentage: 56
            score: 38
        orderedBy:
          properties:
            email:
              description: Email of the user who ordered or created the study.
              type: string
              example: support@usertesting.com
            name:
              description: Name of the user who ordered or created the study.
              type: string
              example: UT Employee
          type: object
          description: User information for the person who ordered or created the study.
          example:
            email: support@usertesting.com
            name: UT Employee
        sessionCount:
          description: Total number of sessions associated with the study.
          type: integer
          example: 50
        tasks:
          items:
            $ref: '#/components/schemas/StudyTaskNode'
          type: array
          description: Ordered task definitions that make up the study flow.
          example:
          - blurPII: false
            choices:
            - Poland
            - Singapore
            grouping: INITIAL
            launchUrl: https://www.microsoft.com/en-us
            lowerEndpoint: Very difficult
            multipleAnswers: true
            position: 1
            resultType: ''
            scaleMaximum: 5
            scaleMinimum: 1
            taskGroup:
              id: VGFza0dyb3Vwczo6TWFpbi01MDI=
              type: MAIN
            taskType: multiple_choice
            text: 'ACME offices are located in:'
            upperEndpoint: Very easy
        testPlan:
          properties:
            shortTest:
              type: boolean
              description: Whether the study is configured as a short test.
              example: false
          type: object
          description: Summary of study-level test plan settings.
          example:
            shortTest: false
        title:
          description: Human-readable study title.
          type: string
          example: ACME Test
      type: object
      example:
        netPromoterScores:
        - detractorPercentage: 18
          passivePercentage: 26
          promoterPercentage: 56
          score: 38
        orderedBy:
          email: support@usertesting.com
          name: UT Employee
        sessionCount: 50
        tasks:
        - blurPII: false
          choices:
          - Poland
          - Singapore
          grouping: INITIAL
          launchUrl: https://www.microsoft.com/en-us
          lowerEndpoint: Very difficult
          multipleAnswers: true
          position: 1
          resultType: ''
          scaleMaximum: 5
          scaleMinimum: 1
          taskGroup:
            id: VGFza0dyb3Vwczo6TWFpbi01MDI=
            type: MAIN
          taskType: multiple_choice
          text: 'ACME offices are located in:'
          upperEndpoint: Very easy
        testPlan:
          shortTest: false
        title: ACME Test
    CompletedSessions:
      properties:
        completedSessionCount:
          description: Total number of completed sessions returned for the study query.
          type: integer
          example: 4
        sessions:
          items:
            properties:
              answers:
                items:
                  properties:
                    duration:
                      description: Duration of this answer segment in seconds.
                      type: integer
                      example: 51
                    responses:
                      description: Captured response values for this answer segment.
                      items:
                        type: string
                      type: array
                      example:
                      - Poland
                      - Singapore
                    time:
                      description: Offset in seconds from session start when this answer segment begins.
                      type: integer
                      example: 0
                    transcript:
                      description: Transcript text or structured transcript data captured for this answer segment.
                      oneOf:
                      - type: string
                      - type: object
                      example: I am looking for pricing information before I continue.
                    type:
                      description: Answer content type.
                      type: string
                      example: multiple_choice
                    url:
                      description: URL to the media asset for this answer segment, when available.
                      type: string
                      example: https://example.usertesting.com/v/3339d946-3b60-4f09-8433-a2a7598d5d26?start=0
                  type: object
                type: array
                description: Answer records aligned to the study tasks, in task order.
                example:
                - time: 0
                  duration: 51
                  url: https://example.usertesting.com/v/3339d946-3b60-4f09-8433-a2a7598d5d26?start=0
                  transcript: I am looking for pricing information before I continue.
                  type: multiple_choice
                  responses:
                  - Poland
                  - Singapore
              completedDateTime:
                description: Timestamp when the participant completed the session (UTC, ISO 8601).
                format: date-time
                type: string
                example: '2023-11-30T11:24:58Z'
              cursor:
                description: Pagination cursor associated with this session result.
                type: string
                example: MQ
              formFactorUsed:
                description: 'Device form factor used by the participant (for example: desktop, mobile, tablet).'
                type: string
                example: Computer
              participant:
                properties:
                  demographics:
                    properties:
                      age:
                        type: integer
                        description: Self-reported participant age in years.
                        example: 34
                      children:
                        description: Self-reported information about children in the participant's household.
                        items:
                          type: string
                        type: array
                        example:
                        - No children
                      companySize:
                        type: string
                        description: Self-reported size of the company the participant works for.
                        example: 1,001-5,000 employees
                      country:
                        type: string
                        description: Self-reported country of residence.
                        example: United States
                      employmentStatus:
                        type: string
                        description: Self-reported employment status.
                        example: Employed full-time (30 or more hours per week)
                      gender:
                        type: string
                        description: Self-reported gender identity.
                        example: Female
                      income:
                        type: string
                        description: Self-reported household income range.
                        example: $60,000 - $79,999
                      industry:
                        type: string
                        description: Self-reported industry the participant works in.
                        example: Financial Services
                      jobFunction:
                        type: string
                        description: Self-reported job role or functional area.
                        example: Finance
                      seniority:
                        type: string
                        description: Self-reported seniority level in the participant's role.
                        example: Senior
                      socialNetworks:
                        items:
                          type: string
                        type: array
                        description: Social networks the participant reports using.
                        example:
                        - LinkedIn
                        - Facebook
                      webExpertise:
                        description: Self-reported level of web proficiency.
                        type: string
                        example: Intermediate
                    type: object
                    description: Self-reported demographic attributes for the participant.
                    example:
                      age: 34
                      children:
                      - No children
                      country: United States
                      income: $60,000 - $79,999
                      socialNetworks:
                      - LinkedIn
                      - Facebook
                      gender: Female
                      webExpertise: Intermediate
                      companySize: 1,001-5,000 employees
                      employmentStatus: Employed full-time (30 or more hours per week)
                      industry: Financial Services
                      jobFunction: Finance
                      seniority: Senior
                  name:
                    type: string
                    description: Display name or identifier for the participant; in some responses this may be an email address.
                    example: participant@example.com
                type: object
                description: Participant identity and demographic information captured for the completed session.
                example:
                  name: participant@example.com
                  demographics:
                    age: 34
                    children:
                    - No children
                    country: United States
                    income: $60,000 - $79,999
                    socialNetworks:
                    - LinkedIn
                    - Facebook
                    gender: Female
                    webExpertise: Intermediate
                    companySize: 1,001-5,000 employees
                    employmentStatus: Employed full-time (30 or more hours per week)
                    industry: Financial Services
                    jobFunction: Finance
                    seniority: Senior
              screenerResponses:
                items:
                  properties:
                    question:
                      description: Screener question text presented to the participant.
                      type: string
                      example: What country do you live in?
                    response:
                      description: Participant response values for the screener question.
                      items:
                        type: string
                      type: array
                      example:
                      - United States
                  type: object
                type: array
                description: Responses the participant gave to pre-study screener questions.
                example:
                - question: What country do you live in?
                  response:
                  - United States
              sessionId:
                description: Internal session identifier in UserTesting systems.
                type: integer
                example: 15280
              sessionUuid:
                description: External UUID used to identify the session in API requests.
                type: string
                example: 3339d946-3b60-4f09-8433-a2a7598d5d26
              state:
                description: Lifecycle state of the session.
                type: string
                example: completed
              taskOrderingCondition:
                description: Variant or condition indicating the task ordering assigned to the participant.
                type: string
                example: default
            type: object
          type: array
          description: Completed session records returned for this page of the study results.
          example:
          - cursor: MQ
            sessionId: 15280
            sessionUuid: 3339d946-3b60-4f09-8433-a2a7598d5d26
            completedDateTime: '2023-11-30T11:24:58Z'
            participant:
              name: participant@example.com
              demographics:
                age: 34
                children:
                - No children
                country: United States
                income: $60,000 - $79,999
                socialNetworks:
                - LinkedIn
                - Facebook
                gender: Female
                webExpertise: Intermediate
                companySize: 1,001-5,000 employees
                employmentStatus: Employed full-time (30 or more hours per week)
                industry: Financial Services
                jobFunction: Finance
                seniority: Senior
            state: completed
            taskOrderingCondition: default
            formFactorUsed: Computer
            answers:
            - time: 0
              duration: 51
              url: https://example.usertesting.com/v/3339d946-3b60-4f09-8433-a2a7598d5d26?start=0
              transcript: I am looking for pricing information before I continue.
              type: multiple_choice
              responses:
              - Poland
              - Singapore
            screenerResponses:
            - question: What country do you live in?
              response:
              - United States
      type: object
      example:
        completedSessionCount: 4
        sessions:
        - cursor: MQ
          sessionId: 15280
          sessionUuid: 3339d946-3b60-4f09-8433-a2a7598d5d26
          completedDateTime: '2023-11-30T11:24:58Z'
          participant:
            name: participant@example.com
            demographics:
              age: 34
              children:
              - No children
              country: United States
              income: $60,000 - $79,999
              socialNetworks:
              - LinkedIn
              - Facebook
              gender: Female
              webExpertise: Intermediate
              companySize: 1,001-5,000 employees
              employmentStatus: Employed full-time (30 or more hours per week)
              industry: Financial Services
              jobFunction: Finance
              seniority: Senior
          state: completed
          taskOrderingCondition: default
          formFactorUsed: Computer
          answers:
          - time: 0
            duration: 51
            url: https://example.usertesting.com/v/3339d946-3b60-4f09-8433-a2a7598d5d26?start=0
            transcript: I am looking for pricing information before I continue.
            type: multiple_choice
            responses:
            - Poland
            - Singapore
          screenerResponses:
          - question: What country do you live in?
            response:
            - United States
    StudyTaskNode:
      properties:
        blurPII:
          type: boolean
          description: Whether the task should be blurred to hide personally identifiable information.
          example: false
        choices:
          items:
            type: string
          type: array
          description: Available answer choices for a multiple-choice style task.
          example:
          - Poland
          - Singapore
        grouping:
          description: Group or category used to organize this task within the study flow.
          type: string
          example: INITIAL
        launchUrl:
          type: string
          description: URL automatically opened or associated with this task, when applicable.
          example: https://www.microsoft.com/en-us
        lowerEndpoint:
          description: Display label for the minimum endpoint of a scale-based task.
          type: string
          example: Very difficult
        multipleAnswers:
          type: boolean
          description: Whether the participant can select multiple answers for the task.
          example: true
        position:
          type: integer
          description: Position of the task within the study flow.
          example: 1
        resultType:
          description: 'Expected response format for this task (for example: open-ended, rating, multiple-choice).'
          type: string
          example: ''
        scaleMaximum:
          type: integer
          description: Maximum numeric value for rating-scale tasks.
          example: 5
        scaleMinimum:
          type: integer
          description: Minimum numeric value for rating-scale tasks.
          example: 1
        taskGroup:
          properties:
            id:
              type: string
              description: Identifier of the associated task group.
              example: VGFza0dyb3Vwczo6TWFpbi01MDI=
            type:
              type: string
              description: Classification of the task group.
              example: MAIN
          type: object
          description: Group metadata identifying the task's logical grouping within the study.
          example:
            id: VGFza0dyb3Vwczo6TWFpbi01MDI=
            type: MAIN
        taskType:
          type: string
          description: Legacy task type used to define the task, such as blank, multiple_choice, rating_scale, or launch_url.
          example: multiple_choice
        text:
          type: string
          description: Instruction text or prompt shown to the participant for the task.
          example: 'ACME offices are located in:'
        upperEndpoint:
          description: Display label for the maximum endpoint of a scale-based task.
          type: string
          example: Very easy
      type: object
      example:
        blurPII: false
        choices:
        - Poland
        - Singapore
        grouping: INITIAL
        launchUrl: https://www.microsoft.com/en-us
        lowerEndpoint: Very difficult
        multipleAnswers: true
        position: 1
        resultType: ''
        scaleMaximum: 5
        scaleMinimum: 1
        taskGroup:
          id: VGFza0dyb3Vwczo6TWFpbi01MDI=
          type: MAIN
        taskType: multiple_choice
        text: 'ACME offices are located in:'
        upperEndpoint: Very easy
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Go to [Authorization](https://developer.usertesting.com/v1.0/docs/authentication-authorization) for information on how to generate an access token.