Topics (New)
Finding topics of conversation in your Mentions.
Effective topic analysis allow you to glean a quick overview of the popular topics within any conversation. Our technology makes use of the latest natural language processing (NLP) techniques to extract insightful topics from your dataset.
This endpoint matches the functionality found in the "Word Cloud" component in BCR itself.
You can also use the Brandwatch topics functionality via the Consumer Research API.
Required Parameters
The topics data calls requires these fields (apart from extract
these are the same as with the mentions endpoint):
Parameter | Definition | Accepted Values |
---|---|---|
extract | The topics we want to extract | emojis , entities , words , phrases , hashtags , people , places , organisations (multiple values can be specified) |
queryId / queryGroupId | The ID of the Query or Query Group that contains the Mentions for which you'd like to see Topics. | int (Learn how to retrieve your Query ID or Query Group ID (may be provided multiple times) |
startDate | The beginning of the date range that contains the Mentions. | "YYYY-MM-DD'T'hh:mm:ss.xxx+xxxx" |
endDate | The end of the date range that contains the Mentions. | "YYYY-MM-DD'T'hh:mm:ss.xxx+xxxx" |
Note: you can specify the time zone by replacing +xxxx
with the ISO UTC offset, e.g -0500 for New York standard time. Important: The character +
should be URL encoded to %2B
For the extract
parameter the topic types are:
emojis
extract emojis from the text of mentionsentities
extract Entities (aka "AI Powered Keywords") from the text of mentionswords
extract frequent (or trending) words from the text of mentionsphrases
extract phrases (minimum of two word length) from the text of mentionspeople
extract words/phrases that appear to refer to people (English only)places
extract words/phrases that appear to refer to places (English only)organisations
extract words/phrases that appear to refer to organisations (English only)
Optional Parameters
Some additional parameters that will be useful:
Parameter | Definition | Accepted Values |
---|---|---|
metrics | Which metrics you want to include alongside the topics | volume , percentageVolume , sentiment , gender , trending , timeSeries (multiple values can be specified separated by commas) |
orderBy | Metric by which you wish to order the topics returned. | "volume" - the number of Mentions the topic appears in "trending" - the rate that the topic has emerged over time |
limit | The maximum number of topics to be returned. | int |
- | All other filters should work | e.g. sentiment=positive would filter to only look at "positive" sentiment when extracting topics |
For the metrics
parameter the allowed values are:
volume
topics will include avolume
field that represents how often the topic occurs in the query (always returned as a default anyway)percentageVolume
topics will include apercentageVolume
field that is from 1-100 with the volume of the topic within the overall querysentiment
topics will include asentimentScore
field (-100 to 100 depending on how "negative" or "positive" the topic is) and asentiment
breakdown field (e.g.{ "positive": 0, "neutral": 4, "negative": 0 }
)gender
topics will include agender
breakdown field (e.g.{"male": 1, "female": 2}
)trending
topics will include atrending
field that indicates whether a topic tends to appears to be "trending" (talked about only recently). Positive values indicate it is trending and negative that is fading.timeSeries
topics will include atimeSeries
field that includes a set of data points indicating topic volume of time. The nature and number of data points will vary depending on the date range used. The data point units can beminutes
,hours
,days
,weeks
months
oryears
Notes
Only set the metrics
parameter to values that you actually will need to use. Requesting fewer metrics will make the API call faster, so there is no point asking for metrics that will then be ignored in the response.
Also be aware that the words
topics will tend to dominate your responses when ordering by volume
(the default). This is because a single word will tend to appear in more mentions than a specific phrase.
Example Call
curl -X GET 'https://api.brandwatch.com/projects/162500080/data/topics?queryId=163039395&startDate=2025-06-01&endDate=2025-07-22&extract=phrases&metrics=percentageVolume,sentiment,timeSeries,trending&limit=2'
The response will look like this:
{
"topics": [
{
"sentimentScore": 0,
"percentageVolume": 14.285714285714285,
"trending": 1.5510621240350537,
"volume": 7,
"label": "self-portrait drawing",
"id": "self-portrait drawing",
"type": "phrase",
"sentiment": {
"positive": 0,
"neutral": 7,
"negative": 0
},
"timeSeries": {
"unit": "weeks",
"values": [
{
"date": "2025-05-26T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-02T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-09T00:00:00.000+0000",
"volume": 2
},
{
"date": "2025-06-16T00:00:00.000+0000",
"volume": 1
},
{
"date": "2025-06-23T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-30T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-07-07T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-07-14T00:00:00.000+0000",
"volume": 4
},
{
"date": "2025-07-21T00:00:00.000+0000",
"volume": 0
}
]
}
},
{
"sentimentScore": 0,
"percentageVolume": 6.122448979591836,
"trending": 1.0838324216720436,
"volume": 3,
"label": "Colored Pencil",
"id": "Colored Pencil",
"type": "phrase",
"sentiment": {
"positive": 0,
"neutral": 3,
"negative": 0
},
"timeSeries": {
"unit": "weeks",
"values": [
{
"date": "2025-05-26T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-02T00:00:00.000+0000",
"volume": 1
},
{
"date": "2025-06-09T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-16T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-23T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-06-30T00:00:00.000+0000",
"volume": 1
},
{
"date": "2025-07-07T00:00:00.000+0000",
"volume": 1
},
{
"date": "2025-07-14T00:00:00.000+0000",
"volume": 0
},
{
"date": "2025-07-21T00:00:00.000+0000",
"volume": 0
}
]
}
}
]
}
Updated 1 day ago