Intelligence

Get country threat level

Changed on

Country threat level: the live OONI anomaly rate (a fixed fallback score when live data is missing), raised to a static floor for the country's risk tier; scoreSource and dataSource say which. recentBlocks counts OONI measurements with confirmed blocking in the upstream index window (confirmedRate x measurementCount), or is null when no live confirmed-blocking count exists (recentBlocksReason says why). No trend is computed, so trend is null. With includeHistory=true, history counts incident records per day for the last 30 days with a null score, or is null when the incident source does not answer. Not a validated prediction.

get/hydra/v1/threat-level/{country}

Request

  • Base URL
    https://api.voidly.ai
  • URL
    https://api.voidly.ai/hydra/v1/threat-level/{country}
  • Auth
    API key in header X-API-Key

Path parameters

countrystring required

Query parameters

includeHistoryboolean

Response

Threat level (tier-floored OONI anomaly rate)

countrystring required
threatLevel'severe' | 'high' | 'medium' | 'low' required
scorenumber required
liveAnomalyRatenumber nullable

The live OONI anomaly rate before the tier floor; null without live OONI data.

scoreSource'tier_floor' | 'live_ooni' | 'fallback_score' | 'default_score'

tier_floor when the static risk-tier floor raised the score; otherwise the input the score came from.

confidencenumber required
samplesinteger nullable

OONI measurement count behind the live rate; null without live data.

recentBlocksinteger nullable required

OONI measurements with confirmed blocking in the upstream index window (confirmedRate x measurementCount); null without live OONI data or a confirmedRate (see recentBlocksReason).

recentBlocksBasis'ooni_confirmed_measurements' | 'unavailable'
recentBlocksReasonstring

Present only when recentBlocks is null.

trend'null' nullable required

Always null: no trend is computed (see trendModeled and trendReason). Before 2026-10-19 it was derived from the score alone.

trendModeledfalse
trendReasonstring
recommendationsstring[] required
dataSource'live_ooni' | 'fallback'
dataAsOfstring date-time nullable

When the upstream OONI data was updated, passed through from the upstream row; null without live data or when the row has no update time.

notestring
lastUpdatedstring date-time required

Response time; dataAsOf is the upstream data time.

activeIncidentsobject[]

Present only when the upstream row lists active incidents.

historyNotestring
historyTruncatedboolean

True when the incident source returned its 200-row cap for the 30 days.

historyRowsNotCountedinteger

Returned rows without a detected_at or created_at date inside the 30 days.

Changes

    • breaking

      the response property became nullable for the status

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property became nullable for the status

    • breaking

      the response property became nullable for the status

    • breaking

      the response's property type changed from string to object for status

    • breaking

      the response's property type changed from string to object for status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      added the new undefined enum value to the response property for the response status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      removed the improving enum value from the response property for the response status

    • info

      removed the stable enum value from the response property for the response status

    • info

      removed the worsening enum value from the response property for the response status

    • info

      added the required property / to the response with the status

    • info

      added the required property / to the response with the status

    • info

      added the required property / to the response with the status

    • info

      added the required property / to the response with the status

    • breaking

      the response property became optional for the status

    • breaking

      the response property became optional for the status

    • breaking

      the // response's property format changed from date to no format for status

    • info

      the endpoint scheme security ApiKeyAuth was added to the API