Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query.
layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id’s label.
Keeps the top-level row groups ranked first by sort; omitted, up to 500 row groups return.
Required range: 1 <= x <= 500
Response
200
Tool result.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Rippit","description":"Rippit product documentation","colors":{"primary":"#079669","light":"#56b98f","dark":"#008156"},"logo":{"light":"https://mintcdn.com/rippit-ddefb232/uzkTtzpXlUcSK32Q/logo/light.svg?fit=max\u0026auto=format\u0026n=uzkTtzpXlUcSK32Q\u0026q=85\u0026s=8950a1dcb68093d7ac8370f0f847f209","dark":"https://mintcdn.com/rippit-ddefb232/za2WGhSTe9ZLSBxZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=za2WGhSTe9ZLSBxZ\u0026q=85\u0026s=8d626999b237e3103f24ffd34727bbd0"},"favicon":"https://mintcdn.com/rippit-ddefb232/uzkTtzpXlUcSK32Q/favicon.svg?fit=max\u0026auto=format\u0026n=uzkTtzpXlUcSK32Q\u0026q=85\u0026s=18b85aa33156e5e27477e6f3bc3a4242","navbar":{"links":[{"href":"https://status.rippit.com","label":"Status"}],"primary":{"type":"button","label":"Open Rippit","href":"https://app.rippit.com"}},"footer":{"socials":{}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rippit-ddefb232","hasAudioNarration":false,"actualSubdomain":"rippit-ddefb232","customDomains":["docs.rippit.com"],"gitSource":{"type":"github","owner":"adtribute","repo":"analytics","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af12f972c3c90c870ace2bf","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Guides","count":89},{"language":"default","tag":"Connect your Data","count":44},{"language":"default","tag":"API reference","count":44},{"language":"default","tag":"MCP servers","count":29},{"language":"default","tag":"MCP Server details","count":27},{"language":"default","tag":"Connect data","count":27},{"language":"default","tag":"Connect your AI Agent","count":21},{"language":"default","tag":"AI Agent Details","count":17},{"language":"default","tag":"Data integrations","count":15},{"language":"default","tag":"Bulk API","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#pagination{display:none}"}],"page":{"pagePath":"api-reference/pivot_table","slug":"/api-reference/pivot_table","pageMetadata":{"title":"pivot_table","description":"**Pivot table**\n\nBuild a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; `rowTopN` and `columnTopN` trim the returned groups, not the query.\n\n`layout` lists the dimensions, measures and the `columnGroups` kept after `columnTopN`; `layout.columnGroupsTruncated` and `rowsTruncated` flag trimmed axes. Each record has a `level` (`cell`, `rowSubtotal`, `columnTotal` or `grandTotal`), `row` and `column` maps of the dimension values held fixed, keyed by dimension alias, and `values` keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (`opt_*`) with no label map; describe_column lists each id's label.","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/pivot_table","href":"/api-reference/pivot_table","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Pivot table\"\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; \", _jsx(_components.code, {\n children: \"rowTopN\"\n }), \" and \", _jsx(_components.code, {\n children: \"columnTopN\"\n }), \" trim the returned groups, not the query.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"layout\"\n }), \" lists the dimensions, measures and the \", _jsx(_components.code, {\n children: \"columnGroups\"\n }), \" kept after \", _jsx(_components.code, {\n children: \"columnTopN\"\n }), \"; \", _jsx(_components.code, {\n children: \"layout.columnGroupsTruncated\"\n }), \" and \", _jsx(_components.code, {\n children: \"rowsTruncated\"\n }), \" flag trimmed axes. Each record has a \", _jsx(_components.code, {\n children: \"level\"\n }), \" (\", _jsx(_components.code, {\n children: \"cell\"\n }), \", \", _jsx(_components.code, {\n children: \"rowSubtotal\"\n }), \", \", _jsx(_components.code, {\n children: \"columnTotal\"\n }), \" or \", _jsx(_components.code, {\n children: \"grandTotal\"\n }), \"), \", _jsx(_components.code, {\n children: \"row\"\n }), \" and \", _jsx(_components.code, {\n children: \"column\"\n }), \" maps of the dimension values held fixed, keyed by dimension alias, and \", _jsx(_components.code, {\n children: \"values\"\n }), \" keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (\", _jsx(_components.code, {\n children: \"opt_*\"\n }), \") with no label map; describe_column lists each id’s label.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"pivot_table","description":"**Pivot table**\n\nBuild a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; `rowTopN` and `columnTopN` trim the returned groups, not the query.\n\n`layout` lists the dimensions, measures and the `columnGroups` kept after `columnTopN`; `layout.columnGroupsTruncated` and `rowsTruncated` flag trimmed axes. Each record has a `level` (`cell`, `rowSubtotal`, `columnTotal` or `grandTotal`), `row` and `column` maps of the dimension values held fixed, keyed by dimension alias, and `values` keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (`opt_*`) with no label map; describe_column lists each id's label.","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/pivot_table","href":"/api-reference/pivot_table","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"pivot_table","summary":"pivot_table","description":"**Pivot table**\n\nBuild a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; `rowTopN` and `columnTopN` trim the returned groups, not the query.\n\n`layout` lists the dimensions, measures and the `columnGroups` kept after `columnTopN`; `layout.columnGroupsTruncated` and `rowsTruncated` flag trimmed axes. Each record has a `level` (`cell`, `rowSubtotal`, `columnTotal` or `grandTotal`), `row` and `column` maps of the dimension values held fixed, keyed by dimension alias, and `values` keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (`opt_*`) with no label map; describe_column lists each id's label.","requestBody":"b62e4bbd-19e1-4dd7-9454-82708c303e2d","responses":{"200":"3b6480ec-a122-454d-b37b-61e41450844b"},"x-mint":{"metadata":{"playground":"none"}},"method":"post","type":"path","servers":["adeb82bd-a22a-4c6a-98ee-f48b86a1e79d"],"security":["44493fb5-0be1-4fe2-8ec1-c85fcb9b4491"],"path":"/v1/pivot_table","baseUrlOptions":["https://api.rippit.com"],"title":"pivot_table","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tableId":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","description":"Data table or worksheet id.","isRequired":true,"uniqueKey":"tableId","typeLabel":"string"},"rowDimensions":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"object","properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"rowDimensions.items.[INDEX].columnId","typeLabel":"string"},"dateTrunc":{"description":"Date grain; the alias becomes `\u003ccolumnId>_\u003cdateTrunc>`.","type":"string","enum":["minute","hour","day","week","month","year"],"uniqueKey":"rowDimensions.items.[INDEX].dateTrunc","typeLabel":"enum\u003cstring>"}},"required":["columnId"],"additionalProperties":false,"uniqueKey":"rowDimensions.items.[INDEX]","typeLabel":"object"},"description":"Row hierarchy, top level first; subtotals return at every level.","isRequired":true,"uniqueKey":"rowDimensions","typeLabel":"object[]"},"measures":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"measures.items.[INDEX].columnId","typeLabel":"string"},"agg":{"type":"string","enum":["count","count_distinct","sum","avg","min","max"],"isRequired":true,"uniqueKey":"measures.items.[INDEX].agg","typeLabel":"enum\u003cstring>"},"alias":{"description":"Key under `values`; defaults to `\u003ccolumnId>_\u003cagg>`.","type":"string","minLength":1,"uniqueKey":"measures.items.[INDEX].alias","typeLabel":"string"}},"required":["columnId","agg"],"additionalProperties":false,"uniqueKey":"measures.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"measures","typeLabel":"object[]"},"columnDimensions":{"description":"Each value combination becomes a column group; omit for row subtotals only.","maxItems":3,"type":"array","items":{"type":"object","properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"columnDimensions.items.[INDEX].columnId","typeLabel":"string"},"dateTrunc":{"description":"Date grain; the alias becomes `\u003ccolumnId>_\u003cdateTrunc>`.","type":"string","enum":["minute","hour","day","week","month","year"],"uniqueKey":"columnDimensions.items.[INDEX].dateTrunc","typeLabel":"enum\u003cstring>"}},"required":["columnId"],"additionalProperties":false,"uniqueKey":"columnDimensions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"columnDimensions","typeLabel":"object[]"},"where":{"description":"Filters source rows before pivoting.","maxItems":20,"type":"array","items":{"oneOf":[{"type":"object","required":["columnId","operator"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.0.columnId","typeLabel":"string"},"operator":{"type":"string","enum":["=","!=",">","\u003c",">=","\u003c=","IN","NOT IN","LIKE","CONTAINS_ALL","ANY","ALL","NONE","NOT_EMPTY","EMPTY","IS","IS NOT"],"description":"IN/NOT IN match exact values or array elements; CONTAINS_ALL needs all. ANY/ALL/NONE: case-insensitive substring matches, never for id columns (they over-match).","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id.","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"number","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id.","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id.","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id.","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4.items.[INDEX].oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4.items.[INDEX].oneOf.3","typeLabel":"null"}],"uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4.items.[INDEX]","typeLabel":"string | number | boolean | null"},"description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id.","uniqueKey":"where.items.[INDEX].oneOf.0.value.oneOf.4","typeLabel":"(string | number | boolean | null)[]"}],"uniqueKey":"where.items.[INDEX].oneOf.0.value","typeLabel":"string | number | boolean | null | (string | number | boolean | null)[]"}},"additionalProperties":false,"uniqueKey":"where.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["columnId","operator","date_from","date_to"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.1.columnId","typeLabel":"string"},"operator":{"type":"string","const":"BETWEEN","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.1.operator","typeLabel":"string"},"date_from":{"type":"string","description":"Inclusive. Plain dates cover whole days, and times without an offset are clock times, in the reported timezone or UTC.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.1.date_from","typeLabel":"string"},"date_to":{"type":"string","description":"Inclusive; a plain date covers that whole day.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.1.date_to","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"where.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["columnId","period"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.columnId","typeLabel":"string"},"period":{"type":"object","properties":{"n":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Signed units; negative values reach into the past.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.period.n","typeLabel":"integer"},"unit":{"type":"string","enum":["hours","days","weeks","months","years"],"isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.period.unit","typeLabel":"enum\u003cstring>"}},"required":["n","unit"],"additionalProperties":false,"description":"Whole days in the read timezone, including today: { n: -7, unit: \"days\" } keeps today and the six prior days. Months/years follow the calendar; hours are exact. Reads re-resolve; worksheets keep a snapshot.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.period","typeLabel":"object"},"offset":{"description":"Shifts the anchor before period applies; { n: -1, unit: \"weeks\" } moves it one week into the past.","type":"object","properties":{"n":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Signed units; negative values reach into the past.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.offset.n","typeLabel":"integer"},"unit":{"type":"string","enum":["hours","days","weeks","months","years"],"isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.2.offset.unit","typeLabel":"enum\u003cstring>"}},"required":["n","unit"],"additionalProperties":false,"uniqueKey":"where.items.[INDEX].oneOf.2.offset","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"where.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["or_filters"],"properties":{"or_filters":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"$circularRef":"555ab188-a6a5-4a29-a596-fb2993a79c94"},"uniqueKey":"where.items.[INDEX].oneOf.3.or_filters.items.[INDEX]","typeLabel":"array"},"description":"ORs branches of ANDed items.","isRequired":true,"uniqueKey":"where.items.[INDEX].oneOf.3.or_filters","typeLabel":"array[]"}},"additionalProperties":false,"uniqueKey":"where.items.[INDEX].oneOf.3","typeLabel":"object"}],"uniqueKey":"where.items.[INDEX]","typeLabel":"object"},"uniqueKey":"where","typeLabel":"object[]"},"arrayExpansions":{"description":"Explode array columns into one row per element, referenced by alias; empty arrays yield no rows, and counts describe elements, not records.","maxItems":3,"type":"array","items":{"type":"object","properties":{"columnId":{"type":"string","minLength":1,"description":"Array column id.","isRequired":true,"uniqueKey":"arrayExpansions.items.[INDEX].columnId","typeLabel":"string"},"alias":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]*$","description":"Unused column id for the elements.","isRequired":true,"uniqueKey":"arrayExpansions.items.[INDEX].alias","typeLabel":"string"}},"required":["columnId","alias"],"additionalProperties":false,"uniqueKey":"arrayExpansions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"arrayExpansions","typeLabel":"object[]"},"sort":{"description":"Defaults to the first measure, descending.","type":"object","properties":{"alias":{"type":"string","minLength":1,"description":"A measure alias ranks row groups by their total across columns; a row-dimension column id orders each level by label.","isRequired":true,"uniqueKey":"sort.alias","typeLabel":"string"},"direction":{"description":"Defaults to desc for a measure, asc for a dimension.","type":"string","enum":["asc","desc"],"uniqueKey":"sort.direction","typeLabel":"enum\u003cstring>"}},"required":["alias"],"additionalProperties":false,"uniqueKey":"sort","typeLabel":"object"},"columnTopN":{"description":"Keeps the top column groups by the first measure's total; defaults to 10.","type":"integer","minimum":1,"maximum":50,"uniqueKey":"columnTopN","typeLabel":"integer"},"rowTopN":{"description":"Keeps the top-level row groups ranked first by `sort`; omitted, up to 500 row groups return.","type":"integer","minimum":1,"maximum":500,"uniqueKey":"rowTopN","typeLabel":"integer"}},"required":["tableId","rowDimensions","measures"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"tableId":"\u003cstring>","rowDimensions":[{"columnId":"\u003cstring>"}],"measures":[{"columnId":"\u003cstring>","alias":"\u003cstring>"}],"columnDimensions":[{"columnId":"\u003cstring>"}],"where":[{"columnId":"\u003cstring>","value":"\u003cstring>"}],"arrayExpansions":[{"columnId":"\u003cstring>","alias":"\u003cstring>"}],"columnTopN":25,"rowTopN":250}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3b6480ec-a122-454d-b37b-61e41450844b":{"description":"Tool result.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"44493fb5-0be1-4fe2-8ec1-c85fcb9b4491":{"bearer":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearer"}}},"servers":{"adeb82bd-a22a-4c6a-98ee-f48b86a1e79d":{"url":"https://api.rippit.com"}},"schemas":{"555ab188-a6a5-4a29-a596-fb2993a79c94":{"oneOf":[{"type":"object","required":["columnId","operator"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true},"operator":{"type":"string","enum":["=","!=",">","\u003c",">=","\u003c=","IN","NOT IN","LIKE","CONTAINS_ALL","ANY","ALL","NONE","NOT_EMPTY","EMPTY","IS","IS NOT"],"description":"IN/NOT IN match exact values or array elements; CONTAINS_ALL needs all. ANY/ALL/NONE: case-insensitive substring matches, never for id columns (they over-match).","isRequired":true},"value":{"oneOf":[{"type":"string","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id."},{"type":"number","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id."},{"type":"boolean","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id."},{"type":"null","description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id."},{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"description":"Array for multi-value operators (ANY/ALL/NONE: at most 250 strings). singleSelect and bucketed columns store option ids (opt_*): filter by id; a label matches no rows. describe_column with `search` resolves a label to its id."}]}},"additionalProperties":false},{"type":"object","required":["columnId","operator","date_from","date_to"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true},"operator":{"type":"string","const":"BETWEEN","isRequired":true},"date_from":{"type":"string","description":"Inclusive. Plain dates cover whole days, and times without an offset are clock times, in the reported timezone or UTC.","isRequired":true},"date_to":{"type":"string","description":"Inclusive; a plain date covers that whole day.","isRequired":true}},"additionalProperties":false},{"type":"object","required":["columnId","period"],"properties":{"columnId":{"type":"string","minLength":1,"description":"Column id, not its label.","isRequired":true},"period":{"type":"object","properties":{"n":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Signed units; negative values reach into the past.","isRequired":true},"unit":{"type":"string","enum":["hours","days","weeks","months","years"],"isRequired":true}},"required":["n","unit"],"additionalProperties":false,"description":"Whole days in the read timezone, including today: { n: -7, unit: \"days\" } keeps today and the six prior days. Months/years follow the calendar; hours are exact. Reads re-resolve; worksheets keep a snapshot.","isRequired":true},"offset":{"description":"Shifts the anchor before period applies; { n: -1, unit: \"weeks\" } moves it one week into the past.","type":"object","properties":{"n":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Signed units; negative values reach into the past.","isRequired":true},"unit":{"type":"string","enum":["hours","days","weeks","months","years"],"isRequired":true}},"required":["n","unit"],"additionalProperties":false}},"additionalProperties":false},{"type":"object","required":["or_filters"],"properties":{"or_filters":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"$circularRef":"555ab188-a6a5-4a29-a596-fb2993a79c94"}},"description":"ORs branches of ANDed items.","isRequired":true}},"additionalProperties":false}]}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"api-reference/tools-openapi.json"},"subdomain":"rippit-ddefb232","siteName":"Rippit","title":"pivot_table - Rippit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T01:29:32.622Z","originalFileLocation":"api-reference/pivot_table.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Pivot table Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query. layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id\u0026#x27;s label.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Rippit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"pivot_table - Rippit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Pivot table Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query. layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id\u0026#x27;s label.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rippit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rippit.com/api-reference/pivot_table\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rippit-ddefb232.mintlify.site/_mintlify/api/og/v2?division=Query+data\u0026amp;title=pivot_table\u0026amp;description=**Pivot+table**%0A%0ABuild+a+pivot+over+a+table+or+worksheet%3A+row+dimensions+down+the+side%2C+column+dimensions+across+the+top%2C+measures+in+each+cell%2C+with+subtotals+\u0026amp;theme=cc7de14802162a79d7966e1d\u0026amp;signature=c98470661fdcde15fc3de2b44d58a33297970408eaf8cd323cd954ea5aba35c7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"pivot_table - Rippit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Pivot table Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query. layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id\u0026#x27;s label.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rippit-ddefb232.mintlify.site/_mintlify/api/og/v2?division=Query+data\u0026amp;title=pivot_table\u0026amp;description=**Pivot+table**%0A%0ABuild+a+pivot+over+a+table+or+worksheet%3A+row+dimensions+down+the+side%2C+column+dimensions+across+the+top%2C+measures+in+each+cell%2C+with+subtotals+\u0026amp;theme=cc7de14802162a79d7966e1d\u0026amp;signature=c98470661fdcde15fc3de2b44d58a33297970408eaf8cd323cd954ea5aba35c7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rippit-ddefb232/u1OvlVJ9fpltsljb/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Rippit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#079669\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.rippit.com/api-reference/pivot_table\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/pivot_table.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.rippit.com/#organization\",\"name\":\"Rippit\",\"url\":\"https://docs.rippit.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rippit-ddefb232/uzkTtzpXlUcSK32Q/logo/light.svg?fit=max\u0026auto=format\u0026n=uzkTtzpXlUcSK32Q\u0026q=85\u0026s=8950a1dcb68093d7ac8370f0f847f209\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.rippit.com#website\",\"name\":\"Rippit\",\"url\":\"https://docs.rippit.com\",\"publisher\":{\"@id\":\"https://docs.rippit.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.rippit.com/api-reference/pivot_table#webpage\",\"url\":\"https://docs.rippit.com/api-reference/pivot_table\",\"name\":\"pivot_table\",\"description\":\"Pivot table Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query. layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id's label.\",\"dateModified\":\"2026-11-09T01:29:32.622Z\",\"isPartOf\":{\"@id\":\"https://docs.rippit.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rippit.com/api-reference/pivot_table#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rippit.com/api-reference/pivot_table#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Analyze data\",\"item\":\"https://docs.rippit.com/api-reference/query/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Query data\",\"item\":\"https://docs.rippit.com/api-reference/query/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"pivot_table\",\"item\":\"https://docs.rippit.com/api-reference/pivot_table\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.rippit.com/api-reference/pivot_table#apireference\",\"headline\":\"pivot_table\",\"name\":\"pivot_table\",\"description\":\"Pivot table Build a pivot over a table or worksheet: row dimensions down the side, column dimensions across the top, measures in each cell, with subtotals and totals; aggregate_table runs a flat group-by. Works on worksheets and customDataTables only. Results are not paginated: a query over 10000 intermediate groups fails rather than returning partial cells; rowTopN and columnTopN trim the returned groups, not the query. layout lists the dimensions, measures and the columnGroups kept after columnTopN; layout.columnGroupsTruncated and rowsTruncated flag trimmed axes. Each record has a level (cell, rowSubtotal, columnTotal or grandTotal), row and column maps of the dimension values held fixed, keyed by dimension alias, and values keyed by measure alias. Records are sparse: a missing intersection means no data, not zero. Totals cover the full filtered dataset, so when groups are trimmed the visible cells do not sum to them. Dimension values group as stored, without case or whitespace merging. singleSelect and bucketed values come back as option ids (opt_*) with no label map; describe_column lists each id's label.\",\"url\":\"https://docs.rippit.com/api-reference/pivot_table\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rippit.com/api-reference/pivot_table#webpage\"},\"dateModified\":\"2026-11-09T01:29:32.622Z\",\"publisher\":{\"@id\":\"https://docs.rippit.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.rippit.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Rippit\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Rippit","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/overview"}]},{"tab":"API reference","groups":[{"group":"Get started","pages":[{"title":"API overview","sidebarTitle":"Overview","href":"/api-reference/overview"},{"title":"Authentication","href":"/api-reference/authentication"}]},{"group":"Connect data","pages":[{"title":"Connect data","sidebarTitle":"Overview","href":"/api-reference/connect/overview"},{"group":"Built-in integrations","pages":[{"title":"Built-in integrations","sidebarTitle":"Overview","href":"/api-reference/connect/integrations/overview"},{"title":"get_integration_state","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/get_integration_state","href":"/api-reference/get_integration_state"},{"title":"connect_integration","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/connect_integration","href":"/api-reference/connect_integration"},{"title":"import_integration","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/import_integration","href":"/api-reference/import_integration"},{"title":"list_active_integrations","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_active_integrations","href":"/api-reference/list_active_integrations"}]},{"group":"Snowflake","pages":[{"title":"Snowflake","sidebarTitle":"Overview","href":"/api-reference/connect/snowflake/overview"},{"title":"list_snowflake_connections","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_snowflake_connections","href":"/api-reference/list_snowflake_connections"},{"title":"manage_snowflake_connection","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/manage_snowflake_connection","href":"/api-reference/manage_snowflake_connection"},{"title":"list_snowflake_tables","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_snowflake_tables","href":"/api-reference/list_snowflake_tables"},{"title":"describe_snowflake_table","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/describe_snowflake_table","href":"/api-reference/describe_snowflake_table"},{"title":"manage_snowflake_import","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/manage_snowflake_import","href":"/api-reference/manage_snowflake_import"},{"title":"list_snowflake_imports","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_snowflake_imports","href":"/api-reference/list_snowflake_imports"}]},{"group":"Bulk API","pages":[{"title":"Bulk API","sidebarTitle":"Overview","href":"/api-reference/connect/bulk/overview"},{"title":"Conversations","href":"/api-reference/connect/bulk/conversations"},{"title":"Tables","href":"/api-reference/connect/bulk/tables"},{"title":"Bulk export","sidebarTitle":"Export","href":"/api-reference/connect/bulk/export"},{"title":"Bulk API skill","sidebarTitle":"Skill","href":"/api-reference/connect/bulk/rippit-bulk-ingest-api"},{"title":"Post Conversation Source","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_ingest/conversation_sources","href":"/api-reference/bulk_ingest/post-conversation-source"},{"title":"Get Conversation Sources","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json get /bulk_ingest/conversation_sources","href":"/api-reference/bulk_ingest/get-conversation-sources"},{"title":"Post Conversation Blocks Bulk","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_ingest/conversation_blocks/bulk","href":"/api-reference/bulk_ingest/post-conversation-blocks-bulk"},{"title":"Post Dataset","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_ingest/datasets","href":"/api-reference/bulk_ingest/post-dataset"},{"title":"Patch Dataset By Query","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json patch /bulk_ingest/datasets","href":"/api-reference/bulk_ingest/patch-dataset-by-query"},{"title":"Post Dataset Bulk By Query","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_ingest/datasets/bulk","href":"/api-reference/bulk_ingest/post-dataset-bulk-by-query"},{"title":"Post Job Start","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_ingest/jobs/{job_id}/start","href":"/api-reference/bulk_ingest/post-job-start"},{"title":"Get Job","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json get /bulk/jobs/{job_id}","href":"/api-reference/bulk/get-job"},{"title":"Create Export Job","deprecated":null,"version":null,"openapi":"/api-reference/bulk-openapi.json post /bulk_export/tables","href":"/api-reference/bulk_export/create-export-job"}]}]},{"group":"Analyze data","pages":[{"group":"Query data","pages":[{"title":"Query data","sidebarTitle":"Overview","href":"/api-reference/query/overview"},{"title":"list_data_sources","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_data_sources","href":"/api-reference/list_data_sources"},{"title":"describe_table","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/describe_table","href":"/api-reference/describe_table"},{"title":"describe_column","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/describe_column","href":"/api-reference/describe_column"},{"title":"read_table","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/read_table","href":"/api-reference/read_table"},{"title":"aggregate_table","description":"**Aggregate table**\n\nCompute measures over a table or worksheet, optionally grouped; pivot_table lays measures out as a cross-tab of row and column dimensions with totals, and read_table returns individual rows. Array columns group on the whole array value unless expanded with `arrayExpansions`. singleSelect and bucketed values are option ids that `columns[].options` maps to labels. `pagination.truncated` means more groups exist than were returned.","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/aggregate_table","href":"/api-reference/aggregate_table"},{"title":"pivot_table","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/pivot_table","href":"/api-reference/pivot_table"},{"title":"read_conversations","description":"**Read conversations**\n\nRead transcripts for specific tickets; read_table returns table rows. Results cover only the requested ids; the tool does not select a representative sample or calculate population counts. Up to 10 ids per call across `shortIds` and `externalIds`. The response flags truncation when size limits omit messages or conversations.\n\nEach ticket is a `# conversation \u003cid>` block, where `\u003cid>` is the `external_id` when the ticket has one, else its `short_id`, followed by metadata lines and one `## \u003cid>#\u003cn>` header per message with body lines prefixed `\u003cid>#\u003cn> | `. `searchable_fields_omitted` names custom fields cut for size. A final `# not found` block lists unresolved ids with the reason.","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/read_conversations","href":"/api-reference/read_conversations"}]},{"group":"Worksheets","pages":[{"title":"Worksheets","sidebarTitle":"Overview","href":"/api-reference/worksheets/overview"},{"title":"list_worksheets","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/list_worksheets","href":"/api-reference/list_worksheets"},{"title":"create_worksheet","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/create_worksheet","href":"/api-reference/create_worksheet"},{"title":"enrich_worksheet","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/enrich_worksheet","href":"/api-reference/enrich_worksheet"},{"title":"get_enrich_status","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/get_enrich_status","href":"/api-reference/get_enrich_status"},{"title":"export_worksheet","deprecated":null,"version":null,"playground":"none","openapi":"/api-reference/tools-openapi.json post /v1/export_worksheet","href":"/api-reference/export_worksheet"}]}]},{"group":"AI pipelines","pages":[{"title":"AI pipelines","sidebarTitle":"Overview","href":"/api-reference/pipelines/overview"}]}]}]},"basePath":"","title":"pivot_table - Rippit","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}