---
title: "Get Run Host Sources"
method: GET
path: "/api/v1/geo/experiments/{experiment_id}/sources/detail"
tags: ["geo-monitoring", "geo-dashboard"]
---

# Get Run Host Sources

`GET /api/v1/geo/experiments/{experiment_id}/sources/detail`

## Request

- Base URL: `https://api.getanana.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getanana.com/api/v1/geo/experiments/{experiment_id}/sources/detail`
- Auth: none declared

Deduplicated source destinations for one normalized host within one contributing run.

Lazily backs the Sources matrix's per-host expansion. Destinations are deduplicated by
``url_digest``: identical real URLs collapse into one entry carrying the assistants that
cited it and each assistant's ``COUNT(DISTINCT geo_prompt_result_id)`` (same grain as
the parent matrix cell — the per-run counts here intentionally do NOT reconcile with the
period-level parent). Gemini rows are matched by their reconstructed host (from
``provider_title``, via the shared ``_gemini_reconstructed_host_expr``) so a host reached
via a real URL and/or a Gemini label resolves in one read; their opaque redirect ``url``
is returned for the ``Open`` href only, and different redirects stay separate destinations
even when they reconstruct to the same host.

## Path parameters

- `experiment_id` string, uuid, required

## Query parameters

- `run_id` string, uuid, required
- `host` string, required

## Response `200`

Successful Response

- RunHostSourcesResponse: Deduplicated source destinations for one host within one contributing run. Scoped to a single (run_id, host); intentionally at a finer grain than the parent period-level matrix cell, so per-run destination counts do not reconcile with the period aggregate.
  - `run_id` string, uuid, required
  - `host` string, required
  - `destinations` RunHostDestination[]
    - `url` string, required
    - `is_provider_redirect` boolean
    - `assistants` RunHostDestinationAssistant[]
      - `platform_id` string, uuid, required
      - `platform_name` string, required
      - `n` integer, required

## Other responses

- `404`: Experiment not found
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Operation history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/geo/experiments/:experiment_id/sources/detail/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4d9d38769a75?raw)
