Brand Reports

Update a brand report

Changed on

Changes only the fields you send; an array field you send replaces the stored one whole. A field sent with its stored value is left unchanged and is not re-validated, so a GET body can be sent back as is: its read-only fields (workspaceId, id, countries, tags, createdDate, updatedDate, countryPromptsTotal) are ignored, and the workspace of a report cannot be changed. Send brandRegex: null to clear the detection regex. Changing detection fields (brand, variations, domains, wildcard, regex or competitors) recalculates the report history for every past day, exactly like an edit in the UI, so updated numbers appear with a delay. Changing promptIds adds and removes prompts the same way as the prompt assignment endpoints.

patch/v1/reports/brand/{reportId}

Request

  • Base URL
    https://data.otterly.ai
  • Auth
    HTTP bearer

Path parameters

reportIdstring required

Brand report identifier.

Example:01HX7K2YV9D3M8N0G6Q5R4S3T2

Request body

reportTitlestring

Optional. Report name shown in the app.

brandstring

Optional. Brand name to track.

brandVariationsstring[]

Optional. Other names the brand goes by, at most 100. Cannot be combined with brandRegex.

brandDomainstring

Optional. Brand website domain, e.g. acme.com. Protocol, www. and path are stripped.

brandDomainVariationsstring[]

Optional. Other domains the brand owns, at most 100. Each must differ from brandDomain.

brandDomainWildcardboolean

Optional. When true, subdomains of brandDomain also count as the brand domain.

brandRegexstring nullable

Optional. Regular expression used to detect the brand in AI answers, instead of the name and its variations (so it cannot be combined with brandVariations). Up to 1000 characters. Send null to clear it.

promptIdsstring[]

IDs of prompts that already exist in the report workspace — look them up with GET /v1/workspaces/{id}/prompts. The report tracks the countries of these prompts.

Example request

{
  "brandDomainWildcard": true,
  "competitors": [
    {
      "brand": "Nike",
      "brandDomain": "nike.com"
    }
  ]
}

Response

The updated brand report. Recalculation completes asynchronously.

idstring required
workspaceIdstring required
brandstring required
reportTitlestring
brandVariationsstring[]
brandDomainstring required
brandDomainVariationsstring[]
brandDomainWildcardboolean
brandRegexstring nullable required

Regular expression used to detect the brand in AI answers, instead of brand and brandVariations. null when not set.

countriesstring[] required

Lowercase ISO 3166-1 alpha-2 country codes the report tracks (e.g. us, de), with uk used in place of gb.

createdDatestring required
updatedDatestring required
promptIdsstring[]
countryPromptsTotalobject

Total prompt count keyed by country code (lowercase ISO 3166-1 alpha-2; uk instead of gb).

Example response

{
  "id": "01HXBR1DGM5XY8Z2N3KQ7VAW4P",
  "workspaceId": "01HX7K2YV9D3M8N0G6Q5R4S3T2",
  "brand": "Adidas",
  "brandVariations": [
    "adidas",
    "Adidas AG"
  ],
  "brandDomain": "adidas.com",
  "brandDomainVariations": [
    "adidas.de",
    "adidas.co.uk"
  ],
  "brandDomainWildcard": false,
  "brandRegex": null,
  "countries": [
    "us",
    "de",
    "uk"
  ],
  "competitors": [
    {
      "brand": "Nike",
      "brandVariations": [
        "nike",
        "Nike Inc."
      ],
      "brandDomain": "nike.com",
      "brandDomainVariations": [
        "nike.de",
        "nike.co.uk"
      ],
      "brandDomainWildcard": false,
      "brandRegex": null
    }
  ],
  "reportTitle": "Adidas Visibility Report",
  "createdDate": "2024-11-01T12:00:00.000Z",
  "updatedDate": "2025-05-01T08:30:00.000Z",
  "promptIds": [
    "01HXP1DRTM5G8Z2N3KQ7VAW4PA",
    "01HXP2DRTM5G8Z2N3KQ7VAW4PB"
  ],
  "countryPromptsTotal": {
    "us": 50,
    "de": 35,
    "uk": 28
  },
  "tags": [
    {
      "id": "01HX8AB3CDE4FG5HJ6KL7MN8PQ",
      "name": "Running Shoes",
      "color": "orange"
    }
  ]
}

Changes