APITube Help Center

How to Monitor Climate and Pollution News

Track climate change, global warming and pollution with IPTC subcategories, then layer disaster events and sentiment on top

Tasha Tatum

Written by Tasha Tatum

July 27, 2026

Open this example in the API Playground ↗

How to monitor climate and pollution news

To monitor climate and pollution coverage, filter /v1/news/everything by IPTC environment categories rather than by keywords. medtop:06000000 is the whole environment branch; underneath it sit narrower categories that map cleanly onto beats — medtop:20000418 climate change, medtop:20000419 global warming, medtop:20000424 environmental pollution, medtop:20000425 air pollution, medtop:20000429 water pollution.

curl "https://api.apitube.io/v1/news/everything?category.id=medtop:20000418&sort.by=published_at&sort.order=desc&per_page=50" \
  -H "X-API-Key: YOUR_API_KEY"

Pass the key as the api_key query parameter or as an X-API-Key header. Category filtering scopes by the subject of the story, which is why it beats searching for the word “climate” — an article about a drought’s effect on wheat prices is classified correctly even if the word never appears.

Which category IDs cover climate and pollution?

The environment branch is hierarchical, and picking the right depth is the whole trick. medtop:06000000 returns everything environmental, which is broad enough to include conservation, parks and waste management alongside climate. The narrower IDs are usually what you want:

  • medtop:20000418 — climate change. The core policy, science and impact beat.
  • medtop:20000419 — global warming. Narrower than climate change, focused on warming itself.
  • medtop:20000424 — environmental pollution. The parent pollution category.
  • medtop:20000425 — air pollution and medtop:20000429 — water pollution. Medium-specific slices of the above.
  • medtop:20000420 — conservation and medtop:20000426 — environmental clean-up. Remediation and protection rather than damage.

category.id accepts several comma-separated IDs with OR logic, so a combined climate-and-pollution beat is one request:

curl "https://api.apitube.io/v1/news/everything?category.id=medtop:20000418,medtop:20000419,medtop:20000424&per_page=50" \
  -H "X-API-Key: YOUR_API_KEY"

Each returned article carries a categories array showing which classifiers matched, so you can route a story to the right desk. Browse the full tree in the APITube category list, and see how to filter news by category for the filter’s rules.

How do you add extreme weather and disaster events?

Categories describe subject matter; events describe what happened. For physical climate impacts, event.type carries the specific incident codes and accepts up to five at once:

curl "https://api.apitube.io/v1/news/everything?event.type=earthquake,hurricane,flood,wildfire,drought&published_at.start=NOW-7DAYS" \
  -H "X-API-Key: YOUR_API_KEY"

Environment-category event codes include earthquake, hurricane, flood, wildfire, tornado, tsunami, volcanic-eruption, drought and avalanche. If you want the whole group rather than named codes, event.category=environment matches every environmental incident type in one filter. An unrecognised value returns an HTTP 400, so confirm codes against /v1/news/event-types before hard-coding them. A worked disaster feed is covered in how to filter news by natural disaster and disease.

Note that not every plausible-sounding code carries coverage. Verify a code returns results with /v1/news/count before you build a dashboard panel on it — a filter that is syntactically valid but empty will silently show you nothing.

How do you track whether climate coverage is turning negative?

Sentiment filters split a climate feed by tone. sentiment.overall.polarity takes positive, neutral or negative; sentiment.overall.score is the underlying value from -1 to 1 with .min and .max bounds:

curl "https://api.apitube.io/v1/news/everything?category.id=medtop:20000418&sentiment.overall.polarity=negative&published_at.start=NOW-30DAYS" \
  -H "X-API-Key: YOUR_API_KEY"

Absolute counts of negative articles track total volume more than they track mood, so measure the share: run /v1/news/count once with the category alone and once with the polarity filter added, then divide. Keep the time window identical across both calls. Sentiment rules are covered in how to filter news by sentiment.

How do you compare climate coverage across countries?

Faceting returns aggregated counts instead of articles, so one request gives you the geography of a beat. facet=true plus facet.field=source.country.id breaks the whole match set down by where the outlet is based:

curl "https://api.apitube.io/v1/news/everything?category.id=medtop:20000418&facet=true&facet.field=source.country.id&facet.limit=20&per_page=1" \
  -H "X-API-Key: YOUR_API_KEY"

Counts cover every matching article, not just the current page, so keep per_page=1 and skip the payload you would throw away. facet.field takes up to five fields, so you can add language.id or sentiment.overall.polarity in the same call. Range faceting on published_at turns the same query into a publication timeline. Both are explained in how to aggregate results with facets.

Remember that source.country.code and source.country.id describe where the publisher sits, not where the flood happened. For the location of the event itself, use the geo radius filters or read locations_mentioned on each article.

Common Questions

Should I use a category or a keyword search for climate news?

Use the category. category.id=medtop:20000418 matches articles the classifier judged to be about climate change, including ones that never use the phrase — a story about crop failures or insurance repricing lands in the category on subject, not on wording. A title keyword search does the opposite: it is precise about the words and blind to the subject. Start from the category and add title only when you need to narrow to a named policy, company or event within that beat.

What is the difference between climate change and global warming categories?

medtop:20000418 (climate change) is the broader beat — policy, adaptation, science, economics and impacts. medtop:20000419 (global warming) sits underneath it and is narrower, centred on the warming itself. In practice climate change carries several times the volume, so use it as your default and add global warming only when you specifically want the temperature-focused slice. Both can be passed together in one comma-separated category.id.

Why does an event type return zero articles?

A code being valid is not the same as a code being populated. event.type rejects unrecognised values with an HTTP 400, but a recognised code with no classified coverage simply returns an empty result set and no error. Always check a new code with /v1/news/count before wiring it into a feed. When a code comes back empty, fall back to the category axis — the environment categories cover the same subject matter through a different classifier and are consistently populated.

How do I find climate news about a specific region?

Filter on the event location rather than the publisher. Pass location.lat and location.lng together with location.radius in kilometres for a radius search, or location.bbox for a rectangle, and add has_location_geo=1 so only geolocated articles come through. source.country.code is a different thing — it filters by where the outlet is based, which is a reasonable proxy for local press coverage but will miss international reporting on the same region.


Related Articles