On this page
Tables API
Generated Golden API operations for Tables.
Golden 3.0.0 public API reference. Parameters, responses, and schemas for supported customer operations.
24 operations.
GET /api/tables
Retrieves all tables.
Operation ID: getAllTables
Locates all available tables and returns a list. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableListResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables
Creates a new table.
Operation ID: createTable
Creates a new table using provided information. Requires the ADMIN role.
Security: bearerAuth
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableCreateRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
PUT /api/tables/audit/{id}
Enables or disables audit for an existing table.
Operation ID: updateTableAudit
Enables or disables auditing on an existing table. Enabling is idempotent. Disabling retains existing events and records an AUDIT_DISABLED event; re-enabling does not reconstruct changes during the gap. A table without a dataset cannot enable auditing. An optional comment explains the setting change. Read the response outcome to distinguish a change from an already-applied setting or repair. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
enabled | query | true | boolean | Whether audit should be on for this table |
comment | query | false | string | Optional administrator comment, carried onto the AUDIT_ENABLED or AUDIT_DISABLED event. On a disable this is the only thing that will ever explain the gap it opens in the trail |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableAuditResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
PUT /api/tables/clear/{name}
Clears an existing table.
Operation ID: clearTable
Physically removes all current records, retained history and pending record candidates from the table. This is not recoverable through record history. An audited table records one table-level CLEAR event with the current-record count removed. A locked table or an unresolved audit migration prevents clearing. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
name | path | true | string | Table identifier to be cleared minLength: 1 |
comment | query | false | string | Optional operator comment, carried onto the single CLEAR audit event when the table is audited |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
PUT /api/tables/description/{id}
Changes table description.
Operation ID: updateTableDescription
Locates existing table by identifier and changes its description. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
description | query | true | string | Table description minLength: 1 |
Responses
| Status | Description | Body |
|---|---|---|
200 | OK | /: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/export
Runs a table export.
Operation ID: exportData
Schedules a one-off data export task. The data processing includes a table source,an optional transformation to change the data, an optional pipeline to further process the data, and finally writes the exported data in a file that can be downloaded. This operation is asynchronous and returns a task identifier. Requires the ADMIN role.
Security: bearerAuth
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableOperationExportRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableOperationResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/extract
Exports selected table definitions.
Operation ID: extractTable
Returns the selected table definitions in an exchange object. This is a synchronous configuration export, not an export of business records to a downloadable file. Requires the ADMIN role.
Security: bearerAuth
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableExportRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Table definitions exported synchronously. This response does not contain a background run. | application/json: TableExportResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/extract/all
Exports all tables.
Operation ID: exportAllTables
Exports all table definitions and returns the configuration package in exchange. The response contains the export; no background task is created. Requires the ADMIN role.
Security: bearerAuth
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableExportResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/ingest
Import tables.
Operation ID: ingestTable
Receives a list of tables as JSON and tries to import one by one. Requires the ADMIN role.
Security: bearerAuth
Request body
Table resource dto
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableImportRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableImportResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/load
Runs a table load.
Operation ID: loadData
Schedules a one-off data loading task. The data processing includes a data source (table or source),an optional transformation to change the data, an optional pipeline to further process the data, and finally a table to sink the resulting data. This operation is asynchronous and returns a task identifier. Requires the ADMIN role.
Security: bearerAuth
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableOperationLoadRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableOperationResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
PUT /api/tables/quality/{id}
Enables or disables quality measurement for an existing table.
Operation ID: updateTableQuality
Switching a table off stops the background re-measurement walking it and leaves it out of the quality figures; the measurements its records already carry are kept, so switching it back on costs nothing but the next catch-up pass. Nothing is provisioned and nothing is destroyed either way. A table switched off reads as “not measured by choice” on screen, which is a different state from “not measured yet”. The response says whether the flag actually moved. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
enabled | query | true | boolean | Whether quality should be measured for this table |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/transform
Runs a table transformation.
Operation ID: transformData
Schedules a one-off data transformation task. The data transformation includes a table source,a transformation to change the data, an optional pipeline to further process the data, and finally writes the modified data in the same table. This operation is asynchronous and returns a task identifier. Requires the ADMIN role.
Security: bearerAuth
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | TableOperationTransformRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableOperationResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}
Retrieves a table.
Operation ID: getTable
Locates a table by identifier and returns it. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}/datasets
Retrieves datasets associated to a table.
Operation ID: getTableDatasets
Locates a table by identifier and returns a map containing all the datasets associated to this table. Usually there is only one dataset, except if using nested datasets, in which case you will have multiple datasets returned. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableDatasetResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}/dependencies
Retrieves what a table uses and what uses it.
Operation ID: getTableDependencies
Builds the dependency graph and returns this table’s place in it. ⚠️ The cost is the whole installation, not this one table: every resource, every table and every entity is loaded to build the graph. That is why it is a call of its own and why the listing no longer carries it. Requires the ADMIN, STEWARD or VIEWER role, and the table has to be one the caller may see.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: DependencyResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}/metadata
Retrieves the shape of a table: its columns and its data-view.
Operation ID: getMetadata
Returns the table, its column keys, those columns with their type and description, and the resolved data-view. It reads no records and does not count them. ⚠️ This is the TABLE’s metadata and is unrelated to a record’s _metadata, which is a reserved key inside a record carrying _errors, _merged, _unrelated and _quality. Use this when a screen renders rows it obtained elsewhere – a search result – and still needs to know what the grid looks like; the record page would page and count as well, and the count is a sequential scan. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
type | query | true | string | Table type enum: [“TABLE”, “HISTORY”]; default: “TABLE” |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableMetadataResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}/records
Retrieves a page of records.
Operation ID: getPage
Locates a table by identifier and type (TABLE or HISTORY, default is TABLE). Applies metadata filtering if indicated, and returns a page of records. Record audit is not returned. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
type | query | true | string | Table type enum: [“TABLE”, “HISTORY”]; default: “TABLE” |
filterError | query | false | boolean | Filter records that have quality errors. default: false |
filterUpdatedAfter | query | false | string (date-time) | Filter records that have been updated after this ISO 8601 timestamp (included) |
filterUpdatedBefore | query | false | string (date-time) | Filter records that have been updated before this ISO 8601 timestamp (included) |
filterQualityGreater | query | false | integer (int32) | Filter records whose quality score is greater than or equal to this value (0-100). Omit the parameter to apply no lower bound. |
filterQualityLess | query | false | integer (int32) | Filter records whose quality score is less than or equal to this value (0-100). Omit the parameter to apply no upper bound. |
filterSource | query | false | string | Filter records whose provenance names this source system. Combined with filterSourceId it matches one provenance entry carrying both, never the two separately. |
filterSourceId | query | false | string | Filter records whose provenance carries this key. It is the source system’s own identifier for the record, not the record’s _id. |
pageNumber | query | true | integer (int32) | Page number default: 0; minimum: 0 |
pageSize | query | true | integer (int32) | Page size, at most 1000. A larger value is a 400, not a clamped page. default: 10; maximum: 1000; exclusiveMinimum: 0 |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableRecordPageResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{id}/records/empty
Retrieves a new empty record.
Operation ID: emptyRecord
Locates a table by identifier and type and returns a new empty record with full column structure. The record is not saved. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | true | string | Table identifier minLength: 1 |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableRecordResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
DELETE /api/tables/{name}
Deletes a table.
Operation ID: deleteTable
Locates a table by identifier and deletes it. Table is physically deleted. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
name | path | true | string | Table identifier to be deleted |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{table}/audit
Retrieves a table’s table-level audit events.
Operation ID: getTableAudit
Returns table-level audit events, including clears, audit setting changes, and candidate decisions. Events are newest first. Use the opaque nextCursor value to request the next page. An existing table may return an empty events list; an unknown table returns 404. Requires the ADMIN role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
table | path | true | string | Table identifier minLength: 1 |
limit | query | false | integer (int32) | Page size; default 50, maximum 200 |
cursor | query | false | string | Opaque cursor from the previous page’s nextCursor |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: RecordAuditPageResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
POST /api/tables/{table}/records/check
Measures a record without writing it.
Operation ID: checkRecord
Takes a record in the body and measures it against the table’s data model, exactly as a save would, and writes nothing. It is what a form asks for so a user can see what is wrong with the values in front of them before committing to them. ⚠️ The STORED members of the response are absent: a draft has no stored score, and the record is never read from storage — only the body is measured, whatever _id it carries and whether or not a record of that identifier exists. A draft whose measurement cannot be taken answers 200 with measured=false and a reason, never a 500, like the read it mirrors. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
table | path | true | string | Table identifier minLength: 1 |
Request body
| Media type | Required | Schema |
|---|---|---|
application/json | true | RecordCheckRequestDto |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: RecordQualityResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{table}/records/{id}
Retrieves a single record.
Operation ID: getRecord
Reads a record from TABLE (default) or HISTORY. expanded=true includes supported related records and presentation context, but never inline audit events. If the identifier is absent from the requested collection, Golden checks the other collection and reports servedFromOtherTable=true when found there. Requires ADMIN, STEWARD or VIEWER and access to the record.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
table | path | true | string | Table identifier minLength: 1 |
type | query | true | string | Table type enum: [“TABLE”, “HISTORY”]; default: “TABLE” |
id | path | true | string | Record identifier minLength: 1 |
expanded | query | false | boolean | Include expanded data flag default: false |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: TableRecordResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{table}/records/{recordId}/audit
Retrieves one record’s audit timeline.
Operation ID: getRecordAudit
Returns the audit events recorded for one record, newest first, ordered by occurrence instant then event identifier. The page size defaults to 50 and is capped at 200. Hand nextCursor back as the cursor parameter to walk older pages; the cursor is opaque and a malformed one answers 400 rather than restarting at the first page. An unknown table answers 404, and so does a record that exists in neither the current nor the history relation and about which no event was retained. An existing record with nothing recorded answers 200 with an empty list. Requires the ADMIN or STEWARD role — not VIEWER, because an event carries the superseded value of every field it changed, which survives nowhere else.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
table | path | true | string | Table identifier minLength: 1 |
recordId | path | true | string | Record identifier minLength: 1 |
limit | query | false | integer (int32) | Page size; default 50, maximum 200 |
cursor | query | false | string | Opaque cursor from the previous page’s nextCursor |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: RecordAuditPageResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |
GET /api/tables/{table}/records/{recordId}/quality
Explains one record’s quality score.
Operation ID: getRecordQuality
Measures the record as it stands now and returns that measurement together with the line items that produce it: one contribution per field that was applicable, its weight, and the exact fraction it earned. The stored score and its instant travel alongside for comparison. ⚠️ This explains the RECORD, not the stored number: a record written by a path that does not measure keeps its previous score, so the two can legitimately differ and that difference is worth showing. A record whose measurement cannot be taken answers 200 with measured=false and a reason, never a 500. Requires the ADMIN, STEWARD or VIEWER role.
Security: bearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
table | path | true | string | Table identifier minLength: 1 |
recordId | path | true | string | Record identifier minLength: 1 |
type | query | true | string | Table type enum: [“TABLE”, “HISTORY”]; default: “TABLE” |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful operation | application/json: RecordQualityResponseDto |
400 | Invalid parameters | application/json: BaseResponseDto |
401 | Authentication required | application/json: BaseResponseDto |
403 | Not authorized | application/json: BaseResponseDto |
404 | Resource not found | application/json: BaseResponseDto |
409 | Object is not in the correct state | application/json: BaseResponseDto |