Skip to main content
Every article gets exactly one content type label from NLP analysis: the kind of page it is, independent of what it is about. Labels work in all languages. The label is returned in nlp.content_type, and the content_type parameter filters on it. Use it to keep straight reporting and leave out press releases, shopping pages, or automatically generated content that news sites also publish.

Content type values

The first three, news_report, analysis, and interview, are news. The rest are other kinds of pages that news sites also publish.
Some pages sit between two labels, such as an analysis piece and an opinion column, or a story about a press release and the press release itself. In these cases the label can differ from what a person would pick. Telling news from the other kinds of pages is more reliable than the exact label.
The content_type parameter also accepts two shortcuts:
  • news: news_report, analysis, and interview.
  • all: no content type filter. This is the same as not setting content_type.

Filter by content type

The content_type parameter works on these endpoints, with GET and POST: Pass one or more values as a comma-separated string. In POST requests, you can also pass an array of strings. Values are case-insensitive, and an article is returned if it matches any of them:
An unknown value returns a 422 error that names the value and lists the accepted values.

Rank sources by content type

On /api/sources, content_type does not filter the sources themselves. It narrows the articles that each source is counted from. The order of the results, nb_articles_for_7d, and the minimum of 5 articles per source apply to matching articles only, so you get the top sources for news rather than the top sources overall. A source with fewer than 5 matching articles is left out.
content_type is not enough on its own. Send at least one of lang, countries, source_url, source_name, or predefined_sources. Unlike most parameters, you can combine content_type with source_url and predefined_sources.

Availability

Content type labels are available on all subscription plans for articles from October 17, 2026. Later in Q4 2026, articles back to January 1, 2026, will be labelled too.
Articles without a label are left out whenever content_type is set, so a filtered request over an older date range can return fewer articles. Without content_type, all articles are returned as before.

Content type in the response

Each article includes its label in the nlp object:
On plans with NLP enrichments, nlp.content_type follows include_nlp_data like the rest of the nlp object. Articles that have no label yet have no nlp.content_type. See Availability.

See also