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

# Drill into one hierarchical summary node

> Returns one selected node and its immediate children. Node IDs are local to an analysis, so keep summary_ref on every request. Leaf evidence is included only when requested.



## OpenAPI

````yaml /api-reference/openapi-v1.yaml post /summaries/node
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.


    Invalid or missing keys return `401`. Non-Pro keys return `403`.


    ## 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 CRC32-based hash that uniquely identifies a media file.
    Returned by the metadata endpoint.

    - **`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:
  /summaries/node:
    post:
      tags:
        - Summaries
      summary: Drill into one hierarchical summary node
      description: >-
        Returns one selected node and its immediate children. Node IDs are local
        to an analysis, so keep summary_ref on every request. Leaf evidence is
        included only when requested.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - cache_dir
                - node_id
              properties:
                cache_dir:
                  type: string
                summary_ref:
                  type: string
                  description: Preferred stable `<media_hash>:<analysis_id>` selector.
                path:
                  type: string
                hash_str:
                  type: string
                analysis_id:
                  type: string
                node_id:
                  type: string
                include_evidence:
                  type: boolean
                  default: false
      responses:
        '200':
          description: Compact node and child previews
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SummaryReadResponse'
        '400':
          description: Invalid cache directory, summary selector, or node ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Summary node not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SummaryReadResponse:
      type: object
      required:
        - schema_version
        - media
        - summary_ref
        - analysis_id
        - node
        - children
      properties:
        schema_version:
          type: string
          example: '3'
        media:
          type: object
          required:
            - hash_str
            - basename
            - duration_ms
          properties:
            path:
              type: string
              nullable: true
            hash_str:
              type: string
            basename:
              type: string
            duration_ms:
              type: integer
        summary_ref:
          type: string
          description: Stable `<media_hash>:<analysis_id>` selector.
        analysis:
          type: object
          additionalProperties: true
        analysis_id:
          type: string
        short_summary:
          type: string
        root_node_id:
          type: string
        transcript_language:
          type: string
          nullable: true
        output_language:
          type: string
        output_language_source:
          type: string
          enum:
            - explicit
            - transcript
            - default
        transcript_status:
          type: string
          enum:
            - disabled
            - not_available
            - empty
            - used
        summary_objective:
          type: object
          additionalProperties: true
        footage_context:
          type: string
          nullable: true
        node:
          $ref: '#/components/schemas/SummaryNode'
        children:
          type: array
          items:
            $ref: '#/components/schemas/SummaryNode'
      additionalProperties: true
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
      required:
        - error
    SummaryNode:
      type: object
      properties:
        id:
          type: string
        node_type:
          type: string
          enum:
            - leaf
            - parent
        start_seconds:
          type: number
        end_seconds:
          type: number
        child_ids:
          type: array
          items:
            type: string
        child_count:
          type: integer
        named_people:
          type: array
          items:
            type: string
        search_scope:
          $ref: '#/components/schemas/FrameRangeMap'
        verification_hints:
          type: array
          description: Bounded evidence limitations with suggested source checks.
          items:
            $ref: '#/components/schemas/VerificationHint'
        summary_text:
          type: string
          description: Present for the selected node.
        summary_preview:
          type: string
          description: Bounded preview used for immediate children.
        evidence:
          type: object
          description: >-
            Present only for a selected leaf when include_evidence is true;
            contains compact frame, transcript, people, and attribution
            references.
          additionalProperties: true
    FrameRangeMap:
      type: object
      additionalProperties:
        oneOf:
          - type: array
            minItems: 2
            maxItems: 2
            items:
              type: integer
              minimum: 0
          - type: array
            items:
              type: array
              minItems: 2
              maxItems: 2
              items:
                type: integer
                minimum: 0
      description: >
        Media-path or media-hash keys mapped to half-open `[start_frame,
        end_frame)`

        ranges, or lists of ranges, on Jumper's 1 FPS analysis grid. Keys must
        be

        inside the selected media scope.
    VerificationHint:
      type: object
      required:
        - reason_code
        - claim_category
        - start_seconds
        - end_seconds
        - evidence_ids
        - suggested_check
      properties:
        reason_code:
          type: string
          example: speaker_identity_inferred
        claim_category:
          type: string
          example: speaker_identity
        start_seconds:
          type: number
        end_seconds:
          type: number
        subject_names:
          type: array
          items:
            type: string
        basis:
          type: string
        evidence_ids:
          type: array
          items:
            type: string
        suggested_check:
          type: string
          enum:
            - inspect_people_and_transcript_context
            - read_transcript_range
  securitySchemes:
    HeaderAuth:
      type: apiKey
      in: header
      name: X-License-Key
      description: Jumper Pro license key passed via header

````