## Aggregate Agent Data

`AgentDataAggregatePageResponse Beta.AgentData.Aggregate(AgentDataAggregateParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/beta/agent-data/:aggregate`

Aggregate agent data with grouping and optional counting/first item retrieval.

### Parameters

- `AgentDataAggregateParams parameters`

  - `required string deploymentName`

    Body param: The agent deployment's name to aggregate data for

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string collection`

    Body param: The logical agent data collection to aggregate data for

  - `Boolean? count`

    Body param: Whether to count the number of items in each group

  - `IReadOnlyDictionary<string, FilterItem>? filter`

    Body param: A filter object or expression that filters resources listed in the response.

    - `Eq? Eq`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Exclude?> Excludes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gt? Gt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gte? Gte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Include?> Includes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lt? Lt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lte? Lte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Ne? Ne`

      - `Double`

      - `string`

      - `DateTimeOffset`

  - `Boolean? first`

    Body param: Whether to return the first item in each group (Sorted by created_at)

  - `IReadOnlyList<string>? groupBy`

    Body param: The fields to group by. If empty, the entire dataset is grouped on. e.g. if left out, can be used for simple count operations

  - `Long? offset`

    Body param: The offset to start from. If not provided, the first page is returned

  - `string? orderBy`

    Body param: A comma-separated list of fields to order by, sorted in ascending order. Use 'field_name desc' to specify descending order.

  - `Long? pageSize`

    Body param: The maximum number of items to return. The service may return fewer than this value. If unspecified, a default page size will be used. The maximum value is typically 1000; values above this will be coerced to the maximum.

  - `string? pageToken`

    Body param: A page token, received from a previous list call. Provide this to retrieve the subsequent page.

### Returns

- `class AgentDataAggregatePageResponse:`

  - `required IReadOnlyList<AgentDataAggregateResponse> Items`

    The list of items.

    - `required IReadOnlyDictionary<string, JsonElement> GroupKey`

    - `Long? Count`

    - `IReadOnlyDictionary<string, JsonElement>? FirstItem`

  - `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
AgentDataAggregateParams parameters = new()
{
    DeploymentName = "deployment_name"
};

var page = await client.Beta.AgentData.Aggregate(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
```

#### Response

```json
{
  "items": [
    {
      "group_key": {
        "foo": "bar"
      },
      "count": 0,
      "first_item": {
        "foo": "bar"
      }
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```
