Reports
Generate and retrieve AI visibility intelligence reports. Reports include metrics, competitive analysis, wins/losses, and strategic recommendations.
Code example
curl -X GET 'https://api.trakkr.ai/get-reports?brand_id=00000000-0000-4000-8000-81f286d10c3c&days=30&limit=20&offset=0' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"reports": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"brand_id": "00000000-0000-4000-8000-81f286d10c3c",
"report_type": "executive",
"report_name": null,
"time_range": "7d",
"status": "completed",
"file_url": "https://api.trakkr.ai/get-reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/download",
"file_size_bytes": 245000,
"page_count": 8,
"error_message": null,
"created_at": "2026-03-07T10:30:00Z",
"expires_at": "2026-04-06T10:30:00Z"
}
],
"pagination": {
"total": 5,
"limit": 20,
"offset": 0,
"has_more": false
}
}Synthetic example. Values are made up.
API key required
60 req/minList Reports
/get-reportsAuthenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide
Request parameters
brand_idstring | nullqueryOptional
Brand UUID (required for listing)
Format: uuid
report_idstring | nullqueryOptional
Report UUID (for single report detail)
report_typestring | nullqueryOptional
Filter by report type
statusstring | nullqueryOptional
Filter by status
viewstring | nullqueryOptional
View mode: list (default), results, sentiment, mentions_time_series
daysintegerqueryOptional
Historical period (for sentiment and mentions views)
Default: 30 · Minimum: 7 · Maximum: 365
limitintegerqueryOptional
Results per page
Default: 20 · Minimum: 1 · Maximum: 100
offsetintegerqueryOptional
Pagination offset
Default: 0 · Minimum: 0
Responses and errors
200Successful Response
application/json
ReportsListPublicResponse
reportsobject[]Required
Fields in reports
Array of object.
idstringRequired
brand_idstringRequired
report_typestringRequired
report_namestring | nullOptional
time_rangestringOptional
Default: "7d"
statusstringOptional
Default: "pending"
file_urlstring | nullOptional
file_size_bytesinteger | nullOptional
page_countinteger | nullOptional
error_messagestring | nullOptional
created_atstringRequired
expires_atstring | nullOptional
paginationobjectRequired
Pagination metadata.
Fields in pagination
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
ReportSinglePublicResponse
reportobjectRequired
Single report with full data snapshot.
Fields in report
idstringRequired
brand_idstringRequired
report_typestringRequired
report_namestring | nullOptional
time_rangestringOptional
Default: "7d"
statusstringOptional
Default: "pending"
file_urlstring | nullOptional
file_size_bytesinteger | nullOptional
page_countinteger | nullOptional
error_messagestring | nullOptional
created_atstringRequired
expires_atstring | nullOptional
report_dataobject | nullOptional
ReportResultsResponse
report_idstringRequired
brand_idstringRequired
datestringRequired
visibilitynumberRequired
presencenumberRequired
average_ranknumber | nullOptional
model_scoresobject[]Required
Fields in model_scores
Array of object.
modelstringRequired
visibilitynumberRequired
presencenumberRequired
mentionsintegerOptional
Default: 0
prompt_scoresobject[]Required
Fields in prompt_scores
Array of object.
prompt_textstringRequired
visibilitynumberRequired
presencenumberRequired
average_ranknumber | nullOptional
ReportSentimentResponse
brandobjectRequired
distributionobjectRequired
Fields in distribution
positiveintegerOptional
Default: 0
neutralintegerOptional
Default: 0
negativeintegerOptional
Default: 0
mixedintegerOptional
Default: 0
trendobject[]Required
Fields in trend
Array of object.
datestringRequired
avg_sentimentnumber | nullOptional
period_daysintegerRequired
ReportMentionsResponse
brandobjectRequired
time_seriesobject[]Required
Fields in time_series
Array of object.
datestringRequired
mentionsintegerRequired
models_mentionedintegerOptional
Default: 0
period_daysintegerRequired
401Missing, malformed, or expired credentials
application/json
detailstring | object | nullOptional
errorstring | nullOptional
402The current plan does not fund this operation
application/json
detailstring | object | nullOptional
errorstring | nullOptional
403Invalid credentials, missing brand access, or insufficient role
application/json
detailstring | object | nullOptional
errorstring | nullOptional
422Validation Error
application/json
detailobject[]Optional
Fields in detail
Array of object.
locstring | integer[]Required
Fields in loc
Array of string | integer.
string
string.
integer
integer.
msgstringRequired
typestringRequired
429Rate limit exceeded
application/json
detailstring | object | nullOptional
errorstring | nullOptional
500The operation failed
application/json
detailstring | object | nullOptional
errorstring | nullOptional
503Authentication, entitlement, or a required dependency is temporarily unavailable
application/json
detailstring | object | nullOptional
errorstring | nullOptional
Returns paginated reports for a brand, ordered by creation date (newest first). Use report_id to fetch a single report with its full data snapshot.
Report views
view=list lists reports or returns one report when report_id is supplied. Use view=results with report_id for a prompt and model breakdown.view=sentiment and view=mentions_time_series return brand history. For those two history views, days defaults to 30 and accepts 7 to 365.
curl -X GET 'https://api.trakkr.ai/get-reports?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=sentiment&days=30&limit=20&offset=0' \
-H "Authorization: Bearer $TRAKKR_API_KEY"Get Report Detail
When report_id is provided, returns a single report including the full report_data snapshot with metrics, competitive analysis, and recommendations.
curl -X GET 'https://api.trakkr.ai/get-reports?report_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890&days=30&limit=20&offset=0' \
-H "Authorization: Bearer $TRAKKR_API_KEY"report_data field is only included in single-report responses. List responses omit it to keep payloads small.Download Report PDF
/get-reports/{report_id}/downloadAuthenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide
Request parameters
report_idstringpathRequired
Responses and errors
200PDF report
application/pdf
string. Format: binary
401Missing, malformed, or expired credentials
application/json
detailstring | object | nullOptional
errorstring | nullOptional
402The current plan does not fund this operation
application/json
detailstring | object | nullOptional
errorstring | nullOptional
403Invalid credentials, missing brand access, or insufficient role
application/json
detailstring | object | nullOptional
errorstring | nullOptional
422Validation Error
application/json
detailobject[]Optional
Fields in detail
Array of object.
locstring | integer[]Required
Fields in loc
Array of string | integer.
string
string.
integer
integer.
msgstringRequired
typestringRequired
429Rate limit exceeded
application/json
detailstring | object | nullOptional
errorstring | nullOptional
500The operation failed
application/json
detailstring | object | nullOptional
errorstring | nullOptional
503Authentication, entitlement, or a required dependency is temporarily unavailable
application/json
detailstring | object | nullOptional
errorstring | nullOptional
Downloads PDF bytes directly. This endpoint checks the API key and current brand access on every request, so command-line and server clients do not need JavaScript or a browser URL fragment.
curl --fail -o 'trakkr-report.pdf' -X GET 'https://api.trakkr.ai/get-reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/download' \
-H "Authorization: Bearer $TRAKKR_API_KEY"file_url and generation responsedownload_url point to this binary endpoint. Send the same API key on the download request. The URL is not a bearer link.Generate Report
/get-reportsAuthenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide
JSON request body (required)
brand_idstringRequired
Format: uuid
report_typestringOptional
Default: "executive" · Options: "executive", "weekly", "full"
time_rangestringOptional
Default: "7d" · Options: "7d", "14d", "30d"
Responses and errors
200Successful Response
application/json
report_idstringRequired
statusstringRequired
download_urlstring | nullOptional
errorstring | nullOptional
401Missing, malformed, or expired credentials
application/json
detailstring | object | nullOptional
errorstring | nullOptional
402The current plan does not fund this operation
application/json
detailstring | object | nullOptional
errorstring | nullOptional
403Invalid credentials, missing brand access, or insufficient role
application/json
detailstring | object | nullOptional
errorstring | nullOptional
422Validation Error
application/json
detailobject[]Optional
Fields in detail
Array of object.
locstring | integer[]Required
Fields in loc
Array of string | integer.
string
string.
integer
integer.
msgstringRequired
typestringRequired
429Rate limit exceeded
application/json
detailstring | object | nullOptional
errorstring | nullOptional
500The operation failed
application/json
detailstring | object | nullOptional
errorstring | nullOptional
503Authentication, entitlement, or a required dependency is temporarily unavailable
application/json
detailstring | object | nullOptional
errorstring | nullOptional
Generates a new AI intelligence report for the brand. The report is created synchronously and includes visibility metrics, competitive analysis, wins/losses, and AI-generated strategic recommendations.
curl -X POST 'https://api.trakkr.ai/get-reports' \
-H "Authorization: Bearer $TRAKKR_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"brand_id":"00000000-0000-4000-8000-81f286d10c3c","report_type":"executive","time_range":"7d"}'{
"report_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"download_url": "https://api.trakkr.ai/get-reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/download"
}Synthetic example. Values are made up.
Report Types
| Type | Description |
|---|---|
executive | Concise executive summary with key metrics and actions |
weekly | Weekly performance review with trend analysis |
full | Comprehensive report with all sections and detailed data |
