## List Extract Review Events

`ReviewListEventsPageResponse Extract.Review.ListEvents(ReviewListEventsParamsparameters, CancellationTokencancellationToken = default)`

**get** `/api/v2/extract/{job_id}/review/events`

Beta: answers 403 until extract review is enabled for the caller and their organization.

List a review's history, newest first.

### Parameters

- `ReviewListEventsParams parameters`

  - `required string jobID`

  - `string? organizationID`

  - `Long pageSize`

    Events per page.

  - `string? pageToken`

    Token from the previous page.

  - `string? projectID`

### Returns

- `class ReviewListEventsPageResponse:`

  A page of a review's history, newest first.

  - `required IReadOnlyList<ExtractReviewEvent> Items`

    The list of items.

    - `required string ID`

      Unique identifier of the entry.

    - `required string ActorID`

      ID of the user who acted.

    - `required DateTimeOffset CreatedAt`

      When it happened.

    - `required Kind Kind`

      What happened.

      - `"approved"Approved`

      - `"created"Created`

      - `"field_cleared"FieldCleared`

      - `"field_confirmed"FieldConfirmed`

      - `"field_corrected"FieldCorrected`

      - `"field_restored"FieldRestored`

      - `"field_undone"FieldUndone`

      - `"flags_signed_off"FlagsSignedOff`

      - `"rejected"Rejected`

      - `"reopened"Reopened`

    - `Detail? Detail`

      The settings for `created`, the reason for `rejected`, and the fields for `flags_signed_off`; null for the rest.

      - `class ExtractReviewCreatedDetail:`

        What a `created` entry records: where review was turned on, and its settings.

        - `required Double ConfidenceThreshold`

          Fields read below this confidence are flagged.

        - `required IReadOnlyList<string> FieldsInScope`

          JSON Pointers of the fields the threshold applies to; empty means all.

        - `required Origin Origin`

          Turned on as the job ran, from History, by a first edit, or by the API.

          - `"api"Api`

          - `"edit"Edit`

          - `"history"History`

          - `"run"Run`

        - `required IReadOnlyList<string> RequiredFields`

          JSON Pointers of fields flagged when empty.

      - `class ExtractReviewRejectedDetail:`

        What a `rejected` entry records.

        - `required string Reason`

          Why the result was rejected.

      - `class ExtractReviewSignedOffDetail:`

        What a `flags_signed_off` entry records.

        - `required IReadOnlyList<string> Paths`

          JSON Pointers of the flagged fields confirmed as part of approving.

    - `string? Path`

      JSON Pointer of the field it changed.

    - `JsonElement ValueAfter`

      The field's value after the change.

    - `JsonElement ValueBefore`

      The field's value before the change.

  - `string? NextPageToken`

    A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

  - `Long? TotalSize`

    The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only.

### Example

```csharp
ReviewListEventsParams parameters = new() { JobID = "job_id" };

var page = await client.Extract.Review.ListEvents(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
```

#### Response

```json
{
  "items": [
    {
      "id": "id",
      "actor_id": "actor_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "kind": "approved",
      "detail": {
        "confidence_threshold": 0,
        "fields_in_scope": [
          "string"
        ],
        "origin": "api",
        "required_fields": [
          "string"
        ]
      },
      "path": "path",
      "value_after": {},
      "value_before": {}
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```
