> ## 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.

# List survey instances

> List the scheduled sends of a survey. Results are paginated, newest first.



## OpenAPI

````yaml /openapi.json get /v1/surveys/{survey_id}/instances
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
  - name: Account
    description: 'Owner-only workspace settings: user provisioning and feature permissions'
paths:
  /v1/surveys/{survey_id}/instances:
    get:
      tags:
        - Surveys
      summary: List survey instances
      description: >-
        List the scheduled sends of a survey. Results are paginated, newest
        first.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
            description: The ID of the survey
            example: 2XOADZ5X978jbJUbveb9
          required: true
          description: The ID of the survey
          name: survey_id
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Maximum number of results to return (1-100, default 25)
            example: 25
          required: false
          description: Maximum number of results to return (1-100, default 25)
          name: limit
          in: query
        - schema:
            type: string
            maxLength: 256
            description: Cursor for pagination. Returns results after this schedule ID.
            example: tdqYSbhl2En9Aue6iOr3
          required: false
          description: Cursor for pagination. Returns results after this schedule ID.
          name: starting_after
          in: query
      responses:
        '200':
          description: List of survey instances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SurveyScheduleListResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    SurveyScheduleListResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
          description: Object type identifier
          example: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/SurveyScheduleResponse'
          description: Array of survey schedule objects
        has_more:
          type: boolean
          description: Whether there are more results available
          example: false
        url:
          type: string
          description: The URL for this list endpoint
          example: /v1/surveys/2XOADZ5X978jbJUbveb9/schedules
      required:
        - object
        - data
        - has_more
        - url
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - invalid_request_error
                - rate_limit_error
                - not_found_error
                - permission_error
              description: The type of error returned
              example: invalid_request_error
            code:
              type: string
              nullable: true
              enum:
                - api_key_required
                - api_key_invalid
                - firebase_id_token_required
                - firebase_id_token_invalid
                - appcheck_token_required
                - appcheck_token_invalid
                - account_id_required
                - account_id_invalid
                - api_access_disabled
                - api_access_unauthorized
                - api_access_role_not_allowed
                - parameter_missing
                - parameter_invalid
                - resource_already_exists
                - resource_in_use
                - resource_not_found
                - permission_denied
                - not_implemented
                - internal_error
                - rate_limit_exceeded
                - upstream_error
                - user_not_found
                - user_not_connected_to_slack
                - user_missing_roles_for_track
                - user_already_on_track
                - user_already_completed_track
                - enrollee_already_terminal
                - track_not_active
                - track_not_enrollable
                - action_forbidden
                - api_access_plan_not_supported
                - plan_not_supported
                - draft_stale
                - invalid_cursor
                - program_archived
                - program_not_active
                - program_track_not_live
                - invalid_status_transition
                - mentorship_not_proposed
                - mentorship_ended
                - approval_waiting_on_mentor
                - no_reachable_manager
                - application_already_decided
                - participant_not_in_program
                - participant_already_answered
                - participant_not_mentor
                - reminder_pending
                - mentee_not_waiting
                - mentor_not_active
                - mentor_full
                - mentor_at_total
                - mentor_unchanged
                - same_person
                - invite_expired
                - invite_revoked
                - null
              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: tYYueINbgmmyss8O3LiD'
            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
            request_id:
              type: string
              description: ID of the request, for support
              example: req_8KSh4mNxQ1aZbPoLcVrT
          required:
            - type
            - code
            - message
            - request_id
      required:
        - error
    SurveyScheduleResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - survey_schedule
          description: Object type identifier
          example: survey_schedule
        id:
          type: string
          description: Unique schedule identifier
          example: tdqYSbhl2En9Aue6iOr3
        survey_id:
          type: string
          description: The survey this schedule is for
          example: 2XOADZ5X978jbJUbveb9
        status:
          type: string
          enum:
            - active
            - paused
            - canceled
            - completed
          description: Current status of the schedule
          example: active
        send_at:
          type: string
          nullable: true
          format: date-time
          example: '2026-06-15T09:00:00.000Z'
          description: >-
            UTC datetime (ISO 8601) for the next/scheduled send. For one-off,
            the chosen time. For recurring, the next firing — re-anchored from
            this when editing. Null when paused/canceled.
        timezone:
          type: string
          description: >-
            IANA timezone used to interpret send_at and to derive cadence
            day/time.
          example: America/New_York
        destination:
          $ref: '#/components/schemas/ActivityDestination'
        include_future_members:
          type: boolean
          description: Whether people who join the recipient cohort later also get this.
        frequency:
          type: string
          enum:
            - once
            - daily
            - weekly
            - biweekly
            - monthly
            - quarterly
            - annually
          description: How often the survey is delivered
          example: weekly
        intro_message:
          type: string
          nullable: true
          description: Intro message sent with the survey
        mandatory_completion:
          $ref: '#/components/schemas/SurveyMandatoryCompletion'
        next_trigger_at:
          type: string
          nullable: true
          format: date-time
          example: '2026-02-01T09:00:00.000Z'
          description: >-
            When the survey will next be delivered (ISO 8601), or null if
            paused/canceled
        created_at:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00.000Z'
          description: When the schedule was created (ISO 8601)
        updated_at:
          type: string
          format: date-time
          example: '2026-01-20T14:00:00.000Z'
          description: When the schedule was last updated (ISO 8601)
        source:
          type: string
          enum:
            - standalone
            - track
          description: Whether this schedule was created standalone or via a track
          example: standalone
        track:
          type: object
          nullable: true
          properties:
            object:
              type: string
              enum:
                - track
            id:
              type: string
              description: Track identifier
              example: uty2xkZYYWo6f8Yx8KyG
            name:
              type: string
              description: Track name
              example: Onboarding
          required:
            - object
            - id
            - name
          description: Track details if this schedule was created via a track
        meta:
          allOf:
            - $ref: '#/components/schemas/ActivityMeta'
            - description: >-
                What the requesting user can do with this survey schedule (edit,
                pause, resume, delete, activate, manage admins). Use these to
                drive UI affordances.
      required:
        - object
        - id
        - survey_id
        - status
        - send_at
        - timezone
        - destination
        - include_future_members
        - frequency
        - intro_message
        - mandatory_completion
        - next_trigger_at
        - created_at
        - updated_at
        - source
        - track
        - meta
    ActivityDestination:
      oneOf:
        - $ref: '#/components/schemas/ChannelDestination'
        - $ref: '#/components/schemas/ChannelMembersDestination'
        - $ref: '#/components/schemas/GroupsDestination'
        - $ref: '#/components/schemas/IndividualsDestination'
        - $ref: '#/components/schemas/NewHiresDestination'
        - $ref: '#/components/schemas/ManagersDestination'
        - $ref: '#/components/schemas/ManagersDirectReportsDestination'
        - $ref: '#/components/schemas/ManagersAllReportsDestination'
        - $ref: '#/components/schemas/EmailsDestination'
        - $ref: '#/components/schemas/GroupDMDestination'
        - $ref: '#/components/schemas/CohortChannelDestination'
        - $ref: '#/components/schemas/CohortMembersDestination'
      discriminator:
        propertyName: type
        mapping:
          slack_channel: '#/components/schemas/ChannelDestination'
          slack_channel_members: '#/components/schemas/ChannelMembersDestination'
          groups: '#/components/schemas/GroupsDestination'
          individuals: '#/components/schemas/IndividualsDestination'
          new_hires: '#/components/schemas/NewHiresDestination'
          managers: '#/components/schemas/ManagersDestination'
          managers_direct_reports: '#/components/schemas/ManagersDirectReportsDestination'
          managers_all_reports: '#/components/schemas/ManagersAllReportsDestination'
          emails: '#/components/schemas/EmailsDestination'
          group_dm: '#/components/schemas/GroupDMDestination'
          cohort_channel: '#/components/schemas/CohortChannelDestination'
          cohort_members: '#/components/schemas/CohortMembersDestination'
    SurveyMandatoryCompletion:
      type: object
      nullable: true
      properties:
        enabled:
          type: boolean
          description: Whether mandatory completion is enabled
          example: false
        reminder_interval_days:
          type: integer
          minimum: 1
          maximum: 31
          description: Days between reminder messages
          example: 3
        max_reminder_window_days:
          type: integer
          minimum: 1
          maximum: 365
          description: Stop sending reminders after this many days
          example: 30
        custom_reminder_message:
          type: string
          nullable: true
          description: Custom reminder message override. Null uses the default message.
          example: null
      required:
        - enabled
        - reminder_interval_days
        - max_reminder_window_days
        - custom_reminder_message
      additionalProperties: false
      description: Mandatory completion and reminder settings
    ActivityMeta:
      type: object
      properties:
        permissions:
          $ref: '#/components/schemas/ActivityPermissions'
      required:
        - permissions
      description: >-
        What the requesting user can do with this quiz (edit, pause, resume,
        delete, activate, manage admins). Use these to drive UI affordances.
    ChannelDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - slack_channel
          description: Destination type
          example: slack_channel
        slack_channel_id:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[A-Za-z0-9_-]+$
          description: Slack channel ID
          example: C1234567890
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - slack_channel_id
      additionalProperties: false
    ChannelMembersDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - slack_channel_members
          description: Destination type
          example: slack_channel_members
        slack_channel_id:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[A-Za-z0-9_-]+$
          description: Slack channel ID
          example: C1234567890
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - slack_channel_id
      additionalProperties: false
    GroupsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - groups
          description: Destination type
          example: groups
        group_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 50
          description: Group IDs
          example:
            - Tuexb7HOpNlamm5q3YCk
            - nfUDJFVTy7dzvymttma4
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - group_ids
      additionalProperties: false
    IndividualsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - individuals
          description: Destination type
          example: individuals
        slack_user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Slack user IDs
          example:
            - U1234567890
            - U0987654321
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - slack_user_ids
      additionalProperties: false
    NewHiresDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - new_hires
          description: Destination type
          example: new_hires
        max_weeks_since_joining:
          type: number
          nullable: true
          description: Maximum weeks since joining to be considered a new hire
          example: 4
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - max_weeks_since_joining
      additionalProperties: false
    ManagersDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - managers
          description: Destination type
          example: managers
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
      additionalProperties: false
    ManagersDirectReportsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - managers_direct_reports
          description: Destination type
          example: managers_direct_reports
        user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Doozy user IDs
          example:
            - 06gPNJbvBuM2i8BKRXct
        slack_user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Slack user IDs
          example:
            - U1234567890
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - user_ids
        - slack_user_ids
      additionalProperties: false
    ManagersAllReportsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - managers_all_reports
          description: Destination type
          example: managers_all_reports
        user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Doozy user IDs
          example:
            - 06gPNJbvBuM2i8BKRXct
        slack_user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Slack user IDs
          example:
            - U1234567890
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - user_ids
        - slack_user_ids
      additionalProperties: false
    EmailsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - emails
          description: Destination type
          example: emails
        email_addresses:
          type: array
          items:
            type: string
            maxLength: 254
            format: email
          maxItems: 200
          description: Email addresses
          example:
            - john@example.com
            - jane@example.com
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - email_addresses
      additionalProperties: false
    GroupDMDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - group_dm
          description: Destination type
          example: group_dm
        slack_user_ids:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          maxItems: 500
          description: Slack user IDs in the group DM
          example:
            - U1234567890
            - U0987654321
        slack_channel_id:
          type: string
          nullable: true
          minLength: 1
          maxLength: 128
          pattern: ^[A-Za-z0-9_-]+$
          description: Slack channel ID if already created
          example: null
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - slack_user_ids
        - slack_channel_id
      additionalProperties: false
    CohortChannelDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - cohort_channel
          description: Destination type
          example: cohort_channel
        cohort_id:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[A-Za-z0-9_-]+$
          description: Cohort ID
          example: a7Aj3iEr4vqL6XAN0h2n
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - cohort_id
      additionalProperties: false
    CohortMembersDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - cohort_members
          description: Destination type
          example: cohort_members
        cohort_id:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[A-Za-z0-9_-]+$
          description: Cohort ID
          example: a7Aj3iEr4vqL6XAN0h2n
        exclude_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Exclude users whose profile values match these rules (AND across
            rules).
        include_user_with_values:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AdvancedFilterRule'
          description: >-
            Restrict to users whose profile values match these rules (AND across
            rules).
        filters:
          type: object
          nullable: true
          properties:
            group_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
            manager_status:
              $ref: '#/components/schemas/ManagerStatus'
            countries:
              type: array
              nullable: true
              items:
                type: string
            work_location_ids:
              type: array
              nullable: true
              items:
                type: string
            excluded_user_ids:
              type: array
              nullable: true
              items:
                type: string
                minLength: 1
                maxLength: 128
                pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Group / country / work-location / per-user exclusion filters layered
            on top of the destination's primary selector.
      required:
        - type
        - cohort_id
      additionalProperties: false
    ActivityPermissions:
      type: object
      properties:
        can_view_results:
          type: boolean
        can_clone:
          type: boolean
        can_manage:
          type: boolean
        can_edit:
          type: boolean
        can_pause:
          type: boolean
        can_resume:
          type: boolean
        can_delete:
          type: boolean
        can_activate:
          type: boolean
        can_manage_admins:
          type: boolean
      required:
        - can_view_results
        - can_clone
        - can_manage
        - can_edit
        - can_pause
        - can_resume
        - can_delete
        - can_activate
        - can_manage_admins
    AdvancedFilterRule:
      type: object
      properties:
        key:
          type: string
          description: Member profile field name to match against
          example: team
        value:
          type: string
          description: Value to match against
          example: Engineering
        match_method:
          $ref: '#/components/schemas/MatchMethod'
      required:
        - key
        - value
        - match_method
    ManagerStatus:
      type: string
      nullable: true
      enum:
        - manager
        - non_manager
        - null
    MatchMethod:
      type: string
      enum:
        - equals
        - includes
      description: How to compare key/value
      example: equals
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate keys in the Doozy dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.