API Documentation

Access your Glimpse competitive intelligence data programmatically. Use the API to integrate with Zapier, n8n, or your own tools.

Base URL

https://www.glimpsehq.io/api/v1

All endpoints are relative to this base URL.

Authentication

All API requests require a valid API key sent as a Bearer token in the Authorization header.

Example request
curl https://www.glimpsehq.io/api/v1/signals \
  -H "Authorization: Bearer glmp_your_api_key_here"

Generate an API key in Settings > Integrations > API keys. Keys start with glmp_ and are shown once at creation.

MCP - connect your AI assistant

Glimpse ships a built-in Model Context Protocol server, so Claude, Cursor, and other MCP clients can read your competitive intelligence directly - competitors, signals, insights, per-competitor intelligence state, and battle cards. Available on every plan. Authentication uses the same API keys as the REST API.

Endpoint
https://www.glimpsehq.io/api/mcp
Claude Code
claude mcp add --transport http glimpse https://www.glimpsehq.io/api/mcp \
  --header "Authorization: Bearer glmp_your_api_key_here"
Cursor / generic JSON config
{
  "mcpServers": {
    "glimpse": {
      "url": "https://www.glimpsehq.io/api/mcp",
      "headers": {
        "Authorization": "Bearer glmp_your_api_key_here"
      }
    }
  }
}

Some clients (for example claude.ai custom connectors) only accept a URL and can't send custom headers. For those, put the key in the URL itself - and treat the full URL as a secret:

URL-keyed endpoint (for clients without header support)
https://www.glimpsehq.io/api/mcp/glmp_your_api_key_here

Available tools

ParameterTypeRequiredDescription
get_workspace_summarytoolNoOrg overview: competitor count, signal volume, latest signals
list_competitorstoolNoAll tracked competitors with ids and metadata
get_competitortoolNoOne competitor plus its running intelligence state (thesis, themes, watch items)
list_signalstoolNoRecent activity signals, filterable by competitor, type, recency, or keyword
list_insightstoolNoAnalyst insights: anomalies, new channels, cross-competitor patterns
get_battle_cardtoolNoThe generated sales battle card for a competitor

All tools are read-only. MCP requests share the API rate limits below.

Rate limits

API requests are limited to 20 requests per minute per API key. Exceeding this limit returns a 429 status code.

ParameterTypeRequiredDescription
X-RateLimit-LimitheaderNoMax requests per window (20)
X-RateLimit-RemainingheaderNoRemaining requests in current window
Retry-AfterheaderNoSeconds until the rate limit resets (on 429 responses)

Errors

All errors return a JSON object with an error field.

ParameterTypeRequiredDescription
401statusNoMissing, malformed, or invalid API key
403statusNoSubscription inactive or expired
404statusNoResource not found
429statusNoRate limit exceeded
500statusNoInternal server error
Example error response
{
  "error": "Invalid API key"
}

Signals

GET/api/v1/signals- List signals across all competitors
ParameterTypeRequiredDescription
competitor_idsstringNoComma-separated competitor UUIDs to filter by
typesstringNoComma-separated signal types to filter by
limitintegerNoMax results (default 50, max 500)
beforeISO 8601NoCursor for pagination - return signals before this timestamp
daysintegerNoOnly return signals from the last N days
Example request
curl "https://www.glimpsehq.io/api/v1/signals?types=pricing_change,blog_post&days=7&limit=10" \
  -H "Authorization: Bearer glmp_your_api_key_here"
Response
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "type": "pricing_change",
      "title": "Acme Corp updated their pricing page",
      "summary": "Pro plan increased from $49/mo to $59/mo",
      "url": "https://acme.com/pricing",
      "severity": "alert",
      "published_at": "2026-04-10T08:00:00Z",
      "created_at": "2026-04-10T08:05:00Z",
      "competitor_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "competitor": {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "name": "Acme Corp",
        "logo_url": null,
        "website": "https://acme.com"
      }
    }
  ],
  "has_more": false
}
GET/api/v1/competitors/{id}/signals- List signals for a specific competitor

Same parameters as above, minus competitor_ids.

Competitors

GET/api/v1/competitors- List all competitors
ParameterTypeRequiredDescription
limitintegerNoMax results (default 100, max 500)
offsetintegerNoNumber of results to skip (default 0)
Response
{
  "data": [
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "name": "Acme Corp",
      "website": "https://acme.com",
      "logo_url": null,
      "linkedin_url": "https://linkedin.com/company/acme",
      "twitter_url": "https://x.com/acme",
      "description": "Enterprise analytics platform",
      "created_at": "2026-01-15T10:00:00Z"
    }
  ],
  "total": 12
}
GET/api/v1/competitors/{id}- Get a single competitor
Response
{
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "name": "Acme Corp",
    "website": "https://acme.com",
    ...
  }
}

Signal types

Use these values with the types parameter to filter signals.

TypeDescription
blog_postBlog post published
pricing_changePricing page updated
job_postingNew job listing
job_removedJob listing removed
tech_addedTechnology added to stack
tech_removedTechnology removed from stack
tech_stack_updateGeneral stack change
news_mentionMentioned in the news
newsletterNewsletter sent
ebookNew ebook or gated content
webinarWebinar recording
webinar_upcomingUpcoming webinar
linkedin_adLinkedIn ad detected
social_postSocial media post
youtube_videoYouTube video published
instagram_postInstagram post
facebook_postFacebook post
facebook_adFacebook ad detected
google_adGoogle ad detected
user_reviewUser review (G2, Capterra, etc.)
sitemap_updateWebsite sitemap changed
page_changeMonitored page changed
leadership_changeLeadership team update

Need help? Contact us at hello@glimpsehq.io