Visibility

Answer a diagnostic question in one call

Changed on

Runs a whole multi-read chain server-side and in parallel, returning the measurements together instead of requiring five or six requests. question=visibility_drop (score trend + which engines moved vs the previous period + share-of-voice shift + weakest topics), competitive_position (standing with ranks and deltas + the topics where a rival leads), or citation_gap (citation trend + the domains AI answers cite + per-engine citation share). Returns measurements only, plus an interpretation list of what they cannot settle — it never names a cause. A signal whose upstream failed appears in unavailable with a reason rather than as a zero.

get/api/mcp/projects/{projectId}/investigate

Request

  • Base URL
    https://app.searchable.com
  • Auth
    HTTP bearer

Path parameters

projectIdstring uuid required

The project id.

Query parameters

question'visibility_drop' | 'competitive_position' | 'citation_gap'

Which investigation to run (default visibility_drop)

daysinteger

Lookback window in days. Default and maximum vary by endpoint — see the operation description.

fromstring
Example:2026-03-01

Start of an absolute window (inclusive, UTC). Accepts YYYY-MM-DD or a full ISO timestamp. Requires to, and is mutually exclusive with days — sending both returns 400 invalid_argument. A range longer than the endpoint's maximum is rejected rather than clamped.

tostring
Example:2026-03-31

End of an absolute window (inclusive, UTC). Accepts YYYY-MM-DD or a full ISO timestamp. Requires from.

platformstring

Comma-separated AI platform filter (e.g. chatgpt,claude,gemini). Accepted values and whether the param is required vary by endpoint — see the operation description.

topicIdstring uuid

Restrict to a single topic id.

unbranded'true'

Pass true to restrict every metric to non-branded prompts only.

branded'true'

Pass true to restrict every metric to branded prompts only.

countrystring

Comma-separated ISO 3166-1 country codes (e.g. US,GB) or country names.

locationIdstring

Comma-separated tracked-location ids.

Response

The investigation's measured signals.

question'visibility_drop' | 'competitive_position' | 'citation_gap' required
signalsobject required

Measured quantities for this question. Keys vary by question; a signal that could not be measured is absent here and listed in unavailable instead — never present as a zero.

interpretationstring[] required

What the reader must still decide — present so the arithmetic above is not mistaken for an explanation.

Changes