Brandwatch Data API

The Data API from Brandwatch — 2 operation(s) for data.

Operations 2

GET /data/{aggregate}/{dimension1}/{dimension2} Basic Charts #
GET /data/hashtags Twitter Hashtags #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brandwatch-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

brandwatch-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Consumer Research Data API
  version: '2.0'
servers:
- url: https://api.brandwatch.com
security:
- sec0: []
tags:
- name: Data
paths:
  /data/{aggregate}/{dimension1}/{dimension2}:
    get:
      summary: Basic Charts
      description: Creating a chart out of your Mentions.
      operationId: basic-charts-1
      parameters:
      - name: aggregate
        in: path
        description: Which aggregate data you would like to see. You can find a full list [here](https://developers.brandwatch.com/docs/chart-dimensions-and-aggregates).
        schema:
          type: string
          default: volume
        required: true
      - name: dimension1
        in: path
        description: Your x-axis dimension. You can find a full list of dimensions [here](https://developers.brandwatch.com/docs/chart-dimensions-and-aggregates).
        schema:
          type: string
          default: sentiment
        required: true
      - name: dimension2
        in: path
        description: Your y-axis dimension. You can find a full list [here](https://developers.brandwatch.com/docs/chart-dimensions-and-aggregates).
        schema:
          type: string
          default: days
        required: true
      - name: queryId/queryGroupId
        in: query
        description: The ID of the Query or Query Group that contains the Mentions for which you'd like to see.
        required: true
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        description: The beginning of the date range that contains the Mentions.
        required: true
        schema:
          type: string
          default: '"YYYY-MM-DD''T''hh:mm:ss:xx.xx+xxxx"'
      - name: endDate
        in: query
        description: The end of the date range that contains the Mentions.
        required: true
        schema:
          type: string
          default: '"YYYY-MM-DD''T''hh:mm:ss:xx.xx+xxxx"'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"aggregate\": \"volume\",\n  \"dimension1\": \"sentiment\",\n  \"dimension2\": \"days\",\n  \"results\": [\n    {\n      \"id\": \"negative\",\n      \"name\": \"negative\",\n      \"data\": {},\n      \"values\": [\n        {\n          \"id\": \"2016-05-05T00:00:00.000+0000\",\n          \"name\": \"2016-05-05 00:00:00.0\",\n          \"value\": 12,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-04T00:00:00.000+0000\",\n          \"name\": \"2016-05-04 00:00:00.0\",\n          \"value\": 10,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-02T00:00:00.000+0000\",\n          \"name\": \"2016-05-02 00:00:00.0\",\n          \"value\": 10,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-01T00:00:00.000+0000\",\n          \"name\": \"2016-05-01 00:00:00.0\",\n          \"value\": 5,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-06T00:00:00.000+0000\",\n          \"name\": \"2016-05-06 00:00:00.0\",\n          \"value\": 10,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-03T00:00:00.000+0000\",\n          \"name\": \"2016-05-03 00:00:00.0\",\n          \"value\": 8,\n          \"data\": {}\n        }\n      ]\n    },\n    {\n      \"id\": \"neutral\",\n      \"name\": \"neutral\",\n      \"data\": {},\n      \"values\": [\n        {\n          \"id\": \"2016-05-05T00:00:00.000+0000\",\n          \"name\": \"2016-05-05 00:00:00.0\",\n          \"value\": 104,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-04T00:00:00.000+0000\",\n          \"name\": \"2016-05-04 00:00:00.0\",\n          \"value\": 110,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-02T00:00:00.000+0000\",\n          \"name\": \"2016-05-02 00:00:00.0\",\n          \"value\": 111,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-01T00:00:00.000+0000\",\n          \"name\": \"2016-05-01 00:00:00.0\",\n          \"value\": 78,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-06T00:00:00.000+0000\",\n          \"name\": \"2016-05-06 00:00:00.0\",\n          \"value\": 93,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-03T00:00:00.000+0000\",\n          \"name\": \"2016-05-03 00:00:00.0\",\n          \"value\": 103,\n          \"data\": {}\n        }\n      ]\n    },\n    {\n      \"id\": \"positive\",\n      \"name\": \"positive\",\n      \"data\": {},\n      \"values\": [\n        {\n          \"id\": \"2016-05-05T00:00:00.000+0000\",\n          \"name\": \"2016-05-05 00:00:00.0\",\n          \"value\": 16,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-04T00:00:00.000+0000\",\n          \"name\": \"2016-05-04 00:00:00.0\",\n          \"value\": 19,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-02T00:00:00.000+0000\",\n          \"name\": \"2016-05-02 00:00:00.0\",\n          \"value\": 16,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-01T00:00:00.000+0000\",\n          \"name\": \"2016-05-01 00:00:00.0\",\n          \"value\": 22,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-06T00:00:00.000+0000\",\n          \"name\": \"2016-05-06 00:00:00.0\",\n          \"value\": 14,\n          \"data\": {}\n        },\n        {\n          \"id\": \"2016-05-03T00:00:00.000+0000\",\n          \"name\": \"2016-05-03 00:00:00.0\",\n          \"value\": 25,\n          \"data\": {}\n        }\n      ]\n    }\n  ]\n}"
              schema:
                type: object
                properties:
                  aggregate:
                    type: string
                    example: volume
                  dimension1:
                    type: string
                    example: sentiment
                  dimension2:
                    type: string
                    example: days
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: negative
                        name:
                          type: string
                          example: negative
                        data:
                          type: object
                          properties: {}
                        values:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                example: 2016-05-05T00:00:00.000+0000
                              name:
                                type: string
                                example: '2016-05-05 00:00:00.0'
                              value:
                                type: integer
                                example: 12
                                default: 0
                              data:
                                type: object
                                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: curl -X GET 'https://api.brandwatch.com/projects/397263282/data/volume/sentiment/days?queryId=9226732&startDate=2016-05-01&endDate=2016-05-07'
        samples-languages:
        - curl
      tags:
      - Data
  /data/hashtags:
    get:
      summary: Twitter Hashtags
      description: 'Retrieves an aggregated breakdown of Twitter Hashtag data.


        This endpoint accepts all of our usual [Filters](https://developers.brandwatch.com/docs/filters).'
      operationId: twitter-insights-1
      parameters:
      - name: queryId/queryGroupId
        in: query
        description: The ID of the Query or Query Group that contains the Mentions for which you'd like to see.
        required: true
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        description: The beginning of the date range that contains the Mentions.
        required: true
        schema:
          type: string
          default: '"YYYY-MM-DD''T''hh:mm:ss:xx.xx+xxxx"'
      - name: endDate
        in: query
        description: The end of the date range that contains the Mentions.
        required: true
        schema:
          type: string
          default: '"YYYY-MM-DD''T''hh:mm:ss:xx.xx+xxxx"'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"results\": [\n        {\n            \"name\": \"#battenwear\",\n            \"label\": null,\n            \"volume\": 27,\n            \"tweets\": 27,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#menswear\",\n            \"label\": null,\n            \"volume\": 6,\n            \"tweets\": 6,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#outdoor\",\n            \"label\": null,\n            \"volume\": 5,\n            \"tweets\": 5,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#patagonia\",\n            \"label\": null,\n            \"volume\": 5,\n            \"tweets\": 5,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#fresh\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#freshstoretorino\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#sportswear\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#streetstyle\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#streetwear\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        },\n        {\n            \"name\": \"#torino\",\n            \"label\": null,\n            \"volume\": 4,\n            \"tweets\": 4,\n            \"retweets\": 0,\n            \"impressions\": 0\n        }\n    ],\n    \"orderBy\": \"volume\",\n    \"orderDirection\": \"desc\"\n}"
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: '#battenwear'
                        label: {}
                        volume:
                          type: integer
                          example: 27
                          default: 0
                        tweets:
                          type: integer
                          example: 27
                          default: 0
                        retweets:
                          type: integer
                          example: 0
                          default: 0
                        impressions:
                          type: integer
                          example: 0
                          default: 0
                  orderBy:
                    type: string
                    example: volume
                  orderDirection:
                    type: string
                    example: desc
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: curl -X GET 'https://api.brandwatch.com/projects/397382923/data/hashtags?queryId=1834636622&startDate=2017-11-11&endDate=2017-11-18'
        samples-languages:
        - curl
      tags:
      - Data
components:
  securitySchemes:
    sec0:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://example.com/oauth2/token
          scopes: {}
x-readme:
  headers: []
  explorer-enabled: true
  proxy-enabled: true
x-readme-fauxas: true