API documentation

Public and customer APIs for ExtensionWatch. Base URLs, authentication, and rate limits will be confirmed when your environment is provisioned. This page tracks the intended contract for the marketing-site stats endpoint.

Base URL

Production and staging bases are issued with your account. The landing page reads the base from:

  • <meta name="extensionwatch-api-base" content="https://api.example.com">
  • data-api-base on <body> (overrides meta)
  • Query parameter ?apiBase= for testing

Versioning

Paths are versioned with a prefix, e.g. /v1/. Breaking changes will bump the major version where possible.

Authentication

Public stats (/v1/public/stats) may be unauthenticated or protected by API key / edge rules - final policy TBD. Customer datasets and write operations will require authentication (e.g. Bearer token or key header); details in your order documentation.

GET /v1/public/stats

Returns aggregated figures for the landing page. Example:

GET {base}/v1/public/stats
Accept: application/json

200 OK - JSON body (fields may be subset if not applicable):

{
  "totalExtensions": 331470,
  "chromeShare": 0.716,
  "edgeShare": 0.089,
  "firefoxShare": 0.195,
  "monthlyGrowthPercent": 2.4,
  "chromeWebStoreCount": 237476,
  "edgeAddonsCount": 29508,
  "firefoxAddonsCount": 64486,
  "androidAppsCount": 2539806,
  "androidGamesCount": 320975,
  "newPerMonth": 12648,
  "developerContacts": 96084,
  "discoveries": [
    {
      "title": "string",
      "storeLabel": "string",
      "signal": "string",
      "detail": "string"
    }
  ]
}
  • chromeShare, edgeShare, firefoxShare: fractions 0-1 (browser extension totals excluding themes for the headline split).
  • discoveries: optional; omit or return [] if not public.

Errors

Typical HTTP status codes: 400 bad request, 401/403 auth, 429 rate limit, 5xx server. Error bodies: TBD (JSON with code, message recommended).

Rate limits

Limits and Retry-After behavior will be documented per plan. Contact us for production quotas.

CORS

If the landing page calls the API from extensionwatch.org, the API must allow that origin (or serve via same-site proxy). Configure with your hosting / API gateway.

Support

Contact support for keys, SLAs, and additional endpoints.

Terms of Service Privacy Policy Legal Notice Home