API Reference
Get aggregated competition analysis for a topic
X-API-Key<token>
API Key for programmatic access
In: header
Path Parameters
domainId*string
Domain ID
topicId*string
Topic ID
Query Parameters
competitors?array<string>
Filter by specific competitors
models?array<string>
Filter by specific AI models
criteria?array<string>
Filter by evaluation criterion slug. Narrows every per-criterion figure server-side rather than the client hiding rows of a payload it already paid for.
startDate?string
Start date for the analysis range
endDate?string
End date for the analysis range
Response Body
application/json
curl -X GET "https://example.com/api/domains/507f1f77bcf86cd799439011/topics/507f1f77bcf86cd799439012/competition/aggregated"{ "topicName": "Running Shoes", "name": "Nike", "strengths": { "categories": [ { "category": "Quality", "count": 24, "percentage": 32, "topMentions": [ "Durable materials", "Premium build" ] } ], "topCategories": [ "Quality", "Brand recognition" ], "totalMentions": 84 }, "weaknesses": { "categories": [ { "category": "Quality", "count": 24, "percentage": 32, "topMentions": [ "Durable materials", "Premium build" ] } ], "topCategories": [ "Pricing", "Availability" ], "totalMentions": 32 }, "winRateAnalysis": { "overall": { "wins": 28, "losses": 10, "ties": 4, "total": 42, "winPercentage": 67 }, "byCompetitor": { "Adidas": { "wins": 18, "losses": 6, "ties": 2, "total": 26, "winPercentage": 69 } }, "byModel": { "chatgpt": { "wins": 14, "losses": 5, "ties": 1, "total": 20, "winPercentage": 70 } }, "byCriterion": { "location": { "wins": 4, "losses": 1, "ties": 1, "total": 6, "winPercentage": 67 } }, "byCriterionBreakdown": [ { "criterion": "price", "overall": { "wins": 18, "losses": 9, "ties": 3, "notAddressed": 5, "total": 30, "sharePct": 65 }, "byCompetitor": { "Adidas": { "wins": 8, "losses": 5, "ties": 1, "notAddressed": 2, "total": 14, "sharePct": 61 } }, "byModel": { "Adidas": { "chatgpt": { "wins": 5, "losses": 2, "ties": 0, "notAddressed": 1, "total": 7, "sharePct": 71 }, "claude": { "wins": 1, "losses": 4, "ties": 1, "notAddressed": 0, "total": 6, "sharePct": 25 } } }, "points": { "Adidas": { "for": [ { "pointId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "summary": "Member pricing is seen as fair", "answers": 6 } ], "against": [ { "pointId": "9b2c1d4e-1111-4562-b3fc-2c963f66afa6", "summary": "Entry price reads higher than Adidas", "answers": 9 } ] } }, "overallPoints": { "for": [ { "pointId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "summary": "Entry price reads higher than the competitor's", "answers": 7 } ], "against": [ { "pointId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "summary": "Entry price reads higher than the competitor's", "answers": 7 } ] }, "answerVolume": 35, "representative": { "resultId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "model": "gpt-5", "competitor": "Adidas", "prompt": "Between Nike and Adidas, which is better on price?", "answer": "Adidas generally offers better value for money, with entry-level models more accessible than Nike's.", "reasoning": "Adidas is described as the better value at entry price across several review sites.", "citations": [ { "domain": "runrepeat.com", "count": 18 } ] } } ] }, "metadata": { "dateRange": { "start": "2026-04-25T00:00:00.000Z", "end": "2026-05-25T10:30:00.000Z" }, "totalComparisons": 42, "competitorsAnalyzed": [ "Adidas", "Puma" ], "modelsIncluded": [ "chatgpt", "claude" ] }, "availableModels": [ "gpt-interface", "gemini-interface", "perplexity" ], "reportId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"}