CoreCited
API docs menu

Get share of voice

Your brand against each tracked competitor over 14 days, with confidence intervals.

GET/api/v1/brands/{brandId}/competitors

Share of voice is estimated from a finite number of answers, so every percentage comes with a 95% confidence interval.

When two intervals overlap, the gap between those names is noise. tiedWithBrand and leaders say this directly, so you don't have to compute it. Do not present a ranking closer than noiseFloorPp as a real ranking.

Parameters

NameInTypeDescription
brandIdpathstring (UUID)A brand id from GET /api/v1/brands.

Request

curl https://corecited.com/api/v1/brands/7d1c2b9e-4a3f-4e61-9b2a-0c5d8e7f6a14/competitors \
  -H "Authorization: Bearer $CORECITED_API_KEY"

Response

200 OK with the fields below inside data. Numbers are JSON numbers, dates are strings, and a field listed as null-able is always present, holding null when there is no value.

FieldTypeDescription
brandobjectThe brand this response is about.
brand.idstringThe brand's id. Use it in every /brands/{brandId}/… path.
brand.namestringThe brand name as configured in CoreCited.
brand.domainstringThe brand's website exactly as entered during setup. This is often a full URL such as https://www.example.com/, not a bare host.
shareOfVoiceobject[]Your brand and each competitor, most mentions first.
shareOfVoice[].namestringYour brand or a tracked competitor.
shareOfVoice[].isBrandbooleanTrue for your own brand's row.
shareOfVoice[].mentionsnumberTimes this name was mentioned in successful runs over the last 14 days.
shareOfVoice[].sovPctnumberShare of voice: this name's mentions ÷ all mentions counted, as a percentage.
shareOfVoice[].lowPctnumberLower bound of the 95% Wilson confidence interval for sovPct.
shareOfVoice[].highPctnumberUpper bound of the 95% Wilson confidence interval for sovPct.
shareOfVoice[].halfWidthPpnumberHalf the interval's width, in percentage points.
shareOfVoice[].tiedWithBrandbooleanTrue when this row's interval overlaps yours, so the gap between you is noise. Always false on your own row.
shareOfVoice[].tiedForLeadbooleanTrue when this row is statistically tied with the top row.
totalMentionsnumberAll mentions counted, the denominator of sovPct.
noiseFloorPpnumberThe smallest gap in percentage points that means anything at this sample size. Do not rank names closer than this.
leadersstring[]Names statistically tied for the lead. More than one means there is no real #1.

Example

200 OK
{
  "data": {
    "brand": {
      "id": "7d1c2b9e-4a3f-4e61-9b2a-0c5d8e7f6a14",
      "name": "Acme Resume",
      "domain": "https://www.acmeresume.com/"
    },
    "shareOfVoice": [
      {
        "name": "Zety",
        "isBrand": false,
        "mentions": 41,
        "sovPct": 43.2,
        "lowPct": 33.7,
        "highPct": 53.2,
        "halfWidthPp": 9.8,
        "tiedWithBrand": false,
        "tiedForLead": true
      },
      {
        "name": "Enhancv",
        "isBrand": false,
        "mentions": 33,
        "sovPct": 34.7,
        "lowPct": 25.9,
        "highPct": 44.7,
        "halfWidthPp": 9.4,
        "tiedWithBrand": false,
        "tiedForLead": true
      },
      {
        "name": "Acme Resume",
        "isBrand": true,
        "mentions": 12,
        "sovPct": 12.6,
        "lowPct": 7.4,
        "highPct": 20.8,
        "halfWidthPp": 6.7,
        "tiedWithBrand": false,
        "tiedForLead": false
      },
      {
        "name": "Kickresume",
        "isBrand": false,
        "mentions": 9,
        "sovPct": 9.5,
        "lowPct": 5.1,
        "highPct": 17,
        "halfWidthPp": 6,
        "tiedWithBrand": true,
        "tiedForLead": false
      }
    ],
    "totalMentions": 95,
    "noiseFloorPp": 19.8,
    "leaders": [
      "Zety",
      "Enhancv"
    ]
  }
}

Errors

StatusCodeWhen
401missing_keyNo key was sent in Authorization or x-api-key.
401invalid_keyThe key is malformed, unknown, or has been revoked.
402plan_requiredThe workspace is not on a plan that includes API access. This is checked on every request, so it also happens after a downgrade.
404not_foundThe brand id is not a UUID, does not exist, or belongs to another workspace. These cases are deliberately indistinguishable.
429rate_limitedThe workspace used up its requests for the current minute. All keys share one limit.
500internalSomething failed on our side. The response carries no detail by design.

Every error has the same body. See Errors for what to do about each one.