# List trace scores produced by an observer.

Source: <https://everruns.com/docs/api/operations/list_observer_scores/>

GET

/v1/observers/{observer\_id}/scores

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/observers/example/scores';
const options = {method: 'GET'};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request GET \
  --url https://app.everruns.com/api/v1/observers/example/scores
```

* Production APIapp.everruns.com/api/v1/observers/{observer\_id}/scores

## Parameters

### Path Parameters

**observer\_id**

required

string

Prefixed public identifier

### Query Parameters

**session\_id**

string

Filter to one session.

**limit**

integer format: int64

Maximum number of scores returned (default 100).

**offset**

integer format: int64

Zero-based offset into the result set.

## Responses

### 200

Success

Media typeapplication/json

Response wrapper for list endpoints. All list endpoints return responses wrapped in a `data` field.

object

**data**

required

Array of items returned by the list operation.

Array\<object>

One score produced by an observer scorer for one trace slice. Linked back to the exact session/turn it graded; agent/harness identifiers are denormalized at scoring time for aggregation.

object

**agent\_id**

Agent active in the session at scoring time.

string | null

**created\_at**

required

string format: date-time

**error\_message**

Error details if errored.

string | null

**harness\_id**

Harness of the session.

string | null

**id**

required

External identifier (score\_<32-hex>). Shown as “id” in API.

string

**judge\_cost\_usd**

Judge call cost in USD when the provider reports it (llm\_judge only).

number | null format: double

**judge\_input\_tokens**

Judge LLM input tokens (llm\_judge scores only).

integer | null format: int64

**judge\_output\_tokens**

Judge LLM output tokens (llm\_judge scores only).

integer | null format: int64

**label**

Optional categorical label from an LLM judge (e.g. `missing_source`).

string | null

**observer\_id**

required

Observer that produced this score.

string

**pass**

Whether the scorer passed (set when completed).

boolean | null

**reason**

Human-readable explanation (set when completed). For LLM judges this is the judge’s reasoning — retained as the raw material for the Phase 2 improvement loop.

string | null

**scorer\_key**

required

Scorer key within the observer.

string

**session\_id**

required

Session this score grades.

string

**status**

required

Lifecycle of one trace score. `pending` rows double as the scoring queue.

string

Allowed values: pending scoring completed errored skipped

**turn\_id**

required

Turn this score grades (turn scope).

string

**updated\_at**

required

string format: date-time

**value**

Score value 0.0–1.0 (set when completed).

number | null format: double

##### Example

```json
{
  "data": [
    {
      "id": "score_01933b5a000070008000000000000001",
      "observer_id": "observer_01933b5a000070008000000000000001",
      "scorer_key": "grounded",
      "session_id": "session_01933b5a000070008000000000000001",
      "status": "pending",
      "value": 0.85
    }
  ]
}
```