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

# list_data_table_records

List one data table's records, each column rendered human-readable.

A data table is a company object table (deals, opportunities, accounts, custom
objects…); a record is one row. Each record carries its id, the formatted value
of every column, and record metadata: `name` (the table's name column),
`source` (origin), `source_id` (external system id), `tag` (status),
`active`, `created_at` and `last_modified_at`. Field values never expose
raw ids — amounts carry their currency, dates are `YYYY-MM-DD`, picklists
resolve to labels, user references to emails and linked records to their name.

You only see tables and records you have access to; a table you can't access is
reported as not found. When a table reaches you through several shared views,
pass `view` to pick which one.

Rows are ordered most-recently-created first for local tables; for
integration-synced tables they are ordered alphabetically by record name.

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="data_table" type="string" required>
    The table to read, by name (a case- and accent-insensitive substring of the
    table name) or its ObjectId. Must resolve to exactly one customer-facing
    (local or integration) table; an ambiguous name is rejected. Use
    list\_data\_tables to discover table names.
  </ParamField>

  <ParamField body="search" type="string">
    Free-text filter, matched the same way as the records page — a case- and
    accent-insensitive substring of the record's name and external id. Omitted
    returns the table's records unfiltered. AND-ed with the applied view's row
    filter.
  </ParamField>

  <ParamField body="view" type="string">
    View to apply, by name (case- and accent-insensitive substring) or ObjectId
    — narrows the records to that view. Required only when the table reaches you
    through several shared views; otherwise omit it to read the whole table.
  </ParamField>

  <ParamField body="limit" type="integer">
    Page size, between 1 and 250. Defaults to 50.
  </ParamField>

  <ParamField body="offset" type="integer">
    Row offset into the result set — the number of rows to skip before this
    page. Pass the next\_offset returned by the previous call, or None for the
    first page.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="data_table" type="object">
    <Expandable title="object properties">
      <ResponseField name="id" type="string" />

      <ResponseField name="resource_url" type="string">
        Deep link to open this data table in the Qobra web app.
      </ResponseField>

      <ResponseField name="name" type="string" />

      <ResponseField name="api_key" type="string" />

      <ResponseField name="source" type="string" />

      <ResponseField name="integration" type="object">
        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="name" type="string" />

          <ResponseField name="integration_type" type="string">
            One of: `kombo`, `salesforce`, `pipedrive`, `microsoft_dynamics`,
            `hubspot`, `odoo`, `zoho`, `attio`, `postgresql`, `gcp-postgresql`,
            `snowflake`, `snowflake-keys`, `redshift`, `microsoft-azure-sql`,
            `microsoft-azure-synapse`, `bigquery`, `s3`, `sftp`, `netsuite`,
            `public_api`.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="fields" type="object[]">
        <Expandable title="object properties">
          <ResponseField name="name" type="string" />

          <ResponseField name="api_key" type="string">
            Stable technical key for this field in Qobra's public API (use it as
            a durable reference; the display name can change).
          </ResponseField>

          <ResponseField name="type" type="string">
            Field data type: amount, percentage, float, string, bool, date,
            picklist, multipicklist, user, or object (a reference to another
            data table — see linked\_to). One of: `float`, `amount`,
            `percentage`, `string`, `picklist`, `multipicklist`, `bool`, `date`,
            `user`, `object`, `group`, `record_status`.
          </ResponseField>

          <ResponseField name="linked_to" type="object">
            When type is object, the table this field points to; null otherwise.

            <Expandable title="object properties">
              <ResponseField name="id" type="string" />

              <ResponseField name="name" type="string" />
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="records" type="object[]">
    <Expandable title="object properties">
      <ResponseField name="id" type="string" />

      <ResponseField name="name" type="string" />

      <ResponseField name="source" type="string">
        Where the record comes from: integration (synced from a connected
        system) or local (created in Qobra). One of: `integration`, `local`,
        `qobra`, `reporting`.
      </ResponseField>

      <ResponseField name="source_id" type="string">
        The record's id in its source system.
      </ResponseField>

      <ResponseField name="status" type="string">
        Integration record status (Created / Overwritten / Archived). Null for
        local-table records (no integration baseline) and for untouched
        integration rows.
      </ResponseField>

      <ResponseField name="archived" type="boolean" />

      <ResponseField name="created_at" type="string" />

      <ResponseField name="last_modified_at" type="string" />

      <ResponseField name="fields" type="object[]">
        <Expandable title="object properties">
          <ResponseField name="name" type="string" />

          <ResponseField name="type" type="string">
            One of: `float`, `amount`, `percentage`, `string`, `picklist`,
            `multipicklist`, `bool`, `date`, `user`, `object`, `group`,
            `record_status`.
          </ResponseField>

          <ResponseField name="value" type="any" />

          <ResponseField name="currency" type="string">
            One of: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`,
            `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`,
            `BND`, `BOB`, `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYR`, `BZD`,
            `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNY`, `COP`, `COU`, `CRC`,
            `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`,
            `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`,
            `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`,
            `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`,
            `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`,
            `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LTL`, `LVL`, `LYD`, `MAD`,
            `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MUR`, `MVR`,
            `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`,
            `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`,
            `QAR`, `RMB`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`,
            `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `STD`, `SVC`,
            `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`,
            `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYI`, `UYU`, `UZS`, `VEF`,
            `VND`, `VUV`, `WON`, `WST`, `XAF`, `XAG`, `XAU`, `XCD`, `XOF`,
            `XPD`, `XPF`, `XPT`, `XSU`, `YER`, `ZAR`, `ZMK`, `ZWL`.
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="next_offset" type="integer" />
</Accordion>
