SiteGauge API

Programmatic access to your competitor intelligence data.

Base URLhttps://api.sitegauge.com/v1
Versionv1 (stable)
FormatJSON - all requests and responses use application/json

Authentication

All API requests require a Bearer token. Generate API keys from Settings → API Keys. Keys start with vgl_.

curl "https://api.sitegauge.com/v1/changes" \
  -H "Authorization: Bearer vgl_your_api_key_here"

Keep your key secret. It is shown once on creation. Revoke and regenerate it from Settings if compromised.

Rate limits

Limits are per API key per minute. Exceeding the limit returns HTTP 429.

PlanRequests / min
Free60
Standard120
Pro300
Enterprise600

Changes

GET/changes

Returns a paginated list of detected changes for your organisation, ordered by most recent first.

Query parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
pageSizeintegerResults per page, max 100 (default: 20)
severitystringFilter by severity: LOW, MEDIUM, HIGH, CRITICAL
significantbooleanOnly return significant changes
competitorIdstringFilter by competitor ID
categorystringFilter by change category (pricing, feature, design…)

Example request

curl -X GET "https://api.sitegauge.com/v1/changes?significant=true&pageSize=5" \
  -H "Authorization: Bearer vgl_your_api_key"

Example response

{
  "data": [
    {
      "id": "chg_abc123",
      "severity": "HIGH",
      "isSignificant": true,
      "changeCategory": "pricing",
      "aiSummary": "Pricing page updated: Pro plan increased from $49 to $59/mo",
      "changeTypes": ["pricing", "text_change"],
      "createdAt": "2026-05-10T09:00:00Z",
      "url": {
        "id": "url_xyz",
        "url": "https://competitor.com/pricing",
        "displayName": "Competitor Pricing"
      }
    }
  ],
  "total": 142,
  "hasMore": true
}

Competitors

GET/competitors

Returns all competitors tracked in your organisation.

Example request

curl -X GET "https://api.sitegauge.com/v1/competitors" \
  -H "Authorization: Bearer vgl_your_api_key"

Example response

{
  "data": [
    {
      "id": "cmp_abc",
      "name": "Acme Corp",
      "domain": "acme.com",
      "aiProfile": {
        "tagline": "Enterprise workflow automation",
        "industry": "SaaS",
        "pricingModel": "per-seat subscription"
      },
      "createdAt": "2026-01-15T00:00:00Z"
    }
  ]
}
POST/competitors/:id/ask

Ask a natural-language question about a competitor. Returns an AI-generated answer based on the last 20 significant changes.

Request body

ParameterTypeDescription
question*stringNatural language question about the competitor

Example request

curl -X POST "https://api.sitegauge.com/v1/competitors/cmp_abc/ask" \
  -H "Authorization: Bearer vgl_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"question": "Did they raise prices recently?"}'

Example response

{
  "data": {
    "answer": "Yes - their pricing page changed 12 days ago. The Pro plan increased from $49 to $59/mo and they removed the legacy Starter tier.",
    "sourceChanges": 3
  }
}

Battlecards

GET/battlecards

Returns all AI-generated battlecards for your organisation.

Query parameters

ParameterTypeDescription
competitorIdstringFilter by competitor ID

Example request

curl -X GET "https://api.sitegauge.com/v1/battlecards?competitorId=cmp_abc" \
  -H "Authorization: Bearer vgl_your_api_key"

Example response

{
  "data": [
    {
      "id": "bc_xyz",
      "title": "Acme Corp Battlecard",
      "isPublished": true,
      "sections": {
        "positioning": "We win on ease-of-use and faster onboarding…",
        "ourStrengths": ["No per-seat pricing", "SOC 2 certified", "24h support SLA"],
        "theirWeaknesses": ["Complex setup", "No free trial", "Slow support"],
        "commonObjections": [
          { "objection": "Acme is cheaper", "response": "They charge per seat - at 50 users you pay 2× more." }
        ]
      },
      "competitor": { "id": "cmp_abc", "name": "Acme Corp" },
      "updatedAt": "2026-05-09T08:00:00Z"
    }
  ]
}
POST/battlecards/generate

AI-generates a new battlecard for a competitor using their profile and recent changes.

Request body

ParameterTypeDescription
competitorId*stringID of the competitor

Example request

curl -X POST "https://api.sitegauge.com/v1/battlecards/generate" \
  -H "Authorization: Bearer vgl_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"competitorId": "cmp_abc"}'

Example response

{
  "data": {
    "id": "bc_new",
    "title": "Acme Corp Battlecard",
    "sections": { "positioning": "…", "ourStrengths": ["…"] },
    "createdAt": "2026-05-10T10:00:00Z"
  }
}

Win / Loss

GET/win-loss

Returns paginated win/loss records with aggregate stats.

Query parameters

ParameterTypeDescription
competitorIdstringFilter by competitor
outcomestringWIN | LOSS | DRAW | NO_DECISION
pageintegerPage number
pageSizeintegerResults per page

Example request

curl -X GET "https://api.sitegauge.com/v1/win-loss?outcome=WIN" \
  -H "Authorization: Bearer vgl_your_api_key"

Example response

{
  "data": [
    {
      "id": "wl_abc",
      "outcome": "WIN",
      "opportunityName": "ACME vs Us - Q2 Enterprise Deal",
      "dealSizeUsd": 48000,
      "closeDate": "2026-04-30T00:00:00Z",
      "ourStrengths": ["Better support", "Easier onboarding"],
      "competitor": { "name": "Acme Corp" }
    }
  ],
  "stats": [
    { "outcome": "WIN", "_count": { "outcome": 12 }, "_avg": { "dealSizeUsd": 34000 } },
    { "outcome": "LOSS", "_count": { "outcome": 5 }, "_avg": { "dealSizeUsd": 62000 } }
  ]
}

Saved Intel

GET/bookmarks

Returns changes bookmarked by the authenticated user.

Query parameters

ParameterTypeDescription
pageintegerPage number
pageSizeintegerResults per page, max 100

Example request

curl -X GET "https://api.sitegauge.com/v1/bookmarks" \
  -H "Authorization: Bearer vgl_your_api_key"

Example response

{
  "data": [
    {
      "id": "bk_abc",
      "note": "Follow up with pricing team",
      "createdAt": "2026-05-08T12:00:00Z",
      "change": {
        "id": "chg_abc123",
        "severity": "HIGH",
        "aiSummary": "Pricing page updated…",
        "url": { "url": "https://competitor.com/pricing" }
      }
    }
  ],
  "total": 7
}
POST/bookmarks

Bookmark a change. Idempotent - calling again updates the note.

Request body

ParameterTypeDescription
changeId*stringID of the change to bookmark
notestringOptional private note

Example request

curl -X POST "https://api.sitegauge.com/v1/bookmarks" \
  -H "Authorization: Bearer vgl_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"changeId": "chg_abc123", "note": "Follow up with pricing team"}'

Example response

{
  "data": { "id": "bk_abc", "changeId": "chg_abc123", "note": "Follow up with pricing team" }
}
Need help? Email support@sitegauge.com