Skip to content

Content Ideas

AI-generated content gap opportunities. Discover where competitors appear in AI responses and get actionable content recommendations.

Requires authentication
60 req/min

List Content Ideas

GET/get-content-ideas

Returns paginated content ideas ranked by opportunity score. Ideas are generated by Trakkr's analysis engine based on your prompt tracking, citation data, and competitive landscape.

Query Parameters

brand_idstringrequired

Brand UUID from /get-brands

limitinteger

Results per page (1-200)

Default: 50

offsetinteger

Pagination offset

Default: 0

statusstring

Filter by status: active, dismissed, or implemented

Idea Types

TypeDescription
prompt_gapQueries where competitors appear but your brand doesn't
citation_gapHigh-citation queries where your brand could be referenced
position_weakQueries where your brand ranks low and could improve
risingTrending topics gaining traction in AI responses
campaignMulti-piece content campaigns targeting a theme

Response Fields

Idea Object

idstring

Unique idea identifier

typestring

Idea category: prompt_gap, citation_gap, position_weak, rising, or campaign

querystring

The search query or topic this idea targets

insightstringnullable

AI-generated explanation of the opportunity

opportunity_scoreinteger

Priority score from 0-100. Higher means more impactful.

statusstring

Current status: active, dismissed, or implemented

recommended_templatestringnullable

Suggested content format (e.g. "Comparison Roundup", "How-To Guide")

competitors_appearingstring[]

Competitor brands that appear for this query

ai_modelsstring[]

AI models where this opportunity was detected

your_positionintegernullable

Your current rank for this query, or null if not appearing

created_atstring

ISO 8601 timestamp when the idea was generated

Refresh Content Ideas

POST/get-content-ideas
Rate limit: 60 requests/minute for GET. POST (refresh) is limited to 10 requests/minute.

Triggers a background regeneration of content ideas for the brand. The analysis runs asynchronously - poll GET /get-content-ideas and check meta.generation_status for progress.

Request Body

brand_idstringrequired

Brand UUID

actionstringrequired

Must be "refresh"

Refresh Request
1curl -X POST 'https://api.trakkr.ai/get-content-ideas' \
2 -H 'Authorization: Bearer $TRAKKR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 -d '{"brand_id": "75ffdeb9-0924-4ff9-8ded-c2470d73d224", "action": "refresh"}'
1{
2 "status": "generating",
3 "message": "Content ideas refresh started. Poll GET /get-content-ideas to check progress."
4}
Refresh is rate-limited to 10 requests per minute. If generation is already in progress, the endpoint returns already_generating without starting a duplicate job.

Filtering by Status

Use the status parameter to filter ideas by lifecycle stage:

  • active - Current opportunities to act on (default view)
  • dismissed - Ideas you've marked as not relevant
  • implemented - Ideas where content has been created
Without a status filter, all ideas are returned regardless of status. Use status=active to get only actionable opportunities.

Code Example

List Ideas
1curl -H 'Authorization: Bearer $TRAKKR_API_KEY' \
2 'https://api.trakkr.ai/get-content-ideas?brand_id=75ffdeb9-0924-4ff9-8ded-c2470d73d224&status=active&limit=20'
1{
2 "ideas": [
3 {
4 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
5 "type": "prompt_gap",
6 "query": "best project management tools for remote teams",
7 "insight": "Competitors appear in 4 AI models but your brand is absent",
8 "opportunity_score": 87,
9 "status": "active",
10 "recommended_template": "Comparison Roundup",
11 "competitors_appearing": ["Asana", "Monday.com", "ClickUp"],
12 "ai_models": ["ChatGPT", "Claude", "Perplexity", "Gemini"],
13 "your_position": null,
14 "created_at": "2026-03-07T08:00:00Z"
15 },
16 {
17 "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
18 "type": "citation_gap",
19 "query": "how to improve team collaboration",
20 "insight": "High citation potential with 12 source appearances",
21 "opportunity_score": 72,
22 "status": "active",
23 "recommended_template": "How-To Guide",
24 "competitors_appearing": ["Slack", "Notion"],
25 "ai_models": ["ChatGPT", "Perplexity"],
26 "your_position": 5,
27 "created_at": "2026-03-07T08:00:00Z"
28 }
29 ],
30 "pagination": {
31 "total": 24,
32 "limit": 20,
33 "offset": 0,
34 "has_more": true
35 },
36 "meta": {
37 "generated_at": "2026-03-07T08:00:00Z",
38 "generation_status": "completed",
39 "total_opportunities": 24
40 }
41}
Press ? for keyboard shortcuts