Ad rate per prompt
Ad rate for each prompt that ran in the window, how many distinct advertisers contested it, and the advertiser that rendered the most ad cards on it. This is the single call behind "unique advertisers per prompt" — one advertiser counts once per prompt, so the column sums above the domain-wide count on the overview. Prompts that drew no ads are included with a zero rate, zero advertisers and no top advertiser. Ordered by absolute ad volume, NOT by ad rate — a rate ranking would put a prompt that ran twice and drew one ad above one that ran 400 times and drew 120. `total` reports how many prompts ran in the window, so a truncated list is distinguishable from the whole set; page past the cap with `page`/`limit`. Each row also carries the analysed brand's own ads on that prompt, so a prompt that draws ads but never yours is visible as a gap rather than as silence, and the ads assignment status set on the prompt itself. That status is customer-owned and reported verbatim: it is never inferred from the ad counts on the row.
AuthorizationBearer <token>Session JWT signed with HS256. Verification pins the algorithm and rejects expired tokens, per RFC8725.
domainId*stringDomain under analysis
startDate?stringStart date for the report range (ISO 8601). On aggregated endpoints, omit to default to the last 6 months (there is no "all time"); an explicit start is honoured at any length.
endDate?stringEnd date for the report range (ISO 8601). Defaults to now when omitted.
models?array<string>Filter by specific models
topicId?stringFilter by specific topic ID
promptId?stringFilter raw results to a single prompt ID. Used by the sentiment heatmap drawer to lazy-load one cell's LLM response instead of bundling all responses in the aggregate.
includeVariation?booleanInclude variation calculation comparing to previous period
truepage?numberPage number for paginated responses
1 <= value1limit?numberPrompts per page. Defaults to the cap, so one call covers most domains.
1 <= value <= 200200marketLanguageCodePairId?stringFilter by specific market/language pair ID
tagIds?array<string>Filter by tag IDs (visibility_result joined with prompt_tag)
offset?numberRow offset for pagination
0 <= value0Per-prompt ad rates
application/json- response
prompts*array<>total*numberPrompts that ran in the window. Greater than prompts.length when the list was capped — the returned rows are then the most ad-bearing ones, not the whole set.
curl -X GET 'https://api.getmint.ai/api/domains/3fa85f64-5717-4562-b3fc-2c963f66afa6/ads/prompts'{ "prompts": [ { "executions": 4820, "executionsWithAds": 386, "totalAds": 1174, "adRate": 8.01, "promptId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "prompt": "best running shoes for flat feet", "uniqueAdvertisers": 7, "topAdvertiserKey": "nike.com", "topAdvertiserName": "Nike", "topAdvertiserAdCount": 34, "yourAds": 0, "yourAdRate": 0, "visibilityRate": 12.5 } ], "total": 297}