Documentation Index
Fetch the complete documentation index at: https://docs.neariq.io/llms.txt
Use this file to discover all available pages before exploring further.
Gap Analysis returns a consultant-style summary of the active business’s biggest competitive opportunities, using data NearIQ already tracks.
This endpoint is available on Growth and higher plans.
Endpoint
GET /api/businesses/me/gap-analysis
Query parameters
| Parameter | Type | Notes |
|---|
refresh | boolean | Optional. Set to true to regenerate instead of using the 24-hour cache. |
Response
{
"connected": true,
"cached": false,
"generatedAt": "2026-05-01T00:00:00.000Z",
"expiresAt": "2026-05-02T00:00:00.000Z",
"overallScore": 58,
"summary": "Your biggest gap is review volume against the market leader.",
"gaps": [
{
"category": "reviews",
"severity": "high",
"title": "Review volume gap",
"finding": "You have 45 reviews. Tracked competitors average 180.",
"action": "Ask recent happy customers for reviews and make it part of the post-visit workflow.",
"impact": "high",
"effort": "medium",
"dataPoints": { "yours": 45, "competitorAvg": 180, "marketLeader": 312 }
}
],
"strengths": [
{
"category": "reputation",
"title": "Strong rating position",
"detail": "Your 4.8 rating is above the tracked competitor average."
}
],
"prioritizedActions": [
{ "rank": 1, "action": "Reply to unanswered reviews", "time": "10-20 min", "impact": "high" }
],
"dataCoverage": {
"competitors": 5,
"snapshots": true,
"reviews": true,
"products": true,
"citations": true,
"rank": true,
"aiVisibility": true,
"listingInsights": true
}
}
Errors
| Status | Code | Notes |
|---|
401 | Unauthorized | The request is not authenticated. |
403 | plan_required | The active account is below Growth. |
500 | Failed to load gap analysis | The analysis could not be loaded. |
Notes
- Results are scoped to the authenticated user’s active accessible business.
- Organization members only receive data for businesses available through their active organization membership.
- Analysis is cached for 24 hours per business. Use
refresh=true only after meaningful data changes or explicit user action.