NASA Open APIs · Agentic Access

NASA Open APIs Agentic Access

x-agentic-access generated

NASA Open APIs exposes 62 API operations that an AI agent could call, of which 1 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 61 read and 1 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

GovernmentFederalSpaceEarth ScienceOpen DataAstronomyPlanetary ScienceHeliophysicsBioscienceNASA
Operations: 62 Acting: 1 Human-in-the-loop: 0 Method: generated

By consequence

read 61 write 1

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/apod-openapi.yml, openapi/asteroids-neows-openapi.yml, openapi/donki-openapi.yml,
  openapi/earth-openapi.yml, openapi/eonet-openapi.yml, openapi/epic-openapi.yml, openapi/exoplanet-openapi.yml,
  openapi/genelab-openapi.yml, openapi/image-video-library-openapi.yml, openapi/insight-openapi.yml,
  openapi/mars-rover-photos-openapi.yml, openapi/satellite-situation-center-openapi.yml, openapi/ssd-cneos-openapi.yml,
  openapi/techport-openapi.yml, openapi/techtransfer-openapi.yml, openapi/tle-openapi.yml, openapi/trek-wmts-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 62
  by_action_class:
    connected: 61
    acting: 1
  by_consequence:
    read: 61
    write: 1
  human_in_the_loop_required: 0
operations:
- path: /planetary/apod
  method: get
  operationId: getApod
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /neo/rest/v1/feed
  method: get
  operationId: getNeoFeed
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /neo/rest/v1/neo/{asteroid_id}
  method: get
  operationId: getNeoLookup
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /neo/rest/v1/neo/browse
  method: get
  operationId: browseNeo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/CME
  method: get
  operationId: getCME
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/CMEAnalysis
  method: get
  operationId: getCMEAnalysis
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/GST
  method: get
  operationId: getGST
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/IPS
  method: get
  operationId: getIPS
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/FLR
  method: get
  operationId: getFLR
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/SEP
  method: get
  operationId: getSEP
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/MPC
  method: get
  operationId: getMPC
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/RBE
  method: get
  operationId: getRBE
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/HSS
  method: get
  operationId: getHSS
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/WSAEnlilSimulations
  method: get
  operationId: getWSAEnlilSimulations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /DONKI/notifications
  method: get
  operationId: getNotifications
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /planetary/earth/imagery
  method: get
  operationId: getEarthImagery
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /planetary/earth/assets
  method: get
  operationId: getEarthAssets
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /events
  method: get
  operationId: getEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /categories
  method: get
  operationId: getCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /categories/{category}
  method: get
  operationId: getEventsByCategory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /sources
  method: get
  operationId: getSources
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /layers
  method: get
  operationId: getLayers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /magnitudes
  method: get
  operationId: getMagnitudes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/natural
  method: get
  operationId: getNaturalRecent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/natural/date/{date}
  method: get
  operationId: getNaturalByDate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/natural/available
  method: get
  operationId: getNaturalAvailable
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/natural/all
  method: get
  operationId: getNaturalAll
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/enhanced
  method: get
  operationId: getEnhancedRecent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/enhanced/date/{date}
  method: get
  operationId: getEnhancedByDate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/enhanced/available
  method: get
  operationId: getEnhancedAvailable
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /sync
  method: get
  operationId: tapSync
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /async
  method: post
  operationId: tapAsync
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /search
  method: get
  operationId: searchGeneLab
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /search
  method: get
  operationId: searchLibrary
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /asset/{nasa_id}
  method: get
  operationId: getAsset
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /metadata/{nasa_id}
  method: get
  operationId: getMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /captions/{nasa_id}
  method: get
  operationId: getCaptions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /album/{album_name}
  method: get
  operationId: getAlbum
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /
  method: get
  operationId: getInsightWeather
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rovers
  method: get
  operationId: listRovers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rovers/{rover}/photos
  method: get
  operationId: getRoverPhotos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rovers/{rover}/latest_photos
  method: get
  operationId: getRoverLatestPhotos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manifests/{rover}
  method: get
  operationId: getRoverManifest
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /observatories
  method: get
  operationId: listObservatories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /groundStations
  method: get
  operationId: listGroundStations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /locations
  method: get
  operationId: getLocations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /cad.api
  method: get
  operationId: getCAD
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /sbdb.api
  method: get
  operationId: sbdbLookup
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /sbdb_query.api
  method: get
  operationId: sbdbQuery
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /sentry.api
  method: get
  operationId: sentry
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /fireball.api
  method: get
  operationId: fireball
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /nhats.api
  method: get
  operationId: nhats
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /scout.api
  method: get
  operationId: scout
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/projects
  method: get
  operationId: listProjects
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/projects/{id}
  method: get
  operationId: getProject
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /patent
  method: get
  operationId: searchPatents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /patent/issued
  method: get
  operationId: searchIssuedPatents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /software
  method: get
  operationId: searchSoftware
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /spinoff
  method: get
  operationId: searchSpinoff
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tle
  method: get
  operationId: listTle
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tle/{satelliteId}
  method: get
  operationId: getTle
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tiles/{body}/EQ/{layer}/1.0.0/default/default028mm/{z}/{y}/{x}.{ext}
  method: get
  operationId: getTrekTile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none