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

# Get full technical metadata for media files

> Returns the technical metadata in Jumper's metadata index for each file: container
and codecs, resolution, frame rate, color, audio layout, timecode, camera, GPS, and
MXF package details. Files that aren't indexed yet, or whose last extraction failed,
are read first, so a first request for many files can take a while. No `cache_dir`
is needed; the metadata index doesn't live in the Analysis folder.

Files with an unsupported extension, and files Jumper can't read or hash (for
example missing files, or files on a disconnected drive), are left out.




## OpenAPI

````yaml /api-reference/openapi-v1.yaml post /media/metadata/full
openapi: 3.0.3
info:
  title: Jumper Public API
  version: '1.0'
  description: >
    REST API for third-party integrations with Jumper's media analysis engine.


    Jumper analyzes video, image, and audio files — enabling semantic visual
    search,

    speech transcription, face detection with clustering, and hierarchical
    summaries.

    This API exposes those capabilities for use by MAM systems, automation
    pipelines,

    and custom tooling.


    ## Authentication


    All endpoints except `/health` require a **Jumper Pro** license key.

    The OpenAPI contract models the supported `X-License-Key` header flow.


    Jumper also accepts a `license_key` field in many JSON POST bodies as a

    convenience, but that is a Jumper-specific request-body convention rather

    than an OpenAPI security scheme. A non-empty JSON `license_key` takes

    precedence over the header.


    Send the raw license key on every authenticated request. Activating Jumper

    in the UI does not authenticate later API requests automatically. Pro uses

    the same entitlements in the UI and API; no separate API entitlement is
    needed.


    Missing keys return `401`. Supplied keys that cannot be validated or lack

    Pro entitlements return `403`. The `error` is `Jumper Pro license required`

    for both cases; inspect the response `message` for the validation reason.

    A valid non-Pro key can have `message: "OK"` and still return `403`.

    Enterprise policy denials also return `403`, with a `policy_error` field.


    Successful validation can be cached for 30 minutes. Health only checks

    connectivity and does not validate a license. The API is local to the

    machine running Jumper; use `localhost` or `127.0.0.1`.


    ## Key Concepts


    - **`cache_dir`** — The folder where Jumper stores analysis data (visual
    analysis, transcriptions, face clusters). You choose this path.

    - **`media_paths`** — Absolute filesystem paths to media files. Jumper needs
    direct access to these files.

    - **`hash_str`** — A backend-issued media identity returned by the metadata
    endpoint. Computed with xxh64 from the file size and sampled head/tail
    bytes; it is not a full-file integrity checksum.

    - **`model_key`** — Internal identifier for a visual or speech analysis
    model variant (e.g. `v2-medium-256`).
  contact:
    name: Jumper
    url: https://getjumper.io
servers:
  - url: http://localhost:6699/api/v1
    description: Local Jumper backend
security:
  - HeaderAuth: []
paths:
  /media/metadata/full:
    post:
      tags:
        - Media
      summary: Get full technical metadata for media files
      description: >
        Returns the technical metadata in Jumper's metadata index for each file:
        container

        and codecs, resolution, frame rate, color, audio layout, timecode,
        camera, GPS, and

        MXF package details. Files that aren't indexed yet, or whose last
        extraction failed,

        are read first, so a first request for many files can take a while. No
        `cache_dir`

        is needed; the metadata index doesn't live in the Analysis folder.


        Files with an unsupported extension, and files Jumper can't read or hash
        (for

        example missing files, or files on a disconnected drive), are left out.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - media_paths
              properties:
                media_paths:
                  type: array
                  items:
                    type: string
                  description: Media files to read
      responses:
        '200':
          description: Metadata records keyed by each path exactly as sent
          content:
            application/json:
              schema:
                type: object
                required:
                  - metadata
                properties:
                  metadata:
                    type: object
                    description: Keyed by each path exactly as sent.
                    additionalProperties:
                      type: object
                      description: >
                        Every field of the metadata index. A field Jumper
                        couldn't read is null.

                        More fields may be added later.
                      required:
                        - hash_str
                        - media_path
                        - basename
                      properties:
                        hash_str:
                          type: string
                        media_path:
                          type: string
                          description: The requested path made absolute
                        basename:
                          type: string
                        extension:
                          type: string
                          nullable: true
                          example: mp4
                        media_kind:
                          type: string
                          nullable: true
                          example: video
                        duration_seconds:
                          type: number
                          nullable: true
                        width:
                          type: integer
                          nullable: true
                        height:
                          type: integer
                          nullable: true
                        fps:
                          type: number
                          nullable: true
                        frame_count:
                          type: integer
                          nullable: true
                        video_codec:
                          type: string
                          nullable: true
                        audio_codec:
                          type: string
                          nullable: true
                        audio_channel_count:
                          type: integer
                          nullable: true
                        start_timecode:
                          type: string
                          nullable: true
                        error:
                          type: string
                          nullable: true
                          description: Set when metadata extraction failed for this file
                      additionalProperties: true
        '400':
          description: >-
            media_paths is missing or empty, or no file's metadata could be read
            (`Could not read metadata for any of the provided media files`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/AuthenticationRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          description: Failed to read metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        message:
          type: string
          description: >-
            Additional validation detail. Authentication failures include this
            field.
      required:
        - error
    PolicyError:
      type: object
      required:
        - policy_error
      properties:
        policy_error:
          type: string
          description: Enterprise policy restriction that denied the request.
  responses:
    AuthenticationRequired:
      description: >-
        No license key was supplied in X-License-Key or the JSON license_key
        field.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Authentication required
            message: Provide license_key in request body or X-License-Key header
    Forbidden:
      description: >-
        The supplied key could not be validated, lacks Pro entitlements, or an
        Enterprise policy denied the action. Inspect message or policy_error for
        the reason.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/PolicyError'
          examples:
            invalidKey:
              summary: License key does not exist
              value:
                error: Jumper Pro license required
                message: >-
                  License invalid and activation not required: license does not
                  exist
            nonProKey:
              summary: Valid license without Pro entitlements
              value:
                error: Jumper Pro license required
                message: OK
            policyDenied:
              summary: Enterprise policy denied the action
              value:
                policy_error: >-
                  This action is not available under your organization's Jumper
                  policy
  securitySchemes:
    HeaderAuth:
      type: apiKey
      in: header
      name: X-License-Key
      description: >-
        Raw Jumper Pro license key on every authenticated request, without a
        Bearer prefix

````

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