AI deep-dive — assess one signal, then ask the analyst
A row tells you what was reported; you want an assessment of what satellites could verify, and a sourced answer to a free-form question.
Uses the AI endpoints (assess / analyst). Available on every plan — these are simply the expensive calls, so the gate is your token balance.
Steps
- Pick the highest-severity recent signal in the AOI.
- Run the RS assessment on it (quick or deep).
- Ask the analyst a question; poll the job until it completes (polling is free).
In the web app
REST
Authenticate with Authorization: Bearer ond_… (create a key at /account/api). Try any of these live in the Playground.
Pick a signal
curl "https://offnadir-delta.com/api/v1/signals?bbox=22%2C44%2C40%2C53&days=7&sort=severity&limit=1" \
-H "Authorization: Bearer ond_YOUR_API_KEY"Assess it
curl "https://offnadir-delta.com/api/v1/assess" \
-X POST \
-H "Authorization: Bearer ond_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"eventId":1315064079,"kind":"quick"}'Ask the analyst
curl "https://offnadir-delta.com/api/v1/analyst" \
-X POST \
-H "Authorization: Bearer ond_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"What is escalating in this area in the last 3 days?"}'Python
This is the runnable example shipped with the SDK (pip install offnadir-delta, then set OFFNADIR_DELTA_API_KEY).
"""AI assessment and the analyst agent (metered — these are the expensive calls)."""
from offnadir_delta import Client
from offnadir_delta.errors import InsufficientTokensError, PermissionDeniedError
AOI = [22.0, 44.0, 40.0, 53.0]
def main() -> None:
with Client() as client:
if not client.usage().plan.api_llm_access:
print("This key's plan does not have LLM access (Pro required). Skipping.")
return
try:
# Assess the single highest-severity recent signal.
page = client.signals.list(bbox=AOI, days=7, sort="severity", limit=1)
if page.signals and page.signals[0].id is not None:
event_id = page.signals[0].id
assessment = client.intelligence.assess(event_id, kind="quick")
print("Assessment:\n", assessment.content, "\n")
# Free-form analyst question (metered 5-123 tokens, not idempotent).
answer = client.intelligence.analyst(
"What is the most significant escalation this week and why?",
bbox=AOI,
)
print("Analyst brief:\n", answer.brief)
except PermissionDeniedError:
print("Pro plan required for these endpoints.")
except InsufficientTokensError as e:
print(f"Not enough tokens (need {e.required}, have {e.available}).")
if __name__ == "__main__":
main()
MCP
Connect once, from any MCP client:
claude mcp add --transport http off-nadir-delta \
https://offnadir-delta.com/api/v1/mcp \
--header "Authorization: Bearer ond_..."The tools this workflow uses: assess_signal, ask_analyst, get_analyst_job. See the full roster at /docs/mcp.
Go deeper
From headline to satellite evidence
One connected intelligence workflow across four surfaces — free to start, no GIS software or remote-sensing background required.