> ## 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 Public API Access Logs

> 指定したワークスペースのFrictio Public APIアクセスログを新しい順に取得します。
Frictio Web Appへのアクセスや画面操作のログではなく、Public APIエンドポイントへのリクエストだけが対象です。
このAPIはセキュリティオプション契約が有効なワークスペースだけ利用できます。契約対象外の場合は `403 Forbidden` を返します。
対象はFrictio Public APIのバックエンドまで到達したリクエストです。API Managementで認証・レート制限などにより拒否されたリクエストや、他ワークスペースのリクエストは含まれません。
ログ一覧取得による自己増殖を防ぐため、`GET /v1/public-api-access-logs` 自身のリクエストは記録対象に含まれません（末尾 `/` も同様）。他のメソッドや配下パスは除外しません。
同一時刻のログも欠落・重複なくページングできるよう、`occurred_at` と内部シーケンスを使って安定ソートします。内部シーケンス自体はレスポンスに公開しません。
過去のログや取得できなかった属性は `null` になる場合があります。




## OpenAPI

````yaml /openapi.yaml get /v1/public-api-access-logs
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/public-api-access-logs:
    get:
      summary: List Public API Access Logs
      description: >
        指定したワークスペースのFrictio Public APIアクセスログを新しい順に取得します。

        Frictio Web Appへのアクセスや画面操作のログではなく、Public APIエンドポイントへのリクエストだけが対象です。

        このAPIはセキュリティオプション契約が有効なワークスペースだけ利用できます。契約対象外の場合は `403 Forbidden` を返します。

        対象はFrictio Public APIのバックエンドまで到達したリクエストです。API
        Managementで認証・レート制限などにより拒否されたリクエストや、他ワークスペースのリクエストは含まれません。

        ログ一覧取得による自己増殖を防ぐため、`GET /v1/public-api-access-logs`
        自身のリクエストは記録対象に含まれません（末尾 `/` も同様）。他のメソッドや配下パスは除外しません。

        同一時刻のログも欠落・重複なくページングできるよう、`occurred_at`
        と内部シーケンスを使って安定ソートします。内部シーケンス自体はレスポンスに公開しません。

        過去のログや取得できなかった属性は `null` になる場合があります。
      operationId: listPublicApiAccessLogs
      parameters:
        - $ref: '#/components/parameters/workspaceId'
        - name: from
          in: query
          required: true
          description: 取得期間の開始日時（以上）。RFC 3339 形式で指定してください。
          schema:
            type: string
            format: date-time
          example: '2026-07-01T00:00:00.000Z'
        - name: to
          in: query
          required: true
          description: 取得期間の終了日時（未満）。`from` との差は最大31日です。
          schema:
            type: string
            format: date-time
          example: '2026-07-02T00:00:00.000Z'
        - 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/PublicApiAccessLog'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '400':
          $ref: '#/components/responses/BadRequest'
        '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:
    PublicApiAccessLog:
      type: object
      additionalProperties: false
      required:
        - occurred_at
        - operation
        - method
        - route
        - path
        - status_code
        - duration_ms
        - response_size_bytes
        - api_key_suffix
        - completion
      properties:
        occurred_at:
          type: string
          format: date-time
          description: リクエストがバックエンドに到達した日時
          example: '2026-07-01T09:18:24.123Z'
        operation:
          type:
            - string
            - 'null'
          description: Public API操作の人間向け表示名
          example: Get Meeting
        method:
          type:
            - string
            - 'null'
          description: HTTPメソッド
          example: GET
        route:
          type:
            - string
            - 'null'
          description: パスパラメータをプレースホルダー化した公開ルート
          example: /v1/meetings/{meetingId}
        path:
          type:
            - string
            - 'null'
          description: 実際にリクエストされた公開パス（クエリ文字列を除く）
          example: /v1/meetings/a1b2c3d4-...
        status_code:
          type:
            - integer
            - 'null'
          minimum: 0
          description: バックエンドが返したHTTPステータスコード
          example: 200
        duration_ms:
          type:
            - number
            - 'null'
          minimum: 0
          description: バックエンドで観測した処理時間（ミリ秒）
          example: 143
        response_size_bytes:
          type:
            - integer
            - 'null'
          minimum: 0
          description: '`Content-Length` から取得したレスポンスサイズ。取得できない場合は `null`'
          example: 5821
        api_key_suffix:
          type:
            - string
            - 'null'
          description: 利用されたAPIキーの末尾4文字。完全なAPIキーは返しません
          minLength: 4
          maxLength: 4
          example: '50e1'
        completion:
          type:
            - string
            - 'null'
          enum:
            - finish
            - close
            - null
          description: レスポンス完了（`finish`）または接続終了（`close`）
          example: finish
    Pagination:
      type: object
      required:
        - next_cursor
      properties:
        next_cursor:
          type:
            - string
            - 'null'
          description: |
            次ページ取得用カーソル。
            nullの場合、次ページはありません。
          example: eyJpZCI6MTIzfQ==
    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
  responses:
    BadRequest:
      description: クエリパラメータまたはIDの形式が不正です
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 400
            message: Bad Request
            error: Bad Request
    Unauthorized:
      description: APIキーが無効、失効、期限切れ、または未指定です
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalidApiKey:
              summary: 無効な API キー
              value:
                statusCode: 401
                message: Invalid API key
                error: Unauthorized
            missingApiKey:
              summary: API キー未指定
              value:
                statusCode: 401
                message: Missing X-Api-Key header
                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

````

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