APITube Help Center

How to Monitor Emergencies and Crises in Real Time

Assemble a live emergency feed from event, breaking and geo filters, then push new alerts over SSE

Tasha Tatum

Written by Tasha Tatum

July 3, 2026

Open this example in the API Playground ↗

How to monitor emergencies and crises in real time

To monitor emergencies in real time, query /v1/news/everything and narrow it with event.category=environment (earthquakes, floods, wildfires, hurricanes and more) or event.category=society (accidents, conflict, terrorism, health-crisis), add is_breaking=1 to keep only urgent stories, then point the same filters at the /v1/news/stream SSE feed so each new incident is pushed to you the moment it is indexed. There is no separate “emergency” endpoint — you build a crisis feed from the shared filter chain and stream it.

curl "https://api.apitube.io/v1/news/everything?event.category=environment&is_breaking=1&published_at.start=NOW-24HOURS" \
  -H "X-API-Key: YOUR_API_KEY"

You can pass the key as the api_key query parameter or as an X-API-Key header. This request returns breaking environmental-disaster coverage from the last 24 hours, and results are sorted newest-first by default (sort.by=published_at, sort.order=desc).

How do you filter for disasters and crisis events?

The event.type and event.category filters classify articles by what happened. event.category accepts one of three groups — business, society, or environment — and an unknown value stops the request with an HTTP 400 (ER0503). For emergencies you mostly want environment and society.

To target exact incident types instead of a whole group, use event.type with up to five comma-separated codes:

# Up to five disaster types in one call
curl "https://api.apitube.io/v1/news/everything?event.type=earthquake,flood,wildfire,hurricane,tornado&published_at.start=NOW-1DAY" \
  -H "X-API-Key: YOUR_API_KEY"

Valid environment codes include earthquake, hurricane, flood, wildfire, tornado, tsunami, volcanic-eruption, drought and avalanche; society codes include terrorism, accident, conflict, crime, protest and health-crisis. An unrecognized code returns ER0502, so do not guess — pull the full list from /v1/news/event-types first. Exclude noise with ignore.event.type. See how to filter news by event type for the complete rules.

How do you keep only urgent, breaking stories?

is_breaking=1 keeps only articles the pipeline flagged as urgent; it accepts exactly 0 or 1 (any other value returns ER0186). Combine it with a tight time window using published_at.start, which takes absolute dates (2026-07-01) and relative Solr-style values such as NOW-6HOURS, NOW-1DAY or NOW-1WEEK:

curl "https://api.apitube.io/v1/news/everything?event.category=society&is_breaking=1&published_at.start=NOW-6HOURS&per_page=250" \
  -H "X-API-Key: YOUR_API_KEY"

per_page defaults to 100 and maxes out at 250; walk deeper with page. On the Free plan, paging stops after the first 5 pages (ER0173), so use a paid plan for wide sweeps. Trim each result to just what an alert needs with fl=id,title,source.domain,published_at.

How do you limit a crisis feed to one region?

Big disasters are geographic. Pin the feed to an area with a radius search: pass location.lat and location.lng together (both are required, or you get ER0406) plus location.radius in kilometres, up to 20000. Add has_location_geo=1 to drop articles that have no coordinates at all.

# Environmental emergencies within 200 km of Los Angeles
curl "https://api.apitube.io/v1/news/everything?event.category=environment&location.lat=34.05&location.lng=-118.24&location.radius=200&has_location_geo=1" \
  -H "X-API-Key: YOUR_API_KEY"

For a rectangular area, use location.bbox=minLat,maxLat,minLng,maxLng instead of a radius. You can also carve out a ring — say, everything between 50 km and 300 km from a point — by adding location.radius.min. See how to find news near a coordinate or bounding box for the geo filter in full.

How do you get emergency alerts pushed in real time?

Polling everything returns what already exists; a live crisis desk needs push. Keep the exact same filters and open the Server-Sent Events stream at /v1/news/stream — it runs the same filter chain and pushes each new matching article as it is indexed, with heartbeat comments to keep the connection open:

curl -N "https://api.apitube.io/v1/news/stream?event.category=environment&is_breaking=1&language.code=en" \
  -H "X-API-Key: YOUR_API_KEY"

The stream is tail -f on the news firehose: it only sends articles that appear after you connect, and each delivered article is emitted as an event: article with an id: line. Pass that id back in the Last-Event-Id header to resume without gaps after a drop. Each delivered article counts as one request against your streaming quota, which is a separate pool from your normal request credits. The number of simultaneous streams you can open depends on your plan (Free allows 1; exceeding your limit returns ER0360). If you would rather have APITube POST incidents to your own endpoint (a SIEM or a Slack alert), create a webhook — that is done in the dashboard, not over the API. The full parameter list lives in the News API parameters reference.

Common Questions

Is there a dedicated emergency or disaster endpoint?

No. Emergency monitoring uses the same /v1/news/everything endpoint and the same event.category, event.type, is_breaking, location.* and published_at filters as any other subject. You define what counts as a crisis with those filters — there is no separate emergency route.

What is the difference between event.category and event.type?

event.category is the broad group (environment, society, or business) and matches every incident type inside it. event.type targets specific codes such as earthquake or terrorism, up to five at once. Use the category for a wide safety net and the type when you only care about certain kinds of events. An unknown value in either returns an HTTP 400, so confirm codes against /v1/news/event-types.

How do I restrict alerts to my city or country?

Add a radius search — location.lat, location.lng and location.radius (kilometres, up to 20000) — or a location.bbox rectangle, and set has_location_geo=1 so only geolocated articles come through. location.lat and location.lng must always be sent together. For a broader match you can also filter by country with the standard source and location attributes covered elsewhere in the docs.

How do I get notified the moment a crisis is reported?

Move from polling to push. Open the /v1/news/stream SSE feed with your emergency filters to receive new matching articles as they are indexed, resuming with Last-Event-Id after a drop, or create a webhook in the dashboard so APITube POSTs each incident to your endpoint. Both carry the same filters you use on search, and both are the fastest way to react to a developing situation. See how to track disasters and disease outbreaks for a worked disaster feed.


Related Articles