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

# List meetings

> List the organization's meetings, newest first.

Returns meetings that are opted in to organization insights and whose owner currently belongs to the API key's
organization. Deleted meetings are excluded, and nothing is returned while the organization has organization
insights turned off. Results are ordered by `created_at`, newest first. When `next_cursor` is not null, pass it as `cursor` to fetch the next page; a null
`next_cursor` means there are no more results.



## OpenAPI

````yaml /openapi.json get /public/v1/admin/meetings
openapi: 3.1.0
info:
  description: >-
    Read your organization's Wispr Flow data. Authenticate every request with an
    organization API key (`sk_...`) as a Bearer token; each endpoint requires a
    specific permission on the key. Rate limits apply per organization and are
    shared by all of its keys. List endpoints use cursor pagination and return
    results newest first. Only meetings opted in to organization insights are
    visible.
  title: Wispr Flow Public API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.wisprflow.ai
security:
  - bearerAuth: []
paths:
  /public/v1/admin/meetings:
    get:
      tags:
        - Meetings
      summary: List meetings
      description: >-
        List the organization's meetings, newest first.


        Returns meetings that are opted in to organization insights and whose
        owner currently belongs to the API key's

        organization. Deleted meetings are excluded, and nothing is returned
        while the organization has organization

        insights turned off. Results are ordered by `created_at`, newest first.
        When `next_cursor` is not null, pass it as `cursor` to fetch the next
        page; a null

        `next_cursor` means there are no more results.
      operationId: listMeetings
      parameters:
        - description: Only return meetings recorded by this Flow user ID.
          in: query
          name: owner_id
          required: false
          schema:
            anyOf:
              - maxLength: 80
                minLength: 1
                type: string
              - type: 'null'
            description: Only return meetings recorded by this Flow user ID.
            title: Owner Id
        - description: >-
            Only return meetings recorded by the user with this email, matched
            case-insensitively. Cannot be combined with `owner_id`.
          in: query
          name: owner_email
          required: false
          schema:
            anyOf:
              - maxLength: 350
                minLength: 1
                type: string
              - type: 'null'
            description: >-
              Only return meetings recorded by the user with this email, matched
              case-insensitively. Cannot be combined with `owner_id`.
            title: Owner Email
        - description: >-
            Only return meetings created at or after this time (inclusive). Must
            include a time zone offset, such as `Z`.
          in: query
          name: created_after
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Only return meetings created at or after this time (inclusive).
              Must include a time zone offset, such as `Z`.
            title: Created After
        - description: >-
            Only return meetings created before this time (exclusive). Must
            include a time zone offset, such as `Z`.
          in: query
          name: created_before
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Only return meetings created before this time (exclusive). Must
              include a time zone offset, such as `Z`.
            title: Created Before
        - description: Maximum number of meetings to return, from 1 to 100.
          in: query
          name: page_size
          required: false
          schema:
            default: 50
            description: Maximum number of meetings to return, from 1 to 100.
            maximum: 100
            minimum: 1
            title: Page Size
            type: integer
        - description: >-
            The `next_cursor` from the previous page. Send the same filters with
            every page.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - maxLength: 128
                minLength: 1
                type: string
              - type: 'null'
            description: >-
              The `next_cursor` from the previous page. Send the same filters
              with every page.
            title: Cursor
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingList'
          description: One page of meetings.
        '400':
          content:
            application/json:
              examples:
                Invalid cursor:
                  value:
                    detail: Invalid cursor
                owner_id and owner_email are mutually exclusive:
                  value:
                    detail: owner_id and owner_email are mutually exclusive
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: The filters or cursor are invalid.
        '401':
          content:
            application/json:
              examples:
                Invalid API key:
                  value:
                    detail: Invalid API key
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: >-
            The API key is missing, malformed, invalid, expired or revoked, or
            the organization's API access is not enabled.
          headers:
            WWW-Authenticate:
              description: Always `Bearer`.
              schema:
                type: string
        '403':
          content:
            application/json:
              examples:
                Permission denied:
                  value:
                    detail: Permission denied
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: The API key does not have the permission this endpoint requires.
        '408':
          content:
            application/json:
              examples:
                Request timed out:
                  value:
                    detail: Request timed out
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: The request did not complete within the server's request deadline.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
        '429':
          content:
            application/json:
              examples:
                Rate limit exceeded:
                  value:
                    detail: Rate limit exceeded
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: >-
            The organization's rate limit is exhausted. The limit is shared by
            all of the organization's API keys.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                minimum: 1
                type: integer
        '503':
          content:
            application/json:
              examples:
                Service unavailable:
                  value:
                    detail: Service unavailable
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: A dependency is temporarily unavailable. Retry with backoff.
components:
  schemas:
    MeetingList:
      description: One page of meetings.
      properties:
        meetings:
          description: Meetings on this page, newest first.
          items:
            $ref: '#/components/schemas/MeetingListItem'
          title: Meetings
          type: array
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Opaque cursor for the next page, passed as `cursor`. Null when there
            are no more results.
          title: Next Cursor
      required:
        - meetings
        - next_cursor
      title: MeetingList
      type: object
    ErrorDetail:
      description: Error body returned for every non-validation error.
      properties:
        detail:
          description: Human-readable error message.
          title: Detail
          type: string
      required:
        - detail
      title: ErrorDetail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    MeetingListItem:
      description: Meeting metadata returned by the list endpoint.
      properties:
        created_at:
          description: When the meeting was created, in UTC.
          format: date-time
          title: Created At
          type: string
        id:
          description: The meeting ID.
          format: uuid
          title: Id
          type: string
        owner:
          $ref: '#/components/schemas/MeetingOwner'
        title:
          anyOf:
            - type: string
            - type: 'null'
          description: Meeting title, or null if it has none.
          title: Title
        updated_at:
          description: When the meeting was last updated, in UTC.
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - title
        - owner
        - created_at
        - updated_at
      title: MeetingListItem
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    MeetingOwner:
      description: The Flow user who recorded the meeting.
      properties:
        email:
          anyOf:
            - type: string
            - type: 'null'
          description: The owner's account email, or null if unknown.
          title: Email
        id:
          description: The owner's Flow user ID. Accepted by the `owner_id` list filter.
          title: Id
          type: string
      required:
        - id
        - email
      title: MeetingOwner
      type: object
  securitySchemes:
    bearerAuth:
      description: >-
        A WorkOS-issued organization API key (`sk_...`) with the
        `admin:meetings:read` permission.
      scheme: bearer
      type: http

````

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