A RESTful API for querying competitors, intelligence reports, battle cards, and alerts. Build custom integrations, power internal dashboards, and automate competitive workflows.
# List all tracked competitors
curl https://api.rivaldesk.com/v1/competitors \
-H "Authorization: Bearer rd_live_..."
# Response
{
"data": [
{
"id": "comp_8x7kQ2",
"name": "Beacon AI",
"status": "active",
"last_signal": "2026-02-23T09:41:00Z"
}
],
"has_more": true
}
All API requests require a Bearer token in the Authorization header. API keys can be generated from your RivalDesk dashboard under Settings > API Keys.
# Include your API key in the Authorization header
curl https://api.rivaldesk.com/v1/competitors \
-H "Authorization: Bearer rd_live_sk_7f3a..." \
-H "Content-Type: application/json"
# Test mode - use your test key
curl https://api.rivaldesk.com/v1/competitors \
-H "Authorization: Bearer rd_test_sk_9b2c..."
Four core resources cover the full competitive intelligence workflow - from competitor tracking to actionable alerts.
Manage your tracked competitors. Create, update, archive, and list competitors. Query monitoring status and last detected signals.
Access AI-generated intelligence reports. Filter by competitor, severity, source channel, and date range. Includes business impact analysis and recommended actions.
Retrieve auto-generated battle cards with pricing comparisons, strengths and weaknesses, objection handling, and win themes. Filterable by competitor.
Manage alert rules and retrieve triggered alerts. Configure triggers by competitor, keyword, source, and severity. Supports webhook delivery for real-time notifications.
Query reports filtered by competitor and severity. The response includes AI-generated summaries, business impact analysis, and recommended next actions.
import requests
# Fetch critical reports for a specific competitor
response = requests.get(
"https://api.rivaldesk.com/v1/reports",
headers={
"Authorization": "Bearer rd_live_sk_7f3a..."
},
params={
"competitor_id": "comp_8x7kQ2",
"severity": "critical",
"limit": 5
}
)
data = response.json()
for report in data["data"]:
print(f"[{report['severity']}] {report['title']}")
print(f" Impact: {report['business_impact']}")
print(f" Action: {report['recommended_action']}")
print()
# Output:
# [CRITICAL] Pricing restructured - free tier removed
# Impact: Competitor losing SMB segment, doubling
# down on enterprise positioning
# Action: Update battle cards, brief sales on new
# pricing objection handling
Rate limits are applied per API key. Responses include rate limit headers so you can monitor your usage in real time.