NASA Image and Video Library API

API to access the NASA Image and Video Library at images.nasa.gov. Supports searching the Library, retrieving asset manifests, metadata, captions, and resolving rich-text URLs. Endpoints include /search, /asset, /metadata, /captions, and /album.

NASA Image and Video Library API is one of 17 APIs that NASA Open APIs publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Imagery, Video, Media, and NASA. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

image-video-library-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NASA Image and Video Library API
  description: |
    API for the NASA Image and Video Library at images.nasa.gov. Supports searching the library, retrieving
    asset manifests, metadata, captions, and resolving rich-text URLs.
  version: '1.0'
  contact:
    name: NASA Image and Video Library
    url: https://images.nasa.gov/docs/images.nasa.gov_api_docs.pdf
  license:
    name: US Government Work (Public Domain)
servers:
- url: https://images-api.nasa.gov
paths:
  /search:
    get:
      summary: Search NASA Image and Video Library
      operationId: searchLibrary
      tags:
      - Search
      parameters:
      - name: q
        in: query
        description: Free text search terms.
        schema:
          type: string
      - name: center
        in: query
        schema:
          type: string
      - name: description
        in: query
        schema:
          type: string
      - name: description_508
        in: query
        schema:
          type: string
      - name: keywords
        in: query
        schema:
          type: string
      - name: location
        in: query
        schema:
          type: string
      - name: media_type
        in: query
        schema:
          type: string
          enum:
          - image
          - video
          - audio
      - name: nasa_id
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
      - name: photographer
        in: query
        schema:
          type: string
      - name: secondary_creator
        in: query
        schema:
          type: string
      - name: title
        in: query
        schema:
          type: string
      - name: year_start
        in: query
        schema:
          type: string
      - name: year_end
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Paged collection of matching media assets.
  /asset/{nasa_id}:
    get:
      summary: Get Media Asset Manifest
      operationId: getAsset
      tags:
      - Asset
      parameters:
      - name: nasa_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of asset file URLs (image variants, video renditions, captions).
  /metadata/{nasa_id}:
    get:
      summary: Get Media Asset Metadata
      operationId: getMetadata
      tags:
      - Asset
      parameters:
      - name: nasa_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pointer to JSON metadata location for the asset.
  /captions/{nasa_id}:
    get:
      summary: Get Video Asset Captions Location
      operationId: getCaptions
      tags:
      - Asset
      parameters:
      - name: nasa_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pointer to captions file (SRT/VTT) location for video assets.
  /album/{album_name}:
    get:
      summary: Get Album Manifest
      operationId: getAlbum
      tags:
      - Album
      parameters:
      - name: album_name
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Album contents.