## Get a single evaluation item

`client.EvaluationItems.Get(ctx, evaluationItemID, query) (*EvaluationItem, error)`

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

### Parameters

- `evaluationItemID string`

- `query EvaluationItemGetParams`

  - `IncludeArchived param.Field[bool]`

### Returns

- `type EvaluationItem struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `CreatedAt Time`

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

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `Data map[string, any]`

  - `EvaluationID string`

  - `ArchivedAt Time`

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

  - `DatasetItemID string`

  - `DatasetItemVersionNum int64`

  - `Files map[string, string]`

  - `Object EvaluationItemObject`

    - `const EvaluationItemObjectEvaluationItem EvaluationItemObject = "evaluation.item"`

  - `TaskErrors map[string, TaskError]`

    Map of task alias to error info.

    - `Message string`

      Error message

    - `Type string`

      Error type/category

  - `TaskResultStatuses map[string, string]`

    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`).

    - `const EvaluationItemTaskResultStatusCompleted EvaluationItemTaskResultStatus = "completed"`

    - `const EvaluationItemTaskResultStatusSkipped EvaluationItemTaskResultStatus = "skipped"`

    - `const EvaluationItemTaskResultStatusErrored EvaluationItemTaskResultStatus = "errored"`

    - `const EvaluationItemTaskResultStatusPending EvaluationItemTaskResultStatus = "pending"`

    - `const EvaluationItemTaskResultStatusPrefilled EvaluationItemTaskResultStatus = "prefilled"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  evaluationItem, err := client.EvaluationItems.Get(
    context.TODO(),
    "evaluation_item_id",
    sgpdev.EvaluationItemGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", evaluationItem.ID)
}
```

#### 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"
  }
}
```
