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.
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.
https://www.glimpsehq.io/api/mcp
claude mcp add --transport http glimpse https://www.glimpsehq.io/api/mcp \ --header "Authorization: Bearer glmp_your_api_key_here"
{
"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:
https://www.glimpsehq.io/api/mcp/glmp_your_api_key_here
Available tools
| Parameter | Type | Required | Description |
|---|---|---|---|
| get_workspace_summary | tool | No | Org overview: competitor count, signal volume, latest signals |
| list_competitors | tool | No | All tracked competitors with ids and metadata |
| get_competitor | tool | No | One competitor plus its running intelligence state (thesis, themes, watch items) |
| list_signals | tool | No | Recent activity signals, filterable by competitor, type, recency, or keyword |
| list_insights | tool | No | Analyst insights: anomalies, new channels, cross-competitor patterns |
| get_battle_card | tool | No | The 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| X-RateLimit-Limit | header | No | Max requests per window (20) |
| X-RateLimit-Remaining | header | No | Remaining requests in current window |
| Retry-After | header | No | Seconds until the rate limit resets (on 429 responses) |
Errors
All errors return a JSON object with an error field.
| Parameter | Type | Required | Description |
|---|---|---|---|
| 401 | status | No | Missing, malformed, or invalid API key |
| 403 | status | No | Subscription inactive or expired |
| 404 | status | No | Resource not found |
| 429 | status | No | Rate limit exceeded |
| 500 | status | No | Internal server error |
{
"error": "Invalid API key"
}Signals
/api/v1/signals- List signals across all competitors| Parameter | Type | Required | Description |
|---|---|---|---|
| competitor_ids | string | No | Comma-separated competitor UUIDs to filter by |
| types | string | No | Comma-separated signal types to filter by |
| limit | integer | No | Max results (default 50, max 500) |
| before | ISO 8601 | No | Cursor for pagination - return signals before this timestamp |
| days | integer | No | Only return signals from the last N days |
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"
{
"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
}/api/v1/competitors/{id}/signals- List signals for a specific competitorSame parameters as above, minus competitor_ids.
Competitors
/api/v1/competitors- List all competitors| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Max results (default 100, max 500) |
| offset | integer | No | Number of results to skip (default 0) |
{
"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
}/api/v1/competitors/{id}- Get a single competitor{
"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.
| Type | Description |
|---|---|
blog_post | Blog post published |
pricing_change | Pricing page updated |
job_posting | New job listing |
job_removed | Job listing removed |
tech_added | Technology added to stack |
tech_removed | Technology removed from stack |
tech_stack_update | General stack change |
news_mention | Mentioned in the news |
newsletter | Newsletter sent |
ebook | New ebook or gated content |
webinar | Webinar recording |
webinar_upcoming | Upcoming webinar |
linkedin_ad | LinkedIn ad detected |
social_post | Social media post |
youtube_video | YouTube video published |
instagram_post | Instagram post |
facebook_post | Facebook post |
facebook_ad | Facebook ad detected |
google_ad | Google ad detected |
user_review | User review (G2, Capterra, etc.) |
sitemap_update | Website sitemap changed |
page_change | Monitored page changed |
leadership_change | Leadership team update |
Need help? Contact us at hello@glimpsehq.io