Skip to content

Opportunities

Find gaps where your brand should be appearing but isn't. Identify citation opportunities.

Code example

Request
curl -X GET 'https://api.trakkr.ai/get-opportunities?brand_id=00000000-0000-4000-8000-81f286d10c3c&limit=50' \
  -H "Authorization: Bearer $TRAKKR_API_KEY"
Response · 200 OK
{
  "opportunities": [
    {
      "result_id": "Synthetic sample",
      "prompt_text": "Synthetic sample",
      "llm": "Synthetic sample",
      "date": "2026-01-08",
      "competitors": [
        {
          "name": "Sample workspace",
          "position": 0
        }
      ],
      "opportunity_type": "Synthetic sample",
      "priority": "Synthetic sample",
      "reason": "Synthetic sample"
    }
  ],
  "summary": {
    "total_opportunities": 0,
    "not_mentioned_count": 0,
    "uncited_count": 0,
    "low_position_count": 0
  },
  "brand": {},
  "suggestion_total": 0
}

Synthetic example. Values are made up.

API key required

60 req/min

Endpoint

GET/get-opportunities

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

Request parameters

brand_idstringqueryRequired

Brand UUID

Format: uuid

daysinteger | nullqueryOptional

Optional. Only return opportunities first found in the last N days. Omit for the brand's current opportunity set, which is what the app shows.

Minimum: 1 · Maximum: 365

limitintegerqueryOptional

Max opportunities to return

Default: 50 · Minimum: 1 · Maximum: 200

Responses and errors
200Successful Response

application/json

opportunitiesobject[]Required

Fields in opportunities

Array of object.

result_idstringRequired

prompt_textstringRequired

llmstringRequired

datestringRequired

competitorsobject[]Required

Fields in competitors

Array of object.

namestringRequired

positionintegerRequired

opportunity_typestringRequired

prioritystringRequired

reasonstringRequired

summaryobjectRequired

Opportunities summary.

Fields in summary

total_opportunitiesintegerRequired

not_mentioned_countintegerRequired

uncited_countintegerRequired

low_position_countintegerRequired

period_daysinteger | nullOptional

brandobjectRequired

notestring | nullOptional

suggestionsobject[]Optional

Fields in suggestions

Array of object.

opportunity_idstringRequired

titlestringRequired

statusstringRequired

familystringRequired

action_typestring | nullOptional

descriptionstring | nullOptional

detailstring | nullOptional

first_stepstring | nullOptional

impactstringRequired

effortstringRequired

sourcestring | nullOptional

deep_linkstringRequired

suggestion_totalintegerOptional

Default: 0

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

OpenAPI source

Returns current citation outreach targets in opportunities and saved recommendations in suggestions. This read does not accept or start work. Omit days to include the current set of targets. When supplied, daysfilters only targets first found in that window, from 1 to 365 days. It does not filter saved suggestions. suggestion_total counts the current saved set.

Try GET /get-opportunities

Using the response

Citation targets are ordered by fit. Read the prompt and competitor evidence before choosing where to act. Saved suggestions have their own IDs and decision flow.

After approval, use /commit-opportunity for a suggestion ID. See Suggestions, results and pages for the request contract.

Use Cases

  • Identify which prompts to focus content efforts on
  • Find citation opportunities for SEO
  • Review the current targets alongside saved suggestions
  • Prioritize marketing efforts by impact