PUT /v1/tables
curl -X PUT "{base_url}/api/v1/tables" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "agent_performance_summary",
"databaseSchema": "sample_data.ecommerce_db.shopify",
"description": "Summary of agent performance metrics derived from multiple tables including ssot_utilization_detail for comprehensive reporting.",
"tableType": "Regular",
"columns": [
{"name": "agent_id", "dataType": "VARCHAR", "dataLength": 100, "description": "Agent identifier"},
{"name": "performance_score", "dataType": "DECIMAL", "description": "Overall performance score"}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Tables
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
table = Tables.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
table.description = "Updated customer master data table with PII fields"
updated = Tables.update(table)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Table;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Table table = client.tables().get("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
table.setDescription("Updated customer master data table with PII fields");
Table updated = client.tables().update("a1b2c3d4-e5f6-7890-abcd-ef1234567890", table);
# Update by ID
curl -X PATCH "{base_url}/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/tables/name/sample_data.ecommerce_db.shopify.agent_performance_summary" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
{
"id": "455e3d9d-dbbf-455e-b3be-7191daa825f3",
"name": "agent_performance_summary",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary",
"description": "Updated agent performance summary with new metrics.",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3",
"tableType": "Regular",
"columns": [
{
"name": "agent_id",
"dataType": "VARCHAR",
"dataLength": 100,
"dataTypeDisplay": "varchar",
"description": "Agent identifier",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.agent_id",
"tags": [],
"ordinalPosition": 1
},
{
"name": "performance_score",
"dataType": "DECIMAL",
"dataTypeDisplay": "decimal",
"description": "Overall performance score",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.performance_score",
"tags": [],
"ordinalPosition": 2
}
],
"owners": [],
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"displayName": "shopify",
"deleted": false
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"displayName": "ecommerce_db",
"deleted": false
},
"service": {
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"type": "databaseService",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"displayName": "sample_data",
"deleted": false
},
"serviceType": "BigQuery",
"tags": [],
"deleted": false
}
Update a Table
Create or update a table with a full request body
PUT
/
v1
/
tables
PUT /v1/tables
curl -X PUT "{base_url}/api/v1/tables" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "agent_performance_summary",
"databaseSchema": "sample_data.ecommerce_db.shopify",
"description": "Summary of agent performance metrics derived from multiple tables including ssot_utilization_detail for comprehensive reporting.",
"tableType": "Regular",
"columns": [
{"name": "agent_id", "dataType": "VARCHAR", "dataLength": 100, "description": "Agent identifier"},
{"name": "performance_score", "dataType": "DECIMAL", "description": "Overall performance score"}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Tables
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
table = Tables.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
table.description = "Updated customer master data table with PII fields"
updated = Tables.update(table)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Table;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Table table = client.tables().get("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
table.setDescription("Updated customer master data table with PII fields");
Table updated = client.tables().update("a1b2c3d4-e5f6-7890-abcd-ef1234567890", table);
# Update by ID
curl -X PATCH "{base_url}/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/tables/name/sample_data.ecommerce_db.shopify.agent_performance_summary" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
{
"id": "455e3d9d-dbbf-455e-b3be-7191daa825f3",
"name": "agent_performance_summary",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary",
"description": "Updated agent performance summary with new metrics.",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3",
"tableType": "Regular",
"columns": [
{
"name": "agent_id",
"dataType": "VARCHAR",
"dataLength": 100,
"dataTypeDisplay": "varchar",
"description": "Agent identifier",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.agent_id",
"tags": [],
"ordinalPosition": 1
},
{
"name": "performance_score",
"dataType": "DECIMAL",
"dataTypeDisplay": "decimal",
"description": "Overall performance score",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.performance_score",
"tags": [],
"ordinalPosition": 2
}
],
"owners": [],
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"displayName": "shopify",
"deleted": false
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"displayName": "ecommerce_db",
"deleted": false
},
"service": {
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"type": "databaseService",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"displayName": "sample_data",
"deleted": false
},
"serviceType": "BigQuery",
"tags": [],
"deleted": false
}
Update a Table
Create a table or update it if it already exists, usingPUT /v1/tables with the full request body. Send the complete definition, not just the fields you want to change. To change only some fields, use PATCH with a JSON Patch array and the application/json-patch+json content type, as shown in the PATCH examples below.
Body Parameters
string
required
Name of the table. Must be unique within the parent schema.
string
required
Fully qualified name of the parent DatabaseSchema, for example
snowflake_prod.analytics.public.array
required
Array of column definitions for the table.
Show properties
Show properties
string
required
Name of the column.
string
required
Data type of the column, for example
INT, VARCHAR, TIMESTAMP, BOOLEAN, ARRAY, MAP.string
Description of the column in Markdown format.
integer
Length of the data type, for example
256 for VARCHAR(256).string
Column constraint:
PRIMARY_KEY, UNIQUE, NOT_NULL, NULL.array
Classification tags to apply to this column.
string
Human-readable display name for the table.
string
Description of the table in Markdown format.
string
Type of table:
Regular, External, View, MaterializedView, SecureView, Iceberg, Local, Partitioned, Foreign, Transient.string
Data retention period in ISO 8601 duration format, for example
P365D.array
array
Fully qualified names of the domains to assign for governance purposes.
array
PUT /v1/tables
curl -X PUT "{base_url}/api/v1/tables" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "agent_performance_summary",
"databaseSchema": "sample_data.ecommerce_db.shopify",
"description": "Summary of agent performance metrics derived from multiple tables including ssot_utilization_detail for comprehensive reporting.",
"tableType": "Regular",
"columns": [
{"name": "agent_id", "dataType": "VARCHAR", "dataLength": 100, "description": "Agent identifier"},
{"name": "performance_score", "dataType": "DECIMAL", "description": "Overall performance score"}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Tables
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
table = Tables.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
table.description = "Updated customer master data table with PII fields"
updated = Tables.update(table)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Table;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Table table = client.tables().get("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
table.setDescription("Updated customer master data table with PII fields");
Table updated = client.tables().update("a1b2c3d4-e5f6-7890-abcd-ef1234567890", table);
# Update by ID
curl -X PATCH "{base_url}/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/tables/name/sample_data.ecommerce_db.shopify.agent_performance_summary" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated agent performance summary with new metrics."}
]'
{
"id": "455e3d9d-dbbf-455e-b3be-7191daa825f3",
"name": "agent_performance_summary",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary",
"description": "Updated agent performance summary with new metrics.",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/tables/455e3d9d-dbbf-455e-b3be-7191daa825f3",
"tableType": "Regular",
"columns": [
{
"name": "agent_id",
"dataType": "VARCHAR",
"dataLength": 100,
"dataTypeDisplay": "varchar",
"description": "Agent identifier",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.agent_id",
"tags": [],
"ordinalPosition": 1
},
{
"name": "performance_score",
"dataType": "DECIMAL",
"dataTypeDisplay": "decimal",
"description": "Overall performance score",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.agent_performance_summary.performance_score",
"tags": [],
"ordinalPosition": 2
}
],
"owners": [],
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"displayName": "shopify",
"deleted": false
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"displayName": "ecommerce_db",
"deleted": false
},
"service": {
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"type": "databaseService",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"displayName": "sample_data",
"deleted": false
},
"serviceType": "BigQuery",
"tags": [],
"deleted": false
}
Returns
Returns the updated table object with the new version number.Response
string
Unique identifier for the table (UUID format).
string
Table name.
string
Fully qualified name in format
service.database.schema.table.string
Updated description.
number
Incremented version number.
Error Handling
| Code | Error Type | Description |
|---|---|---|
400 | BAD_REQUEST | Invalid or malformed request body |
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to update this table |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?