Strategic situation per prompt
Reads every prompt of the scope as a position rather than as a pair of rates. Each prompt lands in exactly one of five situations, from its ad pressure, the analysed brand's organic visibility, and whether a tracked competitor leads its advertising: contested stronghold, quiet stronghold, rival-owned, open monetised, or unclaimed. Prompts that drew no ads are kept rather than filtered out — they are the unclaimed quadrant, the cheapest positions there are, and dropping them would hide exactly the ones worth entering early. Each situation carries a posture split (defend / attack / open ground) summing to 100, which is the share of a campaign's context-hint budget that kind of prompt deserves. The summary rolls the same split up over the whole scope, for a campaign covering all of it. Ownership is resolved live from the current brand and competitor configuration, so editing competitors relabels history.
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 situations and postures
application/json- response
prompts*array<>summary*total*numberPrompts that ran in the window. Greater than prompts.length when the list was capped.
curl -X GET 'https://api.getmint.ai/api/domains/3fa85f64-5717-4562-b3fc-2c963f66afa6/ads/situations'{ "prompts": [ { "promptId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "prompt": "best running shoes for flat feet", "situation": "rival-owned", "dominantPosture": "attack", "postures": { "attack": 25, "defend": 60, "openGround": 15 }, "adRate": 71.43, "visibilityRate": 12.5, "yourAdRate": 0, "totalAds": 34, "uniqueAdvertisers": 7, "topAdvertiserName": "Adidas", "topAdvertiserOwnership": "competitor" } ], "summary": { "prompts": 33, "bySituation": { "contested-stronghold": 4, "open-monetised": 9, "quiet-stronghold": 3, "rival-owned": 11, "unclaimed": 6 }, "postures": { "attack": 25, "defend": 60, "openGround": 15 }, "dominantPosture": "attack" }, "total": 297}