Skip to content
masterclassBuddyTech Buzz5 fresh blogs · 5:00 AM IST

TanStack · Function

getCoreRowModel

getCoreRowModel provides TanStack Table's unmodified starting row model. It maps the table's original data into rows before other row-model features process them.

How it works

In the current TanStack Table documentation, getCoreRowModel is the factory used to provide a table's basic row model. The model preserves the original data's one-to-one row mapping before filtering, grouping, sorting, expansion, or pagination are applied.

Syntax

function table_getCoreRowModel<TFeatures, TData>(table): RowModel<TFeatures, TData>;

Parameters

NameTypeDescription
tableTable_Internal<TFeatures, TData>The internal table instance whose core row model is resolved.

Returns

RowModel<TFeatures, TData>

Key points

  • The returned model is not filtered, grouped, sorted, expanded, or paginated.
  • The factory is initialized once for each table rather than recreated for every row-model read.
  • After creation, the table reuses the factory on subsequent core-model requests.

Common mistakes

  • Do not add this factory when using the v9 tableFeatures API; the core row model is included automatically there.

Example: Enable the core row model

import { createTable } from '@tanstack/table-core'
import { getCoreRowModel } from '@tanstack/table-core'

const table = createTable({
  data: [{ id: 1, name: 'Ada' }],
  columns: [{ accessorKey: 'name', header: 'Name' }],
  getCoreRowModel: getCoreRowModel(),
})

const rows = table.getCoreRowModel().rows

Creates a table with the core row-model factory enabled, then reads the unprocessed rows.

When to use it

Read source rows

Use the initial, unprocessed rows when a table also has filtering, sorting, grouping, expansion, or pagination enabled.

Initialize table row processing

Configure an adapter-style table that expects a core row-model option.

Debug row-model behavior

Inspect data before downstream row-model transformations are applied.

Interview questions

QWhat does getCoreRowModel provide?

getCoreRowModel supplies the table's unmodified core row model. It represents the original table data before other row-model processing is applied.

Follow-up: How does it differ from getRowModel? getRowModel is the final model after enabled processing features, whereas the core model is the unprocessed starting point.

QHow is it configured and what does it contain?

In the documented adapter-style API, it is passed as getCoreRowModel: getCoreRowModel(). The resulting core model is a basic one-to-one mapping of the data supplied to the table.

Follow-up: What should be used to inspect the final displayed rows? Use table.getRowModel(), because later enabled models can transform the core rows.

QWhere does the core row model fit in processing?

The core model is the first stage in the row-model pipeline. Filtering, grouping, sorting, expansion, and pagination can then process its output when those features are enabled.

Follow-up: Why inspect the core model instead of the final model? Use it when you need rows unaffected by those transformations, such as an unfiltered source view.

  • RowModel
  • getFilteredRowModel
  • getGroupedRowModel
  • getSortedRowModel

Source: table_getCoreRowModel | TanStack Table Docs. Checked 2026-10-15.