> ## Documentation Index
> Fetch the complete documentation index at: https://newscatcherinc-docs.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search in translations

> Search across language barriers using English keywords and entity names

News API translates and indexes non-English articles to English, so you can:

* Search using English keywords even when the original content is in another language
* Find named entities (people, organizations, locations) using English names across all languages
* Retrieve English translations alongside original content in API responses

<Note>
  Translation fields are available for articles published from March 12, 2025,
  onward, and require an NLP plan or higher.
</Note>

## Before you begin

Make sure you have the following:

* An active News API key with NLP plan or higher
* The [Newscatcher SDK](/news-api/libraries/python) installed, or cURL for quick testing

## Search parameters

Use `search_in` to target translated fields in your query, and
`include_translation_fields` to return translated content in responses.

### search\_in options for translations

Use the `search_in` parameter to include translated content in your search:

| Option                     | Description                                  |
| -------------------------- | -------------------------------------------- |
| `title_translated`         | Search only in translated titles             |
| `content_translated`       | Search only in translated content            |
| `summary_translated`       | Search only in translated summaries          |
| `title_content_translated` | Search in both translated titles and content |

You can specify a maximum of two options in `search_in`. To search both original
and translated content, combine them:

```json theme={null}
"search_in": "title_content,title_content_translated"
```

### Translation fields in responses

Set `include_translation_fields: true` to receive translated content in
responses. The following fields appear in each article:

| Field                      | Description                                           |
| -------------------------- | ----------------------------------------------------- |
| `title_translated_en`      | English translation of the article title              |
| `content_translated_en`    | English translation of the article content            |
| `nlp.translation_summary`  | Brief summary of the English translation              |
| `nlp.translation_ner_PER`  | Person entities extracted from the translation        |
| `nlp.translation_ner_ORG`  | Organization entities extracted from the translation  |
| `nlp.translation_ner_LOC`  | Location entities extracted from the translation      |
| `nlp.translation_ner_MISC` | Miscellaneous entities extracted from the translation |

Original content NER fields (`ner_PER`, `ner_ORG`, `ner_LOC`, `ner_MISC`) and
translation NER fields (`translation_ner_*`) are returned together when
`include_nlp_data` is `true`.

## Use cases

These examples show how to combine translation search with entity filters and
country targeting to cover global news effectively.

### Comprehensive multilingual coverage

Search original and translated content simultaneously for maximum global
coverage. Omitting `lang` returns results across all languages.

<CodeGroup>
  ```json JSON theme={null}
  {
    "q": "\"climate change\" OR \"global warming\"",
    "search_in": "title_content,title_content_translated",
    "exclude_duplicates": true
  }
  ```

  ```bash cURL theme={null}
  curl -X POST "https://v3-api.newscatcherapi.com/api/search" \
    -H "x-api-token: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "q": "\"climate change\" OR \"global warming\"",
      "search_in": "title_content,title_content_translated",
      "exclude_duplicates": true
    }'
  ```

  ```python Python theme={null}
  from newscatcher import NewscatcherApi

  client = NewscatcherApi(api_key="YOUR_API_KEY")

  response = client.search.post(
      q="\"climate change\" OR \"global warming\"",
      search_in="title_content,title_content_translated",
      exclude_duplicates=True,
  )

  for article in response.articles:
      print(f"{article.language}: {article.title}")
  ```

  ```typescript TypeScript theme={null}
  import { NewscatcherApiClient } from "newscatcher-sdk";

  const client = new NewscatcherApiClient({ apiKey: "YOUR_API_KEY" });

  const response = await client.search.post({
    q: '"climate change" OR "global warming"',
    searchIn: "title_content,title_content_translated",
    excludeDuplicates: true,
  });

  response.articles?.forEach((a) => console.log(`${a.language}: ${a.title}`));
  ```

  ```java Java theme={null}
  import com.newscatcher.api.NewscatcherApiClient;
  import com.newscatcher.api.resources.search.requests.PostSearchRequest;

  NewscatcherApiClient client = NewscatcherApiClient.builder()
      .apiKey("YOUR_API_KEY")
      .build();

  var response = client.search().post(
      PostSearchRequest.builder()
          .q("\"climate change\" OR \"global warming\"")
          .searchIn("title_content,title_content_translated")
          .excludeDuplicates(true)
          .build()
  );

  response.getArticles().forEach(a ->
      System.out.println(a.getLanguage() + ": " + a.getTitle())
  );
  ```
</CodeGroup>

<Expandable title="response example">
  ```json theme={null}
  {
    "articles": [
      {
        "title": "Climate change accelerates in Arctic regions",
        "language": "en"
      },
      {
        "title": "El suizo UBS se retira de la alianza global de bancos para combatir el cambio climático",
        "title_translated_en": "The Swiss UBS withdraws from the global alliance of banks to combat climate change",
        "language": "es",
        "nlp": {
          "translation_ner_ORG": [
            { "entity_name": "UBS", "count": 2 },
            { "entity_name": "Net-Zero Banking Alliance", "count": 1 }
          ],
          "translation_ner_LOC": [
            { "entity_name": "Geneva", "count": 1 },
            { "entity_name": "Zurich", "count": 1 }
          ],
          "theme": "Business",
          "sentiment": { "title": -0.7923, "content": 0.0 }
        }
      }
    ]
  }
  ```
</Expandable>

### Tracking international organizations across languages

Find articles about international organizations using standardized English entity
names, regardless of how the organization is named in the source language. For
example, `"European Union"` matches "Union européenne" in French and "Unión
Europea" in Spanish.

```json theme={null}
{
  "q": "policy OR regulation",
  "ORG_entity_name": "\"European Union\" OR \"European Commission\"",
  "search_in": "title_content,title_content_translated",
  "countries": ["FR", "DE", "IT", "ES", "NL"],
  "include_nlp_data": true,
  "include_translation_fields": true
}
```

### Global trade policy monitoring

Combine multiple entity types with location filtering to monitor trade events
across languages:

```json theme={null}
{
  "q": "tariffs OR trade OR duties OR imports",
  "ORG_entity_name": "\"White House\" OR \"Commerce Department\"",
  "LOC_entity_name": "\"United States\" OR \"Washington\"",
  "search_in": "title_content,title_content_translated",
  "countries": ["FR", "DE", "IT", "ES", "CA", "MX", "BR", "IN"],
  "include_nlp_data": true,
  "include_translation_fields": true,
  "from_": "7d"
}
```

## Best practices

* Start with a basic keyword search in `title_content,title_content_translated`
  before adding entity filters and complex query logic.
* Use official English names in quotes for organizations and locations, and
  combine with boolean operators for flexible matching.
* Use the `countries` parameter to focus on specific regions rather than
  searching globally.
* When translation accuracy is critical, verify important findings against the
  original-language content.

## See also

* [Search by entity](/news-api/how-to/search-by-entity)
* [NLP features](/news-api/guides-and-concepts/nlp-features)
* [Query syntax](/news-api/guides-and-concepts/advanced-querying)
