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

# Get corpus-level frame-quality measurements.

> Each measured frame is counted once as usable, distorted, or jerky. The
response includes category counts, shares, and coverage.



## OpenAPI

````yaml https://api.hebbianrobotics.com/public-openapi.json get /api/quality/frame-quality
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/frame-quality:
    get:
      tags:
        - quality
      summary: Get corpus-level frame-quality measurements.
      description: |-
        Each measured frame is counted once as usable, distorted, or jerky. The
        response includes category counts, shares, and coverage.
      operationId: frame_quality_route
      parameters:
        - description: Dataset ID from `GET /api/quality/datasets`.
          in: query
          name: dataset
          required: true
          schema:
            type: string
        - description: >-
            Opaque `analysis` token from an earlier response. Omit to use the
            latest

            measurement.
          in: query
          name: analysis
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: >-
            Opaque `frame_quality` token from an earlier response. Omit to use
            the

            latest measurement.
          in: query
          name: frame_quality
          required: false
          schema:
            type:
              - string
              - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FrameQualityResponse'
          description: Frame-quality counts, shares, and coverage
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
          description: The dataset ID or measurement-token combination 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 or frame-quality measurement is unavailable
      security:
        - bearer_token: []
components:
  schemas:
    FrameQualityResponse:
      description: >-
        Corpus-level frame-quality counts, shares, and measurement coverage.


        Each measured frame belongs to one category. Shares are derived from the

        category counts and `frames_measured`, and are `null` when no frames
        were

        measured.
      properties:
        analysis:
          description: Opaque token identifying the analysis used for this response.
          type: string
        classification_version:
          description: |-
            Opaque classification version. Match this value when comparing
            frame-quality results.
          type: string
        clips_analyzed:
          description: Clips included in the analysis.
          minimum: 0
          type: integer
        clips_measured:
          description: Clips that contributed frame measurements.
          minimum: 0
          type: integer
        clips_without_identity:
          description: Older clips that could not be matched to a stable clip ID.
          minimum: 0
          type: integer
        clips_without_measurements:
          description: Analyzed clips that did not contribute frame measurements.
          minimum: 0
          type: integer
        dataset:
          description: Dataset ID used in the request.
          type: string
        distorted_frames:
          description: Frames with image-quality problems that limit readability.
          format: int64
          minimum: 0
          type: integer
        distorted_share:
          description: '`distorted_frames / frames_measured`.'
          format: double
          type:
            - number
            - 'null'
        frame_quality:
          description: Opaque token identifying the frame-quality measurement.
          type: string
        frames_measured:
          description: Frames included in the three frame-quality categories.
          format: int64
          minimum: 0
          type: integer
        jerky_frames:
          description: Readable frames with a large change from the preceding frame.
          format: int64
          minimum: 0
          type: integer
        jerky_share:
          description: '`jerky_frames / frames_measured`.'
          format: double
          type:
            - number
            - 'null'
        usable_frames:
          description: Frames not classified as distorted or jerky.
          format: int64
          minimum: 0
          type: integer
        usable_share:
          description: '`usable_frames / frames_measured`.'
          format: double
          type:
            - number
            - 'null'
      required:
        - dataset
        - analysis
        - frame_quality
        - classification_version
        - clips_analyzed
        - clips_measured
        - clips_without_measurements
        - clips_without_identity
        - frames_measured
        - usable_frames
        - distorted_frames
        - jerky_frames
      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
  securitySchemes:
    bearer_token:
      description: Bearer access token issued through OAuth 2.0 client credentials.
      scheme: bearer
      type: http

````