> ## 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.

# Compare one domain — HTTP

> Compare one domain’s citation share or count across two runs or two conditions.

Compare one domain’s citation share or count across two runs or two conditions.

**Method:** `GET`

**Path:** `/projects/{project_id}/runs/{run_id}/paired-contrast`

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 for a within-run comparison. For the documented cross-run request, set it to run\_id\_b and also supply run\_id\_a and run\_id\_b. |
| `score_family` | query | string | No | `"citation"` | Use citation; other score families are not supported by this operation in this edition. |
| `metric` | query | string | No | `"share"` | share compares citation share; count compares citation counts. Only the citation family is supported. |
| `entity_or_domain` | query | string | Yes | — | Bare cited domain to compare. This operation supports citation analysis; a brand name or full page URL is not a substitute for the domain. |
| `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. |
| `group_by` | query | string | No | `null` | JSON-encoded array. Split results into rows by the requested dimensions. Check both filters\_applied.group\_by and each row’s group\_by\_values before labeling the groups. |
| `condition_a` | query | string | No | `null` | JSON-encoded object. First within-run selection, using measured platform, topic, intent, or prompt\_type values. |
| `condition_b` | query | string | No | `null` | JSON-encoded object. Second within-run selection, using the same condition format as condition\_a. Use run\_id\_a and run\_id\_b instead for a cross-run comparison. |
| `run_id_a` | query | string | No | `null` | Reference run from the selected project. Supply together with run\_id\_b for a cross-run comparison. |
| `run_id_b` | query | string | No | `null` | Checkpoint run from the selected project. The reported difference is B minus A. |

## 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.

Set `IQRUSH_OLDER_RUN_ID` to the earlier run and `IQRUSH_RUN_ID` to the later run. Both runs must belong to the selected project.

```bash theme={null}
curl --fail-with-body --silent --show-error --get \
  --header "Authorization: Bearer ${IQRUSH_ACCESS_TOKEN}" \
  --header "Accept: application/json" \
  --data-urlencode score_family=citation \
  --data-urlencode metric=share \
  --data-urlencode entity_or_domain=colorescience.com \
  --data-urlencode "run_id_a=${IQRUSH_OLDER_RUN_ID}" \
  --data-urlencode "run_id_b=${IQRUSH_RUN_ID}" \
  "${IQRUSH_API_BASE%/}/projects/${IQRUSH_PROJECT_ID}/runs/${IQRUSH_RUN_ID}/paired-contrast"
```

## Read the response

Read `data.contrast.value_a`, `value_b`, `diff`, `ci_diff`, `significant`, and `correction`. `diff` is B minus A.

Only domain-level citation share/count is supported. For cross-run calls set `run_id` to `run_id_b`; for within-run calls use condition objects. Null difference fields mean the comparison is unavailable. Encode a filter array as a JSON string for this tool.

### 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.entity_or_domain` | Domain being compared. |
| `data.contrast.value_a` | Value for condition A or run A. |
| `data.contrast.value_b` | Value for condition B or run B. |
| `data.contrast.diff` | B minus A, in the selected metric’s scale. |
| `data.contrast.ci_diff` | Lower bound, upper bound, and confidence level for the difference. |
| `data.contrast.significant` | Returned significance result; retain it with the difference interval. |

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": {
    "score_family": "citation",
    "metric": "share",
    "entity_or_domain": "colorescience.com",
    "contrast": {
      "value_a": 0.0335164004223577,
      "value_b": 0.026726239624239412,
      "diff": -0.006790160798118287,
      "ci_diff": {
        "lower": -0.019421924882329574,
        "upper": 0.00255965226798446,
        "level": 0.95
      },
      "significant": false
    }
  }
}
```

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

MCP equivalent: [`get_paired_contrast`](/developers/tools/get_paired_contrast). 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.