Skip to main content
An intent is a user goal that an AI assistant might be asked to recommend an app for. Each intent powers one row in the dashboard table — visibility %, sentiment, average position, top apps shown for it. Intents are generated for you when you call bootstrap, but you can also add, rename, pause, or archive them at any time. Adding your own intents (e.g. “Help me journal in Turkish”) is the way to expand AI Visibility coverage beyond what the LLM proposed. This page covers all intent endpoints:

List intents with metrics

The data shown in the Intent Performance table on the dashboard.

Query parameters

Response


Drill into one intent

Returns the same fields as the row above plus the prompts under that intent and the most recent AI answers for each prompt.

Query parameters

Response (truncated)

The prompts[].latestAnswers[].apps list is ordered by position. apps[].trackId is null when the assistant mentioned an app we couldn’t confidently match against the App Store (very rare brands or a misspelling). For the raw model output and parsed sentiment per app, use GET /answers/:answerId with the answerId returned here.

Add an intent manually

Useful when:
  • The LLM bootstrap missed something (e.g. a niche use case).
  • You’re launching a new feature and want to start tracking visibility for it before the first scan.
  • You want to track a specific competitor angle (“Apps similar to Calm”).
After insertion, generate prompts for it via POST /intents/:intentId/prompts — until at least one active prompt exists, the intent won’t be scanned.

Body

Response

fingerprint is a content hash. Re-posting the same label is safe — it returns the existing intent rather than creating a duplicate.

Update / pause / archive

All three fields are optional. Use status: "paused" to keep the intent and its prompts visible but stop sending them to the AI models in the next scan. Use status: "archived" (or DELETE) to hide it everywhere.

Delete (archive)

Soft-archive — the intent and its prompts/answers remain in the database but won’t show up in list endpoints or be sent in future scans. Equivalent to PATCH { status: "archived" }.

Code examples


Credits


Errors


See also

  • Prompts — manage the queries each intent sends to the assistants
  • Answers — drill into a single AI response
  • Bootstrap — initial intent generation