Brandwatch · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Brandwatch Consumer Research API

9 actions 9 updates documentation extends openapi/brandwatch-consumer-research-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Brandwatch's API. It is a proposal applied on top of the contract, not a document Brandwatch publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptionx-apievangelist-docsx-apievangelist-sourcex-apievangelist-discoveryx-apievangelist-harvestedx-apievangelist-providertermsOfServicecontact

Targets 5

$.info
$.components.securitySchemes.sec0
$.servers[0]
$
$.paths['/projects/{projectId}/data/mentions'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Brandwatch Consumer Research API
  version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Derived from openapi/brandwatch-consumer-research-openapi.yml plus the
  Brandwatch developer documentation at developers.brandwatch.com. Captures
  corrections and additions API Evangelist can evidence from the provider's own
  prose but which are missing from, or wrong in, the published contract. The
  original spec is never mutated.
extends: openapi/brandwatch-consumer-research-openapi.yml
actions:
  - target: $.info
    description: >-
      Record provenance and the fact that this contract is discoverable only via
      the RFC 9727 API catalog.
    update:
      x-apievangelist-source: https://developers.brandwatch.com/openapi/5e94c1a40b8b77005c948d8d
      x-apievangelist-discovery: https://developers.brandwatch.com/.well-known/api-catalog
      x-apievangelist-harvested: '2026-08-13'
      x-apievangelist-provider: Brandwatch (Cision Group Ltd)

  - target: $.info
    description: >-
      The published spec carries no description. Add the one the provider gives
      on its own documentation landing page.
    update:
      description: >-
        The Brandwatch Consumer Research API provides programmatic access to
        social listening data — mentions, aggregated statistics, topics and
        charts — across the projects, queries, tags, categories and rules
        configured in a Brandwatch Consumer Research account. Access requires an
        existing Consumer Research contract and a user with the Regular or Admin
        role.
      termsOfService: https://www.cision.com/legal/msa/
      contact:
        name: Brandwatch Developer Documentation
        url: https://developers.brandwatch.com/

  - target: $.components.securitySchemes.sec0
    description: >-
      CORRECTION. The published oauth2 scheme declares clientCredentials with
      tokenUrl https://example.com/oauth2/token — an unfilled ReadMe scaffold
      default. The real endpoint, grant and returned scopes are documented at
      https://developers.brandwatch.com/docs/authenticate. The original value is
      left in place in openapi/; this records the true one.
    update:
      x-apievangelist-correction: >-
        tokenUrl in the published spec is a placeholder (example.com). The real
        token endpoint is https://api.brandwatch.com/oauth/token.
      x-apievangelist-token-url: https://api.brandwatch.com/oauth/token
      x-apievangelist-grant-type: api-password
      x-apievangelist-client-id: brandwatch-api-client
      x-apievangelist-scopes-returned:
        - read
        - trust
        - write
      x-apievangelist-token-lifetime-seconds: 31535999
      x-apievangelist-docs: https://developers.brandwatch.com/docs/authenticate

  - target: $.servers[0]
    description: Annotate the transport requirement the provider publishes in its best-practices guidance.
    update:
      description: Production. HTTPS with TLS 1.2 or newer required; TLS 1.1 is rejected.
      x-apievangelist-tls-minimum: '1.2'
      x-apievangelist-docs: https://developers.brandwatch.com/docs/best-practices

  - target: $
    description: >-
      Add the rate-limit contract. Documented in prose at
      https://developers.brandwatch.com/docs/rate-limiting but expressed nowhere
      in the spec — no operation declares a 429 and no response documents the
      headers the API actually returns.
    update:
      x-apievangelist-rate-limit:
        scope: client
        limit: 30
        window: 10 minutes
        window_type: rolling
        status_on_exhaustion: 429
        headers:
          - name: x-rate-limit
            format: <limit>/<period>m
            example: 30/10m
          - name: x-rate-limit-used
            example: '5'
        retry_after: false
        docs: https://developers.brandwatch.com/docs/rate-limiting

  - target: $
    description: >-
      Record the error envelope. The spec declares 401/403/404/400 with empty
      schemas; the API returns a consistent two-field JSON body, confirmed live.
    update:
      x-apievangelist-error-envelope:
        media_type: application/json
        fields:
          - error
          - error_description
        rfc9457: false
        example:
          error: unauthorized
          error_description: Invalid authentication credentials found on request

  - target: $
    description: Record the pagination contract, which is consistent but undeclared as a reusable component.
    update:
      x-apievangelist-pagination:
        style: offset
        request:
          - page
          - pageSize
        response:
          - resultsTotal
          - resultsPage
          - resultsPageSize
          - results
        unpaginated_sentinel: resultsPage and resultsPageSize return -1

  - target: $
    description: >-
      Record what the spec does NOT cover, so a consumer of this overlay is not
      misled into thinking 36 operations is the whole Brandwatch API surface.
    update:
      x-apievangelist-coverage:
        documented_apis_without_openapi:
          - name: Brandwatch Data Upload API
            docs: https://developers.brandwatch.com/docs/getting-started-data-upload
            endpoints_seen_in_docs:
              - POST https://api.brandwatch.com/content/sources
              - POST https://api.brandwatch.com/content/upload
          - name: Brandwatch Analysis API
            docs: https://developers.brandwatch.com/docs/getting-started-analysis-api
            endpoints_seen_in_docs:
              - POST https://api.brandwatch.com/analysis/
              - GET https://api.brandwatch.com/analysis/usage
        marketed_apis_without_documentation:
          - Brandwatch Measure API
          - Brandwatch Publish API
          - Brandwatch Engage API
        note: >-
          Brandwatch markets six APIs on
          https://www.brandwatch.com/products/apis/. One has a machine-readable
          contract, two more have prose documentation only, and three have
          neither.

  - target: $.paths['/projects/{projectId}/data/mentions'].get
    description: >-
      Flag the account-dependent field variability the provider documents
      separately, so it travels with the operation that is affected by it.
    update:
      x-apievangelist-field-variability:
        constant: false
        reason: >-
          Returned metadata varies by upstream source and by which Data Packs
          the account holds. X posts have full text and most metadata stripped;
          Reddit restrictions took effect January 2026.
        docs: https://developers.brandwatch.com/docs/data-restrictions