> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iqrush.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Read grounding sources — HTTP

> Find which sources support the measured brand statements.

Find which sources support the measured brand statements.

**Method:** `GET`

**Path:** `/projects/{project_id}/runs/{run_id}/grounding-sources`

Use the HTTP base for your authorized environment and an `Authorization: Bearer` header. See [authentication](/developers/guides/04-authentication) and [HTTP setup](/developers/guides/06-http-quickstart).

## Parameters

This table covers the standard read profile. It excludes internal application routes and advanced analysis controls.

| Name | Location | Type | Required | Default | Meaning |
| - | - | - | - | - | - |
| `project_id` | path | string | Yes | — | Project ID from list\_projects. Select the project in the intended workspace and environment. |
| `run_id` | path | string | Yes | — | Run ID from list\_runs for this project. Use the exact returned value and check readiness before reading measurements. |
| `brand_subset` | query | string | No | `"all"` | Select statements about self (the target brand), competitors, or all brands. Omission uses all. |
| `sentiment_filter` | query | string | No | `"any"` | Restrict grounding evidence to positive, negative, or neutral sentiment; any leaves sentiment unrestricted. |
| `aggregation_level` | query | string | No | `"domain"` | domain requests source-domain results; url requests individual-page results. Keep the same reporting unit when comparing measurements. |
| `denominator` | query | string | No | `"grounding_pool"` | Use grounding\_pool for this workflow. The handler accepts per\_source but does not change the numeric calculation; do not present it as a separately calculated rate. |
| `group_by` | query | string | No | `null` | JSON-encoded array. Platform grouping is supported on the all-brand, unrestricted-sentiment path. Requests scoped to self, competitors, or a sentiment can drop the grouping with a warning. |
| `filters` | query | string | No | `null` | JSON-encoded array. Select measured answers with objects containing dimension and values. Use labels from list\_dimension\_options; inspect returned warnings for filters that were not applied. |
| `subject` | query | string | No | `null` | Not applied by this HTTP handler in this edition. Omit; use brand\_subset for the supported brand selection. |

## Request example

Set `IQRUSH_API_BASE` and `IQRUSH_ACCESS_TOKEN` through secure configuration. Replace project/run IDs and sample selections with values returned by your account. JSON objects and arrays are encoded as query strings.

```bash theme={null}
curl --fail-with-body --silent --show-error --get \
  --header "Authorization: Bearer ${IQRUSH_ACCESS_TOKEN}" \
  --header "Accept: application/json" \
  --data-urlencode brand_subset=self \
  --data-urlencode aggregation_level=domain \
  --data-urlencode denominator=grounding_pool \
  "${IQRUSH_API_BASE%/}/projects/${IQRUSH_PROJECT_ID}/runs/${IQRUSH_RUN_ID}/grounding-sources"
```

## Read the response

Measurement rows contain source domains or URLs and estimates for the requested brand and sentiment scope. Keep the selected scope with the result.

Use grounding\_pool in this edition. Although per\_source is accepted, the reviewed handler only changes the denominator label; it does not calculate a separate per-source rate. Do not label these values as overall citation coverage. HTTP subject is also not applied by this handler.

### Fields to use

These selected fields explain the example and the result to preserve. Field presence depends on the response; this is not a complete response schema.

| Field | Meaning and use |
| - | - |
| `data.brand_subset` | Brand scope used for the returned source rows. |
| `data.aggregation_level` | Requested source reporting unit; verify the returned source keys. |
| `data.denominator` | Accepted label. In this edition, changing it does not calculate a different numeric rate. |
| `data.rows[].domain_or_url` | Source associated with the returned grounding result. |
| `data.rows[].estimate` | Source estimate and uncertainty for the selected scope. This is not the citation-coverage endpoint’s estimate. |

Selected response fields from IQRush Dev. Lists are shortened and project/run IDs are placeholders; this is not the full response.

```json theme={null}
{
  "data_ready": true,
  "data": {
    "aggregation_level": "domain",
    "denominator": "grounding_pool",
    "brand_subset": "self",
    "rows": [
      {
        "domain_or_url": "allure.com",
        "group_by_values": {},
        "estimate": {
          "value": 1.1,
          "ci": {
            "lower": 0.3,
            "upper": 4,
            "level": 0.95
          },
          "n": 2,
          "stability": "insufficient",
          "stability_n": 2
        }
      }
    ]
  }
}
```

Read the actual returned scope, counts, and interval levels before interpreting these fields.

MCP equivalent: [`get_grounding_sources`](/developers/tools/get_grounding_sources). Use the parameters and defaults on this page for HTTP.

## If the result is unavailable

Check HTTP status and the response’s `error` field before using data. A successful empty response does not establish a zero value. Preserve `not_available`, `not_available_reason`, `unavailable_reason`, and `linked` where returned. [Errors and recovery](/developers/guides/13-errors) shows observed examples.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.