> ## 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 technical page features — HTTP

> Retrieve recorded features for a page in the selected measurement.

Retrieve recorded features for a page in the selected measurement.

**Method:** `GET`

**Path:** `/projects/{project_id}/runs/{run_id}/technical-features`

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. |
| `url` | query | string | Yes | — | Page URL or domain to inspect among this run’s captured pages. Verify matched\_url before attributing the features to a page. |
| `feature_group` | query | string | No | `null` | Case-insensitive substring filter on feature\_key in this edition; it does not select the nullable feature\_group response field. |

## 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 url=https://www.colorescience.com/collections/mineral-sunscreens \
  "${IQRUSH_API_BASE%/}/projects/${IQRUSH_PROJECT_ID}/runs/${IQRUSH_RUN_ID}/technical-features"
```

## Read the response

Read `data.matched_url`, `features`, and any `url_segments`. Feature rows include `feature_key`, `value`, nullable score/group fields, and `run_spread` when available.

These are observed features, not proven optimization targets. `feature_group` matches feature-key text. `feature_domain` is not applied by the HTTP route in this edition.

### 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.url_queried` | URL or domain submitted by the caller. |
| `data.matched_url` | Captured page actually matched. Confirm this before attributing its features to a requested URL. |
| `data.n_features` | Number of feature rows returned after the optional filter. |
| `data.features[].feature_key` | Feature identifier supplied by the captured page record. |
| `data.features[].value` | Observed feature value; its meaning depends on feature\_key. It is not automatically a quality score. |
| `data.features[].normalized_score` | Unpopulated in this edition. Do not treat null as a zero score. |
| `data.features[].feature_group` | Unpopulated in this edition; the request’s feature\_group filter searches feature\_key instead. |

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": {
    "url_queried": "https://www.colorescience.com/collections/mineral-sunscreens",
    "matched_url": "https://www.colorescience.com/collections/mineral-sunscreens",
    "n_features": 16,
    "features": [
      {
        "feature_key": "titleTag",
        "display_name": "titleTag",
        "value": 1,
        "normalized_score": null,
        "feature_group": null,
        "feature_domain": null
      }
    ]
  }
}
```

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

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