Signals and imagery, concurrently
An event feed and a scene catalog answer different questions; production code usually needs both, and they do not need to wait for each other.
Steps
- Fire the signals query and the imagery search for the same AOI concurrently (async client).
- Join them: which recent events have a recent low-cloud scene over them.
In the web app
REST
Authenticate with Authorization: Bearer ond_… (create a key at /account/api). Try any of these live in the Playground.
Signals over the AOI
bash
curl "https://offnadir-delta.com/api/v1/signals?bbox=22%2C44%2C40%2C53&days=7&limit=10" \
-H "Authorization: Bearer ond_YOUR_API_KEY"Scenes over the AOI
bash
curl "https://offnadir-delta.com/api/v1/imagery?bbox=22%2C44%2C40%2C53&collection=sentinel-2-l2a&cloud_cover_max=20&days=14" \
-H "Authorization: Bearer ond_YOUR_API_KEY"Python
This is the runnable example shipped with the SDK (pip install offnadir-delta, then set OFFNADIR_DELTA_API_KEY).
python
"""Async client: concurrently search imagery and stream signals over an AOI."""
import asyncio
from offnadir_delta import AsyncClient
AOI = [22.0, 44.0, 40.0, 53.0]
async def main() -> None:
async with AsyncClient() as client:
# Run two independent requests concurrently.
signals_task = client.signals.list(bbox=AOI, days=7, limit=10)
imagery_task = client.imagery.search(
bbox=AOI, collection="sentinel-2-l2a", cloud_cover_max=20, days=14
)
page, scenes = await asyncio.gather(signals_task, imagery_task)
print(f"{page.meta.count} signals, {scenes.meta.count} scenes")
for scene in scenes.scenes[:5]:
print(f" {scene.id} {scene.datetime} cloud={scene.cloud_cover}")
# Async iteration over every signal.
async for signal in client.signals.iterate(bbox=AOI, days=3, min_severity=7):
print(" !", signal.title)
if __name__ == "__main__":
asyncio.run(main())
MCP
Connect once, from any MCP client:
bash
claude mcp add --transport http off-nadir-delta \
https://offnadir-delta.com/api/v1/mcp \
--header "Authorization: Bearer ond_..."The tools this workflow uses: query_signals, search_imagery. See the full roster at /docs/mcp.
From headline to satellite evidence
One connected intelligence workflow across four surfaces — free to start, no GIS software or remote-sensing background required.