## Get a single evaluation item

**get** `/v5/evaluation-items/{evaluation_item_id}`

Retrieve a single evaluation item by its ID within the caller's account.

By default only non-archived items are returned; pass `include_archived=true` to
also retrieve an item that has been archived. The response merges the item's cached
task results into its `data` field and exposes a `task_errors` map keyed by task
alias, so a task that failed on this item surfaces as an entry there rather than as a
request error. Use this to inspect one item's input data and per-task results; to page
through many items, use the list endpoint instead. The request fails if no item with
the given ID exists in the caller's account.

### Path Parameters

- `evaluation_item_id: string`

### Query Parameters

- `include_archived: optional boolean`

### Returns

- `EvaluationItem object { id, created_at, created_by, 9 more }`

  - `id: string`

    The unique identifier of the entity.

  - `created_at: string`

    The date and time when the entity was created in ISO format.

  - `created_by: Identity`

    The identity that created the entity.

    - `id: string`

    - `type: "user" or "service_account"`

      - `"user"`

      - `"service_account"`

    - `object: optional "identity"`

      - `"identity"`

  - `data: map[unknown]`

  - `evaluation_id: string`

  - `archived_at: optional string`

    The date and time when the entity was archived in ISO format.

  - `dataset_item_id: optional string`

  - `dataset_item_version_num: optional number`

  - `files: optional map[string]`

  - `object: optional "evaluation.item"`

    - `"evaluation.item"`

  - `task_errors: optional map[TaskError]`

    Map of task alias to error info.

    - `message: string`

      Error message

    - `type: string`

      Error type/category

  - `task_result_statuses: optional map["completed" or "skipped" or "errored" or 2 more]`

    Per-alias task-result lifecycle status derived from `task_result_cache`. Present when at least one alias has a recorded status; `null` for legacy rows with an empty cache. Renderers use this to distinguish `prefilled` from `completed` on the wire (values themselves are already merged into `data` by `merge_task_result_cache_into_data`).

    - `"completed"`

    - `"skipped"`

    - `"errored"`

    - `"pending"`

    - `"prefilled"`

### Example

```http
curl https://api.egp.scale.com/v5/evaluation-items/$EVALUATION_ITEM_ID \
    -H "x-api-key: $SGP_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "data": {
    "foo": "bar"
  },
  "evaluation_id": "evaluation_id",
  "archived_at": "2019-12-27T18:11:19.117Z",
  "dataset_item_id": "dataset_item_id",
  "dataset_item_version_num": 0,
  "files": {
    "foo": "string"
  },
  "object": "evaluation.item",
  "task_errors": {
    "foo": {
      "message": "message",
      "type": "type"
    }
  },
  "task_result_statuses": {
    "foo": "completed"
  }
}
```
