canonical: https://jentic.com/apis/offnadir-delta.com/offnadir-delta

# Off-Nadir Delta API

The Off-Nadir Delta API returns geolocated world event signals, the changes recorded about them, and the satellite data needed to check them from orbit. It queries Delta Signals by bounding box, date window, category, and severity band, follows an event's full thread and related events, and reports satellite-measured anomalies such as thermal hotspots, night-light drops, SO2 plumes, and ship transits at straits and canals. For imaging, it searches Sentinel-1, Sentinel-2, and NISAR scenes, plans collection for one event, predicts satellite passes over a target, measures spectral indices over a polygon, counts vessels in a SAR scene, and reads terrain elevation. A Watchlist, monitored areas, standing orders, notifications, and the daily World Brief keep an analyst current.

## For AI agents

Query geolocated world event signals, check satellite anomalies and imagery over an area, predict satellite passes, and keep a Watchlist of events and places with notifications.

## Scope

Does not task commercial satellites, sell imagery bytes, or provide turn-by-turn routing or geocoding of street addresses. Use for event signals, satellite checks, and watchlists over places and areas only.

## Capabilities

- Query Delta Signals by bbox, start_date and end_date, categories, min_severity_band, and stages, paging with a cursor
- Follow one event end to end with its thread, its recorded changes from `/api/v1/developments`, and its related events
- Search Sentinel-1, Sentinel-2, and NISAR scene metadata over a bbox and plan imagery for an event by analysis_goal such as flood_mapping
- Predict the next satellite passes over a lat and lon point and rank events by imaging-collection priority
- Read satellite-measured thermal, night-light, SO2, and ship-transit anomalies plus earthquake and cyclone exposures for registered places
- Measure a spectral index such as ndvi or nbr over a polygon through the Sentinel-2 archive, count vessels in one SAR scene, and read terrain elevation
- Keep a Watchlist of events, areas, and places, add analyst notes, and mark notifications read

## Use cases

### AI OSINT analyst agent

An analyst's agent answers 'what happened near this place this week and can we see it from orbit'. Through Jentic it searches for 'query geolocated world event signals', loads the Off-Nadir Delta querySignals operation, and calls it with a bbox and date window, then reads the event thread and plans imagery for the most severe event. The key is attached at call time, and metered calls spend the key owner's token balance, so the agent can call GET `/api/v1/usage` first to check it can afford the query.

Example prompt: Call GET `/api/v1/signals` with a bbox around the Strait of Hormuz and start_date seven days ago, then call GET `/api/v1/events/{eventId}/thread` for the highest-severity result

### Satellite collection planning for an event

After a flood or strike, a team needs to know whether free imagery already covers it and when the next look will be. GET `/api/v1/collection/plan` takes an event_id and an analysis_goal of damage_assessment, flood_mapping, or wildfire_assessment and searches sentinel-1-grd and sentinel-2-l2a once each. GET `/api/v1/passes` then returns access windows over the target point, and GET `/api/v1/imagery` lists matching scene metadata with cloud_cover_max as a filter.

Example prompt: Call GET `/api/v1/collection/plan` with the event_id and analysis_goal 'flood_mapping', then GET `/api/v1/passes` with the event's lat and lon to list the next passes

### Change measurement over an area

To answer 'how has this place changed since a given year', POST `/api/v1/index-series` measures a spectral index such as ndvi, ndwi, or nbr over a polygon scene by scene through the Sentinel-2 archive between start and end dates, charging only for scenes actually measured. POST `/api/v1/monitoring` fixes a bbox and a metric so every new acquisition is measured automatically, and GET `/api/v1/monitoring/{areaId}` returns the full series with anomaly flags.

Example prompt: POST `/api/v1/index-series` with a polygon, index 'nbr', start '2024-01-01', and end '2025-12-31', then report the scenes where the value dropped most

### Watchlist with Slack or Discord alerts

A small team keeps watch on events and facilities without checking the app. POST `/api/v1/watches` adds a target with target_type event, area, or site, and notifications of what changed are listed by GET `/api/v1/notifications.` A connected Slack or Discord channel receives the same updates, and POST `/api/v1/watches/{watchId}/notes` keeps an analyst ledger of notes and judgments on each watch.

Example prompt: POST `/api/v1/watches` with target_type 'site' and the entity_id of a port from GET `/api/v1/entities`, then list unread items from GET `/api/v1/notifications` with unread_only true

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/signals` | Query geolocated world event signals |
| GET | `/api/v1/events/{eventId}/thread` | Get one event end to end |
| GET | `/api/v1/imagery` | Search satellite scene metadata |
| GET | `/api/v1/collection/plan` | Plan imagery for one event |
| GET | `/api/v1/passes` | Predict satellite passes over a target |
| POST | `/api/v1/index-series` | Measure a spectral index over an area |
| POST | `/api/v1/watches` | Add a target to the Watchlist |
| GET | `/api/v1/brief` | Fetch the World Brief |

## Key resources

- **Signals and events** — Geolocated world event signals, their changes, event threads, and related events
- **Imagery and collection** — Scene metadata search, event imagery plans, collection priority, observability surveys, and satellite pass prediction
- **Satellite measurements** — Thermal, night-light, SO2, and transit anomalies, spectral index series, SAR ship counts, elevation, and terrain analysis
- **Watchlist** — Watches, notes, monitored areas, standing orders, notifications, and the Slack or Discord channel
- **Location registry** — Searchable registry of airports, bases, ports, plants, and chokepoints with the events linked to each

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 55 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 38 / 100
  - Developer Experience & Jentic Compatibility: 61 / 100
  - AI-Readiness & Agent Experience: 47 / 100
  - Agent Usability: 94 / 100
  - Security: 55 / 100
  - AI Discoverability: 61 / 100
- **View full report:** https://jentic.com/apis/offnadir-delta.com/offnadir-delta/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Off-Nadir Delta by hand means choosing bearer or X-API-Key auth, tracking a token balance across metered and free routes, following cursors, and handling async analyst jobs. Through Jentic you install once, import Off-Nadir Delta from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Off-Nadir Delta puts the watch id in the URL path (`/api/v1/watches/{watchId}`), so a rule can pin your agent to one watch and the operations you pick on it. You choose the operations, so destructive ones like deleting a watch or disconnecting the notification channel are not included unless you add them.
- **Credential handling:** Your Off-Nadir Delta key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'predict satellite passes' or 'query world event signals', and Jentic returns the matching Off-Nadir Delta operation with its input schema, including bbox and date parameters, so the agent calls the right route directly.

## Related APIs

- **Planet Data API** — Search and order Planet's own satellite imagery archive
- **Maxar eAPI** — Access to Maxar's very-high-resolution commercial imagery
- **GDELT DOC 2.0 API** — Full-text search across global news coverage

## FAQ

### What authentication does the Off-Nadir Delta API use?

Per its OpenAPI spec, the Off-Nadir Delta API accepts an API key either as a bearer token in the Authorization header, with keys starting ond_, or in the X-API-Key header. What a call returns follows the key owner's plan, and metered calls spend that key's token balance. Through Jentic the key is stored by your own instance and attached at call time.

### Can I find out whether an event can be seen from satellite imagery?

Yes. GET `/api/v1/collection/plan` takes an event_id and an analysis_goal of damage_assessment, flood_mapping, or wildfire_assessment and searches Sentinel-1 SAR and Sentinel-2 optical collections for the event. GET `/api/v1/passes` predicts upcoming access windows over a point, and GET `/api/v1/collection/observability` surveys which events in a window a given sensor can resolve.

### What are the rate limits for the Off-Nadir Delta API?

The OpenAPI spec does not state request rate limits. Usage is metered in tokens instead: each operation's description states its cost, many routes are free, and GET `/api/v1/usage` returns the remaining balance and plan capabilities so an agent can check before a metered call.

### Is there an Off-Nadir Delta MCP server?

Yes. Off-Nadir Delta describes an MCP server at `/api/v1/mcp` that serves a conversational subset of the API as tools. You can also connect it directly through Jentic: your agent gets the full 51-endpoint surface from the spec without loading another server's tool definitions into its context, your key is injected at call time by your self-hosted instance instead of living in an MCP config, and your rules decide which operations the agent may call.

### How do I query signals for an area through Jentic?

Search Jentic for 'query geolocated world event signals', load the querySignals operation, and execute it with a bbox, a start_date and end_date, and optional categories or min_severity_band. Follow meta.next_cursor to page through every match. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Does deleting a watch remove its monitored areas?

Yes. DELETE `/api/v1/watches/{watchId}` removes the watch and its underlying resources, including bound monitored areas with their measurement history and standing orders. To stop a watch without losing anything, PATCH it with status set to paused, which also pauses the bound measurements and checks.

### Can I limit what my agent is allowed to do with the Off-Nadir Delta API?

Yes. Write a rule that allows only GET on `/api/v1/watches/{watchId}` and POST on `/api/v1/watches/{watchId}/notes` for one watch id, and the agent can read that watch and add notes to it but cannot delete it, touch other watches, or run metered signal queries, and every call it makes is logged.
