Snowflake · Schema
Table
A Snowflake table
DataData WarehouseData LakehouseCloud Data PlatformAnalyticsArtificial IntelligenceData EngineeringData GovernanceSQLApache IcebergModel Context ProtocolT1
Properties
| Name | Type | Description |
|---|---|---|
| name | string | Specifies the name for the table, must be unique for the schema in which the table is created |
| kind | string | Table type - permanent, transient, or temporary |
| cluster_by | array | Specifies one or more columns or column expressions in the table as the clustering key |
| enable_schema_evolution | boolean | Table has schema evolution enabled or disabled |
| change_tracking | boolean | Change tracking is enabled or disabled |
| data_retention_time_in_days | integer | Specifies the retention period for the table so that Time Travel actions SELECT, CLONE, UNDROP can be performed on historical data in the table |
| max_data_extension_time_in_days | integer | Specifies the retention period for the table so that Time Travel actions SELECT, CLONE, UNDROP can be performed on historical data in the table |
| default_ddl_collation | string | Specifies a default collation specification for the columns in the table, including columns added to the table in the future |
| columns | array | |
| constraints | array | |
| comment | string | Comment for the table |
| created_on | string | Date and time when the table was created. |
| database_name | string | Database in which the table is stored |
| schema_name | string | Schema in which the table is stored |
| rows | integer | Number of rows in the table. Returns NULL for external tables. |
| bytes | integer | Number of bytes that will be scanned if the entire table is scanned in a query. Note that this number may be different than the number of actual physical bytes stored on-disk for the table |
| owner | string | Role that owns the table |
| dropped_on | string | Date and time when the table was dropped |
| automatic_clustering | boolean | If Automatic Clustering is enabled for your account, specifies whether it is explicitly enabled or disabled for the table. |
| search_optimization | boolean | If ON, the table has the search optimization service enabled |
| search_optimization_progress | integer | Percentage of the table that has been optimized for search. |
| search_optimization_bytes | integer | Number of additional bytes of storage that the search optimization service consumes for this table |
| owner_role_type | string | The type of role that owns the object. |
| budget | string | Name of the budget if the object is monitored by a budget |
| table_type | string | Type of the table |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Table",
"title": "Table",
"type": "object",
"description": "A Snowflake table",
"properties": {
"name": {
"type": "string",
"description": "Specifies the name for the table, must be unique for the schema in which the table is created",
"example": "Example Title"
},
"kind": {
"type": "string",
"enum": [
"PERMANENT",
"TRANSIENT",
"TEMPORARY",
"",
"transient",
"temporary"
],
"x-enum-varnames": [
"PERMANENT",
"TRANSIENT",
"TEMPORARY",
"DEPRECATED_PERMANENT",
"DEPRECATED_TRANSIENT",
"DEPRECATED_TEMPORARY"
],
"default": "PERMANENT",
"description": "Table type - permanent, transient, or temporary",
"example": "PERMANENT"
},
"cluster_by": {
"type": "array",
"description": "Specifies one or more columns or column expressions in the table as the clustering key",
"items": {
"type": "string"
},
"example": []
},
"enable_schema_evolution": {
"type": "boolean",
"description": "Table has schema evolution enabled or disabled",
"example": true
},
"change_tracking": {
"type": "boolean",
"description": "Change tracking is enabled or disabled",
"example": true
},
"data_retention_time_in_days": {
"type": "integer",
"description": "Specifies the retention period for the table so that Time Travel actions SELECT, CLONE, UNDROP can be performed on historical data in the table",
"example": 10
},
"max_data_extension_time_in_days": {
"type": "integer",
"description": "Specifies the retention period for the table so that Time Travel actions SELECT, CLONE, UNDROP can be performed on historical data in the table",
"example": 10
},
"default_ddl_collation": {
"type": "string",
"description": "Specifies a default collation specification for the columns in the table, including columns added to the table in the future",
"example": "example_value"
},
"columns": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TableColumn"
},
"example": []
},
"constraints": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Constraint"
},
"example": []
},
"comment": {
"type": "string",
"description": "Comment for the table",
"example": "example_value"
},
"created_on": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date and time when the table was created.",
"example": "2026-01-15T10:30:00Z"
},
"database_name": {
"type": "string",
"readOnly": true,
"description": "Database in which the table is stored",
"example": "example_value"
},
"schema_name": {
"type": "string",
"readOnly": true,
"description": "Schema in which the table is stored",
"example": "example_value"
},
"rows": {
"type": "integer",
"format": "int64",
"readOnly": true,
"description": "Number of rows in the table. Returns NULL for external tables.",
"example": 10
},
"bytes": {
"type": "integer",
"format": "int64",
"readOnly": true,
"description": "Number of bytes that will be scanned if the entire table is scanned in a query. Note that this number may be different than the number of actual physical bytes stored on-disk for the table",
"example": 10
},
"owner": {
"type": "string",
"readOnly": true,
"description": "Role that owns the table",
"example": "example_value"
},
"dropped_on": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date and time when the table was dropped",
"example": "2026-01-15T10:30:00Z"
},
"automatic_clustering": {
"type": "boolean",
"readOnly": true,
"description": "If Automatic Clustering is enabled for your account, specifies whether it is explicitly enabled or disabled for the table.",
"example": true
},
"search_optimization": {
"type": "boolean",
"readOnly": true,
"description": "If ON, the table has the search optimization service enabled",
"example": true
},
"search_optimization_progress": {
"type": "integer",
"format": "int64",
"readOnly": true,
"description": "Percentage of the table that has been optimized for search.",
"example": 10
},
"search_optimization_bytes": {
"type": "integer",
"format": "int64",
"readOnly": true,
"description": "Number of additional bytes of storage that the search optimization service consumes for this table",
"example": 10
},
"owner_role_type": {
"type": "string",
"readOnly": true,
"description": "The type of role that owns the object.",
"example": "example_value"
},
"budget": {
"type": "string",
"readOnly": true,
"description": "Name of the budget if the object is monitored by a budget",
"example": "example_value"
},
"table_type": {
"type": "string",
"enum": [
"NORMAL",
"DYNAMIC",
"EXTERNAL",
"EVENT",
"HYBRID",
"ICEBERG",
"IMMUTABLE"
],
"readOnly": true,
"description": "Type of the table",
"example": "NORMAL"
}
},
"required": [
"name"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/snowflake-table"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.