Skip to main content
GET
Fetch Data Table Records

Overview

This endpoint returns the records of a data table — the rows Qobra synchronizes from your CRM, database or files, and the ones created in Qobra — as they stand before any commission calculation. Use this endpoint for:
  • Replicating a data table into a data warehouse
  • BI dashboards on the data your plans read
  • Checking what Qobra imported from a source
Data tables = inputs. This endpoint gives you the rows your plans read. What each row contributed to commissions comes from record reporting.
Discover the ids with GET /v2/data-structures, where every data table is listed with "type": "data_table". A data table belongs to no environment: unlike a reporting table or a quota, its id works whichever environment you copied it from in the Qobra app.

Your first call

Example response


What a record holds

Every record starts with two identifiers, then carries one key per field of the table:
  • standard.id — the id of the record in Qobra.
  • standard.source_id — its id in the source system, such as a Salesforce opportunity id. A record created in Qobra carries its own standard.id there, as the second record above does.
  • datatable.<key> — one per field. The keys are specific to your table: read them from GET /v2/data-structures/{table_id}/fields rather than guessing them from the field names.
Each value follows the type of its field: A link points at a record of another table. Its id is the source id of that record, not its Qobra id, so it matches the standard.source_id you read from the linked table. An empty link reads { "id": null, "name": null }, and a link whose target Qobra has not resolved yet carries its id with a null name. An amount carries the currency of its own value, so a page can mix currencies within the same field.

Records created in Qobra are included

A table synchronized from an integration can also hold records created by hand in Qobra. This endpoint returns both: it reads the whole table, whatever the origin of each record. Tell them apart with standard.source_id, which equals standard.id on a record created in Qobra.

Pagination

Pages are linked: every response carries a next_url that already includes your limit and any date filters you sent. Follow it until has_more is false.
Two things worth knowing:
  • limit defaults to its maximum, 2000. Omitting it gives you the largest page, not a small one. It is validated rather than capped, so ?limit=5000 returns 400 instead of 2000 rows.
  • Records come in creation order.

Filtering by modification date

last_modified_after and last_modified_before restrict the response to records modified inside a window. Both bounds are inclusive, and they cannot be equal — passing the same datetime twice returns 400.
Always include the timezone in your timestamp, as in the example above.
Deleted records are never returned, so an incremental sync does not see a record disappear. Re-walk the whole table periodically to remove from your copy the records deleted in Qobra or in the source.

Errors

A 404 also answers the id of a reporting table or of a quota, which have endpoints of their own, and the id of a table Qobra generates from your plans’ results. Those tables are not listed by GET /v2/data-structures either: their results come from record reporting and statements.
This endpoint is the v2 counterpart of the v1 fetch data table records endpoint, which stays maintained. Moving to v2 is optional: see the migration guide.

Authorizations

X-API-Key
string
header
required

Your Qobra API key. Generate it from Settings > API Keys in Qobra.

Path Parameters

data_table_id
string<ObjectId>
required

ID of a data table (from /v2/data-structures, where it is listed with type data_table)

Query Parameters

start_id
string<ObjectId>

Start after this record ID (for ID-based pagination, recommended)

limit
integer
default:2000

Number of records per page (1-2000)

Required range: 1 <= x <= 2000
last_modified_after
string<date-time>

ISO 8601 datetime - Only return records modified after this timestamp (for incremental sync)

last_modified_before
string<date-time>

ISO 8601 datetime - Only return records modified before this timestamp

Response

Successfully retrieved the records of the data table, with pagination metadata for navigating through large datasets.

data
object[]
required

List of records

meta
object
required