---
title: "Update an aggregation of a Tulip Table"
slug: "update-an-aggregation-of-a-tulip-table"
updated: 2026-04-02T17:37:08Z
published: 2026-04-02T17:37:27Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update an aggregation of a Tulip Table

Put/tables/{tableId}/aggregation/{aggregationId}

Updates an aggregation in a Tulip Table by the aggregation id. Requires the `table-queries:write` API key scope.

SecurityHTTPType basic

Access to the Tulip API requires the use of [HTTP Basic Authentication](https://datatracker.ietf.org/doc/html/rfc7617) using the credentials of an active [Tulip API Token](https://support.tulip.co/docs/set-up-a-tulip-api). All requests require the `Authorization` HTTP header with the `Basic` scheme to provide API credentials unless otherwise noted.

API tokens can be configured with a set of *scopes* which determine what parts of the API that specific token has access to. Security best practices dictate that API credentials be given the minimum set of capabilities required to fulfill their intended purpose. For example, an API token created for use in an integration that is only designed to use the Tables API should probably only be given the `tables:read` and `tables:write` scopes. In this way you can minimize risk in the event that API credentials are compromised. API endpoints will document what API token scopes are required to access that endpoint in their descriptions. If a request is made to an endpoint with an API token which does not have the required scopes, the response will be an authorization error.

Path parameterstableIdstringRequired

The id of a Tulip Table.

Pattern^[a-zA-Z0-9_]+$Exampleg56RCoZCtzv7borvp
aggregationIdstringRequired

The id of a Tulip Table aggregation.

Pattern^[a-zA-Z0-9_]+$Exampleg56RCoZCtzv7borvp

Body parameters

The spec for updating a Tulip Table aggregation.

<select class='api-response-data' aria-label='Media type'><option value='1f05574f-2365-419d-b6fb-d68adbb20d07'>application/json</option>
</select>object  tableIdstring    RequiredExampleg56RCoZCtzv7borvp
fieldstring    RequiredExampleumiyk_durability_test_duration
fnstring    RequiredExamplesum
labelstring    RequiredExampleTotal Durability Test Duration

Responses200

The Tulip Table aggregation was updated successfully. The details of the updated Table aggregation are returned in the response.

<select class='api-response-data' aria-label='Media type'><option value='f0ff08b0-04da-4aaf-94d2-1125f1a9b857'>application/json</option>
</select>object  

A table aggregation for a Tulip Table.

Example{
  "id": "aq21mSKC1rbO87TjC",
  "createdAt": "2019-02-08T20:16:31Z",
  "updatedAt": "2019-02-08T20:16:31Z",
  "tableId": "g56RCoZCtzv7borvp",
  "label": "Average Durability Test Duration",
  "fn": "sum",
  "field": "umiyk_durability_test_duration"
}idExampleg56RCoZCtzv7borvp
createdAt
createdByExampleg56RCoZCtzv7borvp
updatedAt
updatedByExampleg56RCoZCtzv7borvp
tableIdstring    

The table that this aggregation belongs to.

labelstring    

The name of this aggregation.

fnstring    

The function used in this aggregation.

fieldstring    

The table column that this aggregation runs on.

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.

<select class='api-response-data' aria-label='Media type'><option value='026500f5-c883-4ff8-b489-1b13139630c2'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

401

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

<select class='api-response-data' aria-label='Media type'><option value='e151b4bb-cebf-4f15-a916-ea5f15fb8988'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

403

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

<select class='api-response-data' aria-label='Media type'><option value='2c18aa96-985e-4656-9822-dddd39ddba75'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

404

The requested database entry was not found.

<select class='api-response-data' aria-label='Media type'><option value='4dfcb381-73b7-4762-985d-8a60f93d4cd9'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

422

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

<select class='api-response-data' aria-label='Media type'><option value='70514dca-de2b-4b04-b8d4-beaf5930f488'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

500

The server encountered an unexpected error.

<select class='api-response-data' aria-label='Media type'><option value='b4e035b3-c926-4faa-b4d7-f51b42653bfe'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring
