> ## Documentation Index
> Fetch the complete documentation index at: https://help.doozy.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Get introduction report

> Retrieve a detailed analytics report for an introduction, including summary statistics (total instances, matches, participants, meeting rates) and a paginated match list with participant details.



## OpenAPI

````yaml /openapi.json get /v1/introductions/{introductionId}/report
openapi: 3.0.3
info:
  title: Doozy Public API
  version: 1.0.0
  description: >-
    The Doozy Public API allows you to programmatically access your
    organization's data.


    ## Authentication


    All API requests require an API key passed in the `x-api-key` header.


    ```

    x-api-key: dzy_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    ```


    API keys can be generated and managed through the Doozy dashboard. Each key
    is associated with a user account and inherits that user's permissions.


    ## Rate Limiting


    API requests are rate limited. Rate limiting is handled by Cloudflare. If
    you exceed the rate limit, you'll receive a 429 Too Many Requests response.


    ## Pagination


    List endpoints support cursor-based pagination using `limit` and
    `starting_after` query parameters.
  contact:
    name: Doozy Support
    email: support@doozy.live
    url: https://help.doozy.live/api
servers:
  - url: https://api.doozy.live
    description: Production
security:
  - apiKey: []
tags:
  - name: Quizzes
    description: Quiz analytics and reporting endpoints
  - name: Tracks
    description: Track management and analytics endpoints
  - name: Surveys
    description: Survey and poll analytics endpoints
  - name: Introductions
    description: Doozy Roulette and Matchmaking introduction endpoints
paths:
  /v1/introductions/{introductionId}/report:
    get:
      tags:
        - Introductions
      summary: Get introduction report
      description: >-
        Retrieve a detailed analytics report for an introduction, including
        summary statistics (total instances, matches, participants, meeting
        rates) and a paginated match list with participant details.
      parameters:
        - schema:
            type: string
            description: Introduction ID
            example: intro_abc123
          required: true
          description: Introduction ID
          name: introductionId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: 'Maximum number of matches to return (default: 25, max: 100)'
            example: 25
          required: false
          description: 'Maximum number of matches to return (default: 25, max: 100)'
          name: limit
          in: query
        - schema:
            type: string
            description: Cursor for pagination
            example: match_abc123
          required: false
          description: Cursor for pagination
          name: starting_after
          in: query
        - schema:
            type: string
            description: Cursor for pagination (backward)
            example: match_xyz789
          required: false
          description: Cursor for pagination (backward)
          name: ending_before
          in: query
        - schema:
            type: string
            description: Filter matches from this date (ISO 8601)
            example: '2024-01-01T00:00:00.000Z'
          required: false
          description: Filter matches from this date (ISO 8601)
          name: from_date
          in: query
        - schema:
            type: string
            description: Filter matches until this date (ISO 8601)
            example: '2024-12-31T23:59:59.999Z'
          required: false
          description: Filter matches until this date (ISO 8601)
          name: to_date
          in: query
        - schema:
            type: string
            description: Filter to a specific instance
            example: inst_abc123
          required: false
          description: Filter to a specific instance
          name: instance_id
          in: query
      responses:
        '200':
          description: Introduction report with summary and matches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntroductionReportResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required - missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Introduction not found or user does not have access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    IntroductionReportResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - introduction_report
          description: Object type identifier
          example: introduction_report
        id:
          type: string
          description: Introduction ID
          example: intro_abc123
        type:
          allOf:
            - $ref: '#/components/schemas/IntroductionType'
            - description: Introduction type
              example: group
        summary:
          allOf:
            - $ref: '#/components/schemas/IntroductionReportSummary'
            - description: Report summary metrics
        matches:
          type: array
          items:
            $ref: '#/components/schemas/IntroductionMatch'
          description: Paginated matches with participant details
        has_more:
          type: boolean
          description: Whether there are more matches available beyond this page
          example: true
        url:
          type: string
          description: The URL for accessing this report
          example: /v1/introductions/intro_abc123/report
        next_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the next page of matches. Pass as starting_after in
            subsequent requests.
          example: match_xyz789
        previous_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the previous page of matches. Pass as ending_before
            in subsequent requests.
          example: match_abc123
      required:
        - object
        - id
        - type
        - summary
        - matches
        - has_more
        - url
        - next_cursor
        - previous_cursor
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - invalid_request_error
                - rate_limit_error
              description: The type of error returned
              example: invalid_request_error
            code:
              type: string
              nullable: true
              description: Machine-readable error code for specific error conditions
              example: resource_not_found
            message:
              type: string
              description: Human-readable error message
              example: 'No such quiz: quiz_abc123'
            param:
              type: string
              nullable: true
              description: The parameter related to the error, if applicable
              example: id
            doc_url:
              type: string
              format: uri
              description: URL to documentation about this error
              example: https://docs.doozy.live/api/errors#resource_not_found
          required:
            - type
            - code
            - message
      required:
        - error
    IntroductionType:
      type: string
      enum:
        - group
        - individual
    IntroductionReportSummary:
      type: object
      properties:
        total_instances:
          type: integer
          description: Total number of instances
          example: 10
        total_matches:
          type: integer
          description: Total number of matches
          example: 50
        total_participants:
          type: integer
          description: Total number of unique participants
          example: 100
        meeting_scheduled_count:
          type: integer
          description: Number of matches with scheduled meetings
          example: 35
        meeting_scheduled_rate:
          type: number
          description: Percentage of matches with scheduled meetings (0-100)
          example: 70
        calendar_connected_count:
          type: integer
          description: Number of matches with calendar connected
          example: 40
        calendar_connected_rate:
          type: number
          description: Percentage of matches with calendar connected (0-100)
          example: 80
        said_met_count:
          type: integer
          description: Number of matches that confirmed meeting
          example: 25
        said_met_rate:
          type: number
          description: Percentage of matches that confirmed meeting (0-100)
          example: 50
      required:
        - total_instances
        - total_matches
        - total_participants
        - meeting_scheduled_count
        - meeting_scheduled_rate
        - calendar_connected_count
        - calendar_connected_rate
        - said_met_count
        - said_met_rate
    IntroductionMatch:
      type: object
      properties:
        object:
          type: string
          enum:
            - introduction_match
          description: Object type identifier
          example: introduction_match
        id:
          type: string
          description: Unique match identifier
          example: match_abc123
        introduction_id:
          type: string
          description: Parent introduction ID
          example: intro_abc123
        instance_id:
          type: string
          description: Parent instance ID
          example: inst_abc123
        participants:
          type: array
          items:
            $ref: '#/components/schemas/IntroductionMatchParticipant'
          description: Match participants
        matched_at:
          type: string
          description: ISO 8601 timestamp when matched
          example: '2024-02-01T09:00:00.000Z'
        has_scheduled_event:
          type: boolean
          description: Whether a meeting was scheduled
          example: true
        scheduled_event_at:
          type: string
          nullable: true
          description: ISO 8601 timestamp when event was scheduled
          example: '2024-02-01T10:00:00.000Z'
        has_linked_calendar:
          type: boolean
          description: Whether a calendar is linked
          example: true
        has_said_met:
          type: boolean
          description: >-
            Whether participants confirmed they met (outside of calendar
            confirmation)
          example: false
        said_met_at:
          type: string
          nullable: true
          description: ISO 8601 timestamp when they confirmed meeting
          example: null
        reminder_sent:
          type: boolean
          description: Whether a reminder was sent
          example: true
        nominated_organiser:
          type: object
          nullable: true
          properties:
            user_id:
              type: string
            slack_user_id:
              type: string
          required:
            - user_id
            - slack_user_id
          description: Nominated meeting organiser (group introductions only)
      required:
        - object
        - id
        - introduction_id
        - instance_id
        - participants
        - matched_at
        - has_scheduled_event
        - scheduled_event_at
        - has_linked_calendar
        - has_said_met
        - said_met_at
        - reminder_sent
        - nominated_organiser
    IntroductionMatchParticipant:
      type: object
      properties:
        user_id:
          type: string
          description: Doozy user ID
          example: user_abc123
        slack_user_id:
          type: string
          nullable: true
          description: Slack user ID
          example: U1234567890
        display_name:
          type: string
          nullable: true
          description: User's display name
          example: John Doe
        email:
          type: string
          nullable: true
          description: User's email address
          example: john@example.com
        department:
          type: string
          nullable: true
          description: User's department/group
          example: Engineering
        location:
          type: string
          nullable: true
          description: User's work location
          example: San Francisco, CA
        manager_name:
          type: string
          nullable: true
          description: Manager's display name
          example: Jane Smith
        manager_email:
          type: string
          nullable: true
          description: Manager's email address
          example: jane@example.com
      required:
        - user_id
        - slack_user_id
        - display_name
        - email
        - department
        - location
        - manager_name
        - manager_email
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate keys in the Doozy dashboard.

````