Run an aggregate function (e.g. average, mode) on a table's field.
  • 17 Jan 2024
  • 3 Minutes to read
  • Contributors

Run an aggregate function (e.g. average, mode) on a table's field.


Article summary

Get
/tables/{tableId}/runAggregation

Requires tables:read API scope.

Attempting to run a numeric aggregate function e.g. sum on a non-numeric field type will generate a 422 error response. Mode is the only non-numeric function.

Security
Http
Type basic
A Tulip API key is required to use the Tulip API. API key authentication uses HTTP Basic Authentication as defined by [RFC 7617](https://tools.ietf.org/html/rfc7617). HTTP Basic Authentication uses a generic username/password scheme to authenticate. For Tulip API requests, the password should be the API key's associated secret. The username should have the format `{type}.{version}_{id}`, where `{type}` is the API key type, `{version}` is the type's version number, and `{id}` is the id of the key. Tulip API keys currently are one of two types: * `apikey.2` - user API keys provisioned by creating a Tulip API Bot. The key id is the bot id. * `onetime.1` - temporary API keys provisioned using the `/auth/temporary` endpoint or using the [One-Time API Key page](https://templates.tulip.co/apiKey). These keys are only valid for 30 seconds after provisioning. Once you have determined the username and password you need to use, the `Authorization` header should be set to the value `Basic {credentials}`, where `{credentials}` is the base64-encoded value of the string `{username}:{password}`. See [RFC 7617](https://tools.ietf.org/html/rfc7617) for more details of this encoding.
Path parameters
tableId
stringRequired

The id of a Tulip Table.

Pattern^[a-zA-Z0-9]+$
Query parameters
fieldId
stringRequired

The field to aggregate on. An invalid field name for the specified table will result in a 404 error.

function
stringRequired

Aggregate function names are case insentitive. An invalid function type will result in a 400 error.

Valid values[ "sum", "count", "avg", "min", "max", "mode", "uniqueValues" ]
limit
integerRequired

The maximum number of table records to evaluate.

Minimum1
Default"10"
sortOptions
array of object

Sort records to determine which are used in the aggregation. Sort priority is determined by the order or options, i.e. sort by the first option, them by the second, etc. If ommitted, there is no guarantee as to which records are selected. A sortBy value that is not one of the table's field will generate a 422 error. Options for sortDir are "asc" and "desc".

Example: [{"sortBy": "superAwesomeField", "sortDir": "asc"}, {"sortBy": "lessAwesomeField", "sortDir": "desc"}]

filters
array of object

An optional array of filter expressions to filter the Table records by. Each filter is an object specifying the field (name of a table column), functionType (comparison function), and arg (the value to compare to).

The field may be the name of a table column (including id) or one of these special values:

  • _createdAt
  • _updatedAt

The valid function types are:

  • equal
  • notEqual
  • blank
  • notBlank
  • greaterThanOrEqual
  • lessThanOrEqual
  • greaterThan
  • lessThan
  • contains
  • notContains
  • startsWith
  • notStartsWith
  • endsWith
  • notEndsWith
  • isIn

The function argument is not required for blank and notBlank.

filterAggregator
string

How the filters in the filter parameter are combined. all means that every filter must match a record in order for the record to be included. any means at least one filter must match a record in order for the record to be included.

Valid values[ "all", "any" ]
Default"all"
Responses
200

The count of Tulip Table records was retrieved successfully.

object
result
number
400

The request was malformed. This could mean that headers, query parameters, or the request body was unable to be parsed or had unexpected values.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string
401

The request was made unauthorized. HTTP Basic Authorization using a Tulip API Key is required for use of the API.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string
errorCode
Valid values[ "AuthenticationRequired" ]
403

The provided authentication info was rejected. The response will provide additional details.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string
errorCode
Valid values[ "AuthenticationFailed" ]
404

The requested database entry was not found.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string
errorCode
Valid values[ "NoSuchDatabaseEntry" ]
422

The request was syntactically sound, but could not be processed due to a logical problem.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string
errorCode
Valid values[ "UnprocessableEntity" ]
500

The server encountered an unexpected error.

object
errorCode
string
errorUniqueID
string
Pattern^[a-zA-Z0-9+/]+$
Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
details
string

Was this article helpful?