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

# List Meetings

> 実施済みのミーティングを一覧で取得します。
デフォルトでは開始時間の降順（新しい順）で返却されます。
全体公開のミーティングが対象です。
返却対象は `status` が `COMPLETED` かつ `visibility_scope` が `WORKSPACE_ONLY`（全体公開）のミーティングのみです。
`visibility_scope` が `ATTENDEES_ONLY`（参加者限定）のミーティングはクエリパラメータによらず返却されません。
サマリーやアクションアイテムの生成状態は `overview_status` で確認できます。




## OpenAPI

````yaml /openapi.yaml get /v1/meetings
openapi: 3.1.0
info:
  title: Frictio Public API
  version: 1.0.0-beta
servers:
  - url: https://public-api.frictio.ai
security:
  - ApiKeyAuth: []
paths:
  /v1/meetings:
    get:
      summary: List Meetings
      description: >
        実施済みのミーティングを一覧で取得します。

        デフォルトでは開始時間の降順（新しい順）で返却されます。

        全体公開のミーティングが対象です。

        返却対象は `status` が `COMPLETED` かつ `visibility_scope` が
        `WORKSPACE_ONLY`（全体公開）のミーティングのみです。

        `visibility_scope` が `ATTENDEES_ONLY`（参加者限定）のミーティングはクエリパラメータによらず返却されません。

        サマリーやアクションアイテムの生成状態は `overview_status` で確認できます。
      operationId: listMeetings
      parameters:
        - $ref: '#/components/parameters/workspaceId'
        - name: from
          in: query
          required: false
          description: >
            取得範囲の開始日時（以上）。ISO 8601 形式で指定してください。

            toと組み合わせて期間指定が可能です。

            例: from=2026-02-01T00:00:00.000Z & to=2026-03-01T00:00:00.000Z →
            2月中に開始されたミーティング
          schema:
            type: string
            format: date-time
          example: '2026-02-01T00:00:00.000Z'
        - name: to
          in: query
          required: false
          description: |
            取得範囲の終了日時（未満）。ISO 8601 形式で指定してください。
          schema:
            type: string
            format: date-time
          example: '2026-03-01T00:00:00.000Z'
        - name: base_type
          in: query
          required: false
          description: ミーティング種別でフィルタ
          schema:
            type: string
            enum:
              - MEETING
              - CALL
        - name: contact_ids
          in: query
          required: false
          description: 参加者のContact IDでフィルタ（カンマ区切りで複数指定可、OR条件）
          schema:
            type: string
          example: a1b2c3d4-...,b2c3d4e5-...
        - name: team_ids
          in: query
          required: false
          description: 参加者が所属するTeam IDでフィルタ（カンマ区切りで複数指定可、OR条件）
          schema:
            type: string
          example: team-id-1,team-id-2
        - name: has_crm_integrations
          in: query
          required: false
          description: |
            CRM更新履歴の有無でフィルタします。
            true の場合は CRM 更新履歴を持つミーティングのみ、false の場合は CRM 更新履歴を持たないミーティングのみ返します。
          schema:
            type: boolean
          example: false
        - name: limit
          in: query
          required: false
          description: 取得件数の上限（1〜50、デフォルト30）
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 30
        - name: cursor
          in: query
          required: false
          description: ページネーションカーソル。レスポンスの next_cursor を指定してください。
          schema:
            type: string
      responses:
        '200':
          description: 成功
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - pagination
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/MeetingListItem'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    workspaceId:
      name: X-Workspace-Id
      in: header
      required: true
      description: ワークスペースID
      schema:
        type: string
      example: e1f2a3b4-...
  schemas:
    MeetingListItem:
      description: |
        List Meetingsで返却されるミーティングの各アイテム。
        サマリー・アクションアイテム等の詳細データは
        Get Meetingで取得してください。
      allOf:
        - $ref: '#/components/schemas/BaseMeeting'
    Pagination:
      type: object
      required:
        - next_cursor
      properties:
        next_cursor:
          type:
            - string
            - 'null'
          description: |
            次ページ取得用カーソル。
            nullの場合、次ページはありません。
          example: eyJpZCI6MTIzfQ==
    BaseMeeting:
      type: object
      description: ミーティングの基本情報
      required:
        - meeting_id
        - frictio_meeting_url
        - workspace_id
        - title
        - platform
        - start_time
        - end_time
        - base_type
        - recording_source
        - overview_status
        - recording_duration
        - crm_type
        - meeting_type_name
        - transcript_config
        - meeting_owner
        - attendees
        - crm_integrations
        - related_objects
      properties:
        meeting_id:
          type: string
          description: ミーティングID
          example: a1b2c3d4-...
        frictio_meeting_url:
          type: string
          format: uri
          description: FrictioミーティングURL
          example: https://app.frictio.ai/ws/e1f2a3b4-.../meetings/1234567890
        workspace_id:
          type: string
          description: ワークスペースID
          example: e1f2a3b4-...
        title:
          type: string
          description: タイトル
          example: PoC実装レビュー - UI & 認証対応
        platform:
          type:
            - string
            - 'null'
          description: プラットフォーム（Zoom, Google Meet等）
          example: Zoom
        start_time:
          type: string
          format: date-time
          description: 開始時間（UTC）
          example: '2026-06-05T10:00:00.000Z'
        end_time:
          type:
            - string
            - 'null'
          format: date-time
          description: 終了時間（UTC）
          example: '2026-06-05T10:30:00.000Z'
        recording_duration:
          type:
            - integer
            - 'null'
          description: 録画・録音時間（秒）
          example: 1800
        base_type:
          type: string
          description: ミーティング種別
          enum:
            - MEETING
            - CALL
          example: MEETING
        recording_source:
          type: string
          description: 録音ソース
          enum:
            - REALTIME_BOT_RECORDING
            - BROWSER_FILE_UPLOAD
            - ZOOM_CALL_FILE_UPLOAD
            - MOBILE_FILE_UPLOAD
            - KCPS_FILE_UPLOAD
          example: REALTIME_BOT_RECORDING
        overview_status:
          type: string
          description: |
            ミーティング概要の生成状態。サマリーやアクションアイテムが揃っているかの判断に使用します。
            - `NOT_STARTED`: ミーティング概要の生成が未開始
            - `IN_PROGRESS`: ミーティング概要の生成中
            - `COMPLETED`: ミーティング概要の生成が完了
            - `NO_TRANSCRIPTION`: 文字起こしデータがなく、ミーティング概要を生成しない
            - `FAILED`: ミーティング概要の生成に失敗
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - COMPLETED
            - NO_TRANSCRIPTION
            - FAILED
          example: COMPLETED
        crm_type:
          type:
            - string
            - 'null'
          description: CRMタイプ
          enum:
            - HUBSPOT
            - SALESFORCE
          example: HUBSPOT
        meeting_type_name:
          type:
            - string
            - 'null'
          description: ミーティングタイプ名
          example: 商談
        transcript_config:
          oneOf:
            - $ref: '#/components/schemas/TranscriptConfig'
            - type: 'null'
          description: 文字起こし設定
        meeting_owner:
          $ref: '#/components/schemas/MeetingOwner'
        attendees:
          type: array
          description: 参加者リスト
          items:
            $ref: '#/components/schemas/Attendee'
        crm_integrations:
          type: array
          description: CRM連携リスト
          items:
            $ref: '#/components/schemas/CrmIntegration'
        related_objects:
          type: array
          description: |
            リレーションされているFrictioオブジェクト（Contact, Company）。
            ミーティングに紐づくContactやCompanyの情報と、同期先のCRMレコード情報を含みます。
            返却される Contact および Company は `visibility = PUBLIC`（公開）のものに限定されます。
            `visibility = PRIVATE`（非公開）の Contact / Company はクエリパラメータによらず含まれません。
          items:
            $ref: '#/components/schemas/RelatedObject'
    Error:
      type: object
      required:
        - statusCode
        - message
      properties:
        statusCode:
          type: integer
          description: HTTPステータスコード
          example: 404
        message:
          type: string
          description: エラーメッセージ
          example: Meeting not found
        error:
          type: string
          description: |
            エラー種別。メッセージ文字列付きで例外が生成された場合のみ含まれます。
          example: Not Found
    TranscriptConfig:
      type: object
      required:
        - languages
      properties:
        languages:
          type: array
          description: 文字起こし言語（例：["ja", "en"]）
          items:
            type: string
          example:
            - ja
            - en
    MeetingOwner:
      type: object
      required:
        - name
        - email
        - teams
      properties:
        name:
          type: string
          description: 氏名
          example: 大橋 勇輔
        email:
          type: string
          format: email
          description: メールアドレス
          example: sample@syslea.io
        teams:
          type: array
          description: 所属チームリスト
          items:
            $ref: '#/components/schemas/Team'
    Attendee:
      type: object
      required:
        - attendee_user_name
        - attendee_user_email
        - is_workspace_member
        - is_internal
        - teams
        - contact_id
      properties:
        attendee_user_name:
          type:
            - string
            - 'null'
          description: 表示名。外部参加者の場合、プラットフォームから名前を取得できないケースではnullになります。
          example: 大橋 勇輔
        attendee_user_email:
          type:
            - string
            - 'null'
          format: email
          description: |
            メールアドレス。
            ZOOM_CALL_FILE_UPLOAD（コール）の場合、電話番号に紐づくContactのメールアドレスが設定されます。
            Contactが存在しない場合はnullになります。
          example: sample@syslea.io
        is_workspace_member:
          type: boolean
          description: ワークスペースメンバーフラグ
          example: true
        is_internal:
          type: boolean
          description: 社内メンバーフラグ
          example: true
        teams:
          type: array
          description: 所属チームリスト
          items:
            $ref: '#/components/schemas/Team'
        contact_id:
          type:
            - string
            - 'null'
          description: 紐づくContactのID。詳細はrelated_objectsを参照。
          example: a1b2c3d4-...
    CrmIntegration:
      type: object
      required:
        - record_id
        - record_name
        - record_url
        - record_object_type
      properties:
        record_id:
          type: string
          description: CRMレコードID
          example: '12345678901'
        record_name:
          type: string
          description: CRMレコード名
          example: 株式会社シスリー
        record_url:
          type: string
          format: uri
          description: CRMレコードURL
          example: https://app.hubspot.com/contacts/12345678901
        record_object_type:
          type: string
          description: CRMオブジェクトタイプ
          example: contact
    RelatedObject:
      type: object
      required:
        - display_name
        - object_id
        - object_type
        - fields
        - sync_crm_object
      properties:
        display_name:
          type: string
          description: レコード名
          example: 大橋 勇輔
        object_id:
          type: string
          description: FrictioオブジェクトのレコードID
          example: a1b2c3d4-...
        object_type:
          type: string
          description: Frictioのオブジェクトタイプ
          enum:
            - contact
            - company
          example: contact
        fields:
          type:
            - object
            - 'null'
          description: |
            オブジェクトタイプに応じたフィールドの値。
            contactの場合: company_ids（紐づくCompanyのIDリスト）, is_internal（社内フラグ）など
          example:
            company_ids:
              - c1d2e3f4-...
            is_internal: false
        sync_crm_object:
          oneOf:
            - $ref: '#/components/schemas/SyncCrmObject'
            - type: 'null'
          description: 同期されているCRMオブジェクトレコード。CRM連携がない場合はnull。
    Team:
      type: object
      required:
        - team_id
        - name
      properties:
        team_id:
          type: string
          description: チームID
          example: b2c3d4e5-...
        name:
          type: string
          description: チーム名
          example: 営業チーム
    SyncCrmObject:
      type: object
      description: CRM同期オブジェクト（RelatedObject.sync_crm_object用）
      required:
        - record_id
        - record_name
        - record_url
        - record_object_type
      properties:
        record_id:
          type: string
          description: CRMレコードID
          example: '12345678901'
        record_name:
          type: string
          description: CRMレコード名
          example: 株式会社シスリー
        record_url:
          type: string
          format: uri
          description: CRMレコードURL
          example: https://app.hubspot.com/contacts/12345678901
        record_object_type:
          type: string
          description: CRMオブジェクトタイプ
          example: contact
  responses:
    Unauthorized:
      description: APIキーが無効、失効、期限切れ、または未指定です
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 401
            message: Invalid API key
            error: Unauthorized
    Forbidden:
      description: 権限エラー
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 403
            message: Forbidden
    TooManyRequests:
      description: レートリミット超過
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 429
            message: Too Many Requests
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key

````