On this page

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

StatusDescriptionBody
200Successful operationapplication/json: TableListResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableCreateRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1
enabledquerytruebooleanWhether audit should be on for this table
commentqueryfalsestringOptional 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

StatusDescriptionBody
200Successful operationapplication/json: TableAuditResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
namepathtruestringTable identifier to be cleared minLength: 1
commentqueryfalsestringOptional operator comment, carried onto the single CLEAR audit event when the table is audited

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1
descriptionquerytruestringTable description minLength: 1

Responses

StatusDescriptionBody
200OK/: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableOperationExportRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableOperationResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableExportRequestDto

Responses

StatusDescriptionBody
200Table definitions exported synchronously. This response does not contain a background run.application/json: TableExportResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

StatusDescriptionBody
200Successful operationapplication/json: TableExportResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableImportRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableImportResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableOperationLoadRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableOperationResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1
enabledquerytruebooleanWhether quality should be measured for this table

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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 typeRequiredSchema
application/jsontrueTableOperationTransformRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableOperationResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableDatasetResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier

Responses

StatusDescriptionBody
200Successful operationapplication/json: DependencyResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1
typequerytruestringTable type enum: [“TABLE”, “HISTORY”]; default: “TABLE”

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableMetadataResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1
typequerytruestringTable type enum: [“TABLE”, “HISTORY”]; default: “TABLE”
filterErrorqueryfalsebooleanFilter records that have quality errors. default: false
filterUpdatedAfterqueryfalsestring (date-time)Filter records that have been updated after this ISO 8601 timestamp (included)
filterUpdatedBeforequeryfalsestring (date-time)Filter records that have been updated before this ISO 8601 timestamp (included)
filterQualityGreaterqueryfalseinteger (int32)Filter records whose quality score is greater than or equal to this value (0-100). Omit the parameter to apply no lower bound.
filterQualityLessqueryfalseinteger (int32)Filter records whose quality score is less than or equal to this value (0-100). Omit the parameter to apply no upper bound.
filterSourcequeryfalsestringFilter records whose provenance names this source system. Combined with filterSourceId it matches one provenance entry carrying both, never the two separately.
filterSourceIdqueryfalsestringFilter records whose provenance carries this key. It is the source system’s own identifier for the record, not the record’s _id.
pageNumberquerytrueinteger (int32)Page number default: 0; minimum: 0
pageSizequerytrueinteger (int32)Page size, at most 1000. A larger value is a 400, not a clamped page. default: 10; maximum: 1000; exclusiveMinimum: 0

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableRecordPageResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
idpathtruestringTable identifier minLength: 1

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableRecordResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
namepathtruestringTable identifier to be deleted

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
tablepathtruestringTable identifier minLength: 1
limitqueryfalseinteger (int32)Page size; default 50, maximum 200
cursorqueryfalsestringOpaque cursor from the previous page’s nextCursor

Responses

StatusDescriptionBody
200Successful operationapplication/json: RecordAuditPageResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
tablepathtruestringTable identifier minLength: 1

Request body

Media typeRequiredSchema
application/jsontrueRecordCheckRequestDto

Responses

StatusDescriptionBody
200Successful operationapplication/json: RecordQualityResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
tablepathtruestringTable identifier minLength: 1
typequerytruestringTable type enum: [“TABLE”, “HISTORY”]; default: “TABLE”
idpathtruestringRecord identifier minLength: 1
expandedqueryfalsebooleanInclude expanded data flag default: false

Responses

StatusDescriptionBody
200Successful operationapplication/json: TableRecordResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
tablepathtruestringTable identifier minLength: 1
recordIdpathtruestringRecord identifier minLength: 1
limitqueryfalseinteger (int32)Page size; default 50, maximum 200
cursorqueryfalsestringOpaque cursor from the previous page’s nextCursor

Responses

StatusDescriptionBody
200Successful operationapplication/json: RecordAuditPageResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/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

NameInRequiredTypeDescription
tablepathtruestringTable identifier minLength: 1
recordIdpathtruestringRecord identifier minLength: 1
typequerytruestringTable type enum: [“TABLE”, “HISTORY”]; default: “TABLE”

Responses

StatusDescriptionBody
200Successful operationapplication/json: RecordQualityResponseDto
400Invalid parametersapplication/json: BaseResponseDto
401Authentication requiredapplication/json: BaseResponseDto
403Not authorizedapplication/json: BaseResponseDto
404Resource not foundapplication/json: BaseResponseDto
409Object is not in the correct stateapplication/json: BaseResponseDto
Golden 3.0.0 · Published 2026-10-04