Overview

Named Entity Recognition (NER) in News API v3 lets you find articles mentioning specific people, organizations, locations, or other named entities. This provides more precise results than keyword searches and works across all languages using English entity names.

Before you start

Before you begin, ensure you have:
  • An active API key for NewsCatcher News API v3
  • NLP functionality enabled in your subscription plan
  • Basic knowledge of making API requests

Steps

1

Understand entity types

News API v3 recognizes four entity types:
  • PER_entity_name: Person names (e.g., “Tim Cook”, “Elon Musk”)
  • ORG_entity_name: Organization names (e.g., “Apple”, “Tesla”, “European Union”)
  • LOC_entity_name: Location names (e.g., “California”, “Brussels”)
  • MISC_entity_name: Other entities (products, events, nationalities, etc.)
All entity parameters support boolean operators (AND, OR, NOT), proximity search with NEAR, and count-based filtering.
2

Set up entity search

Create a search request that combines keywords with entity recognition:
{
  "q": "\"artificial intelligence\"",
  "ORG_entity_name": "OpenAI OR Microsoft",
  "include_nlp_data": true,
  "lang": "en"
}
This searches for AI articles that mention OpenAI or Microsoft as organizations.
3

Analyze results

The response includes entity information in the nlp object. Here’s a focused example:
{
  "status": "ok",
  "total_hits": 325,
  "articles": [
    {
      "title": "OpenAI Backs California Bill for AI Content Labeling",
      "language": "en",
      "nlp": {
        "ner_PER": [],
        "ner_ORG": [
          {
            "entity_name": "OpenAI",
            "count": 8
          },
          {
            "entity_name": "Microsoft",
            "count": 2
          }
        ],
        "ner_LOC": [
          {
            "entity_name": "California",
            "count": 2
          }
        ],
        "ner_MISC": [
          {
            "entity_name": "AB 3211",
            "count": 7
          }
        ]
      }
    }
  ]
}
The ner_* fields show entities found in the original content with their mention counts.
4

Search across all languages

To search named entities in translations, use the translation options for the search_in parameter.
{
  "q": "\"monetary policy\"",
  "ORG_entity_name": "\"European Central Bank\" OR \"Federal Reserve\"",
  "search_in": "title_content,title_content_translated",
  "countries": ["DE", "FR", "IT", "ES"],
  "include_nlp_data": true,
  "include_translation_fields": true
}
This finds articles mentioning the European Central Bank in German (“Europäische Zentralbank”), French (“Banque centrale européenne”), etc., using English entity names.The response includes both original and translation entity fields:
{
  "articles": [
    {
      "title": "EZB senkt Leitzins auf 3,25 Prozent",
      "title_translated_en": "ECB cuts key interest rate to 3.25 percent",
      "language": "de",
      "nlp": {
        "ner_ORG": null,
        "translation_ner_ORG": [
          {
            "entity_name": "European Central Bank",
            "count": 3
          }
        ]
      }
    }
  ]
}
5

Advanced combinations

Combine multiple entity types and advanced operators for complex searches:
{
  "q": "\"trade policy\" OR tariffs",
  "ORG_entity_name": "\"World Trade Organization\" OR \"European Commission\"",
  "PER_entity_name": "\"Ursula von der Leyen\"",
  "LOC_entity_name": "\"Brussels\" OR \"Geneva\"",
  "search_in": "title_content,title_content_translated",
  "include_nlp_data": true,
  "include_translation_fields": true
}
Use COUNT functionality for frequency-based filtering:
{
  "q": "\"tech industry\"",
  "ORG_entity_name": "COUNT(\"Apple\", 2, \"gt\") OR COUNT(\"Microsoft\", 2, \"gt\")",
  "include_nlp_data": true
}
Combine with proximity search:
{
  "q": "NEAR(\"artificial intelligence\", \"regulation\", 10)",
  "ORG_entity_name": "OpenAI OR Google",
  "search_in": "title_content,title_content_translated",
  "include_nlp_data": true
}
For comprehensive global coverage, always include both title_content and title_content_translated in your search_in parameter when searching entities across languages.

See also