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

# List and filter measured clips.

> Returns a paginated clip table with vocabulary terms. Set `frame_quality`
or `hand_activity` to include measurements you can aggregate over a custom
subset.



## OpenAPI

````yaml https://api.hebbianrobotics.com/public-openapi.json get /api/quality/clips
openapi: 3.1.0
info:
  description: >-
    Use content diversity, frame-quality, and hand-activity metrics to evaluate
    robot and egocentric video datasets. Start with `GET /api/access`, then list
    available datasets with `GET /api/quality/datasets`.
  license:
    identifier: Apache-2.0
    name: Apache-2.0
  title: Robotics Data Quality API
  version: 0.0.0
servers:
  - description: Production API
    url: https://api.hebbianrobotics.com
security:
  - {}
  - bearer_token: []
tags:
  - description: >-
      Content diversity, frame-quality, and hand-activity metrics for robotics
      video data.
    name: quality
  - description: Scope and capabilities granted by a bearer token.
    name: access
paths:
  /api/quality/clips:
    get:
      tags:
        - quality
      summary: List and filter measured clips.
      description: >-
        Returns a paginated clip table with vocabulary terms. Set
        `frame_quality`

        or `hand_activity` to include measurements you can aggregate over a
        custom

        subset.
      operationId: quality_clips_route
      parameters:
        - description: Dataset ID from `GET /api/quality/datasets`.
          in: query
          name: dataset
          required: true
          schema:
            type: string
        - description: |-
            Opaque `vocabulary` token from an earlier response. Omit to use the
            latest vocabulary.
          in: query
          name: vocabulary
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: >-
            Return clips containing this published term or a known spelling of
            it.
          in: query
          name: term
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: Include clip-level frame counts. Defaults to `false`.
          in: query
          name: frame_quality
          required: false
          schema:
            type:
              - boolean
              - 'null'
        - description: Include clip-level hand-activity durations. Defaults to `false`.
          in: query
          name: hand_activity
          required: false
          schema:
            type:
              - boolean
              - 'null'
        - description: Number of matching clips to skip (default 0).
          in: query
          name: offset
          required: false
          schema:
            minimum: 0
            type:
              - integer
              - 'null'
        - description: Maximum matching clips returned (default 100, maximum 1000).
          in: query
          name: limit
          required: false
          schema:
            minimum: 0
            type:
              - integer
              - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QualityClipsResponse'
          description: A page of matching clips
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
          description: The dataset ID or pagination value is invalid
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
          description: A valid bearer token is required
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
          description: The dataset, vocabulary, measurement, or term is unavailable
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
          description: >-
            The requested vocabulary is stale; omit the vocabulary token and
            retry
      security:
        - bearer_token: []
components:
  schemas:
    QualityClipsResponse:
      description: Paginated clip measurements.
      properties:
        clips:
          description: Matching clips in this page.
          items:
            $ref: '#/components/schemas/QualityClipDto'
          type: array
        dataset:
          description: Dataset ID used in the request.
          type: string
        filtered_to:
          description: >-
            Published terms matched by the `term` filter. Empty when no filter
            was

            provided.
          items:
            $ref: '#/components/schemas/QualityTermFilterMatchDto'
          type: array
        limit:
          description: Maximum clips returned in this page.
          minimum: 0
          type: integer
        offset:
          description: Number of matching clips skipped.
          minimum: 0
          type: integer
        total:
          description: Clips matching the filter before pagination.
          minimum: 0
          type: integer
        vocabulary:
          description: Opaque vocabulary token used to build these rows.
          type: string
      required:
        - dataset
        - vocabulary
        - filtered_to
        - total
        - offset
        - limit
        - clips
      type: object
    ApiErrorBody:
      description: Error payload returned for handled API failures.
      properties:
        code:
          description: Machine-readable error code, e.g. `dataset_not_found`.
          type: string
        message:
          description: Human-readable message.
          type: string
      required:
        - code
        - message
      type: object
    QualityClipDto:
      description: Vocabulary and optional measurements for one clip.
      properties:
        actions:
          description: The clip's published action terms.
          items:
            type: string
          type: array
        analyzed_seconds:
          description: Duration of footage assessed, in seconds.
          format: double
          type: number
        clip:
          description: Stable clip ID. Use this value to join results.
          type: string
        environments:
          description: The clip's published environment terms.
          items:
            type: string
          type: array
        episode_index:
          description: >-
            Episode position at analysis time. It can be absent, so use `clip`
            as

            the join key.
          format: int32
          minimum: 0
          type:
            - integer
            - 'null'
        frame_quality:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ClipFrameQualityDto'
              description: >-
                Frame counts for this clip. Absent when not requested or
                unavailable.
        hand_activity:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ClipHandActivityDto'
              description: >-
                Hand-activity durations for this clip. Absent when not requested
                or

                unavailable.
        objects:
          description: The clip's published object terms.
          items:
            type: string
          type: array
      required:
        - clip
        - analyzed_seconds
        - environments
        - objects
        - actions
      type: object
    QualityTermFilterMatchDto:
      description: Published term matched by the `term` filter.
      properties:
        clip_count:
          description: Distinct clips containing the term.
          minimum: 0
          type: integer
        section:
          description: Vocabulary section containing the term.
          type: string
        term:
          description: Published term matched by the filter.
          type: string
      required:
        - section
        - term
        - clip_count
      type: object
    ClipFrameQualityDto:
      description: Frame-quality counts for one clip.
      properties:
        distorted:
          description: Distorted frames in the clip.
          format: int64
          minimum: 0
          type: integer
        frames:
          description: Measured frames in the clip.
          format: int64
          minimum: 0
          type: integer
        jerky:
          description: Jerky frames in the clip.
          format: int64
          minimum: 0
          type: integer
        usable:
          description: Usable frames in the clip.
          format: int64
          minimum: 0
          type: integer
      required:
        - frames
        - usable
        - distorted
        - jerky
      type: object
    ClipHandActivityDto:
      description: Hand-activity durations for one clip.
      properties:
        active_manipulation_seconds:
          description: Seconds showing a hand acting on an object.
          format: double
          type: number
        hands_visible_seconds:
          description: Seconds with at least one camera-wearer hand visible.
          format: double
          type: number
        measured_seconds:
          description: Assessed footage in seconds.
          format: double
          type: number
        two_hands_visible_seconds:
          description: Seconds with both camera-wearer hands visible.
          format: double
          type: number
      required:
        - measured_seconds
        - hands_visible_seconds
        - two_hands_visible_seconds
        - active_manipulation_seconds
      type: object
  securitySchemes:
    bearer_token:
      description: Bearer access token issued through OAuth 2.0 client credentials.
      scheme: bearer
      type: http

````