---
title: "Aggregate view records"
method: POST
path: "/orgs/views/{view_id}/aggregate"
tags: ["Views"]
---

# Aggregate view records

`POST /orgs/views/{view_id}/aggregate`

## Request

- Base URL: `https://api.useinvent.com`
- URL: `https://api.useinvent.com/orgs/views/{view_id}/aggregate`
- Auth: HTTP bearer

Compute count/sum/avg/min/max over the records of a view, optionally grouped, windowed and filtered. Honors the view filter on top of the spec filter.

## Path parameters

- `view_id` string, required

## Request body

- TableAggregateSpecSchema
  - `metric` TableAggregateMetricSchema, required: What to compute over the records.
    - `aggregation` 'count' | 'sum' | 'avg' | 'min' | 'max', required: How to combine the records: count them, or the sum, average, minimum or maximum of a number field.
    - `field_id` string: Number field id. Required for all but count.
  - `group_by` TableAggregateGroupBySchema: Split the result into one value per group of a field.
    - `field_id` string, required: Id of the field to group the records by.
    - `bucket` 'day' | 'week' | 'month': Required when grouping by a date field.
  - `window` TableAggregateWindowSchema: Rolling date window, resolved to real dates at query time.
    - `field_id` string, required: Date field id.
    - `last` '7d' | '30d' | '90d' | '365d', required: How far back from now the window reaches.
  - `filter` union
    - FilterRuleSchema
      - `type` 'rule', required
      - `field_id` string, required
      - `operator` 'contains' | 'not_contains' | 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'before' | 'after' | 'on_or_before' | 'on_or_after' | 'in' | 'not_in' | 'is_empty' | 'is_not_empty', required
      - `value` unknown
    - FilterGroupSchema
      - `type` 'group', required
      - `combinator` 'and' | 'or', required
      - `children` FilterSchema[], required
  - `compare` 'previous_period': Adds the same window shifted back as a delta. Ignored when grouped.
  - `limit` integer: Max groups returned (up to 50); the tail folds into __other__.

## Response `200`

- union
  - TableAggregateValueSchema
    - `kind` 'value', required
    - `value` number, nullable, required
    - `previous` number, nullable
  - TableAggregateSeriesSchema
    - `kind` 'series', required
    - `groups` TableAggregateGroupSchema[], required
      - `key` string, nullable, required: Group value: enum/string value, bucket start as ISO date, `__other__` for the folded tail, null for records without a value.
      - `value` number, nullable, required
    - `truncated` boolean, required: True when enum groups overflowed the cap and were folded into `__other__`.

---

[API](https://skmtc.dev/useinvent/apis/invent-api.md) · [All operations](https://skmtc.dev/useinvent/apis/invent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useinvent/apis/invent-api/revisions/98824f3fde82?raw)
