openapi: 3.0.0 servers: - description: Snowflake Dynamic Table API url: https://org-account.snowflakecomputing.com info: version: 0.0.1 title: Snowflake Dynamic Table API description: The Snowflake Dynamic Table API is a REST API that you can use to access, update, and perform certain actions on Dynamic Tables resource in a Snowflake database. contact: name: Snowflake, Inc. url: https://snowflake.com email: support@snowflake.com paths: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables: get: summary: List Dynamic Tables tags: - dynamic-table description: Lists the dynamic tables under the database and schema. operationId: listDynamicTables parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/like - $ref: common.yaml#/components/parameters/startsWith - $ref: common.yaml#/components/parameters/showLimit - $ref: common.yaml#/components/parameters/fromName - name: deep description: Optionally includes dependency information of the dynamic table. in: query required: false schema: type: boolean example: true responses: '200': description: successful headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: type: array items: $ref: '#/components/schemas/DynamicTable' examples: Listdynamictables200Example: summary: Default listDynamicTables 200 response x-microcks-default: true value: - name: Example Title kind: PERMANENT columns: - {} target_lag: {} refresh_mode: AUTO initialize: ON_CREATE warehouse: example_value cluster_by: - example_value query: example_value data_retention_time_in_days: 10 max_data_extension_time_in_days: 10 comment: example_value created_on: '2026-01-15T10:30:00Z' database_name: example_value schema_name: example_value rows: 10 bytes: 10 scheduling_state: RUNNING automatic_clustering: true owner: example_value owner_role_type: example_value budget: example_value '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Create a Dynamic Table tags: - dynamic-table description: Create a dynamic table, with standard create modifiers as query parameters. See the Dynamic Table component definition for what is required to be provided in the request body. operationId: createDynamicTable parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/createMode requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DynamicTable' examples: CreatedynamictableRequestExample: summary: Default createDynamicTable request x-microcks-default: true value: name: Example Title kind: PERMANENT columns: - name: Example Title datatype: example_value comment: example_value target_lag: {} refresh_mode: AUTO initialize: ON_CREATE warehouse: example_value cluster_by: - example_value query: example_value data_retention_time_in_days: 10 max_data_extension_time_in_days: 10 comment: example_value created_on: '2026-01-15T10:30:00Z' database_name: example_value schema_name: example_value rows: 10 bytes: 10 scheduling_state: RUNNING automatic_clustering: true owner: example_value owner_role_type: example_value budget: example_value responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}: get: summary: Fetch a Dynamic Table. tags: - dynamic-table description: Fetch a Dynamic Table. operationId: fetchDynamicTable parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name responses: '200': description: successful headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: $ref: '#/components/schemas/DynamicTable' examples: Fetchdynamictable200Example: summary: Default fetchDynamicTable 200 response x-microcks-default: true value: name: Example Title kind: PERMANENT columns: - name: Example Title datatype: example_value comment: example_value target_lag: {} refresh_mode: AUTO initialize: ON_CREATE warehouse: example_value cluster_by: - example_value query: example_value data_retention_time_in_days: 10 max_data_extension_time_in_days: 10 comment: example_value created_on: '2026-01-15T10:30:00Z' database_name: example_value schema_name: example_value rows: 10 bytes: 10 scheduling_state: RUNNING automatic_clustering: true owner: example_value owner_role_type: example_value budget: example_value '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Delete a Dynamic Table tags: - dynamic-table description: Delete a dynamic table with the given name. If ifExists is used, the operation will succeed even if the object does not exist. Otherwise, there will be a failure if the drop is unsuccessful. operationId: deleteDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:clone: post: summary: Clone Dynamic Table tags: - dynamic-table description: Create a new dynamic table by cloning from the specified resource operationId: cloneDynamicTable parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/createMode - $ref: common.yaml#/components/parameters/copyGrants - name: targetDatabase in: query description: Database of the newly created dynamic table. Defaults to the source table's database. schema: $ref: ./common.yaml#/components/schemas/Identifier example: example_value - name: targetSchema in: query description: Schema of the newly created dynamic table. Defaults to the source table's schema. schema: $ref: ./common.yaml#/components/schemas/Identifier example: example_value requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DynamicTableClone' examples: ClonedynamictableRequestExample: summary: Default cloneDynamicTable request x-microcks-default: true value: name: Example Title target_lag: {} warehouse: example_value point_of_time: {} responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:undrop: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name summary: Undrop a Dynamic Table tags: - dynamic-table description: Undrop specified dynamic table operationId: undropDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Suspend Refreshes on the Dynamic Table tags: - dynamic-table description: Suspend refreshes on the dynamic table operationId: suspendDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Resume Refreshes on the Dynamic Table tags: - dynamic-table description: Resume refreshes on the dynamic table operationId: resumeDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:refresh: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Refresh the Dynamic Table tags: - dynamic-table description: Specifies that the dynamic table should be manually refreshed operationId: refreshDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend-recluster: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Suspend Recluster of a Dynamic Table tags: - dynamic-table description: Suspend recluster of a dynamic table operationId: suspendReclusterDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume-recluster: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists summary: Resume Recluster of a Dynamic Table tags: - dynamic-table description: Resume recluster of a dynamic table operationId: resumeReclusterDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:swap-with: post: parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/schema - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists - name: targetName description: The name of the target dynamic table to be swapped with. in: query required: true schema: $ref: common.yaml#/components/schemas/Identifier example: example_value - name: targetDatabase in: query description: Database of the target dynamic table. Defaults to the source table's database. schema: $ref: common.yaml#/components/schemas/Identifier example: example_value - name: targetSchema in: query description: Schema of the target dynamic table. Defaults to the source table's schema. schema: $ref: common.yaml#/components/schemas/Identifier example: example_value summary: Swap With Another Dynamic Table tags: - dynamic-table description: Swap with another dynamic table operationId: swapWithDynamicTable responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: DynamicTable: type: object description: A Snowflake dynamic table object. properties: name: type: string description: Specifies the name for the dynamic table, must be unique for the schema in which the dynamic table is created example: Example Title kind: type: string enum: - PERMANENT - TRANSIENT default: PERMANENT description: Specifies the dynamic table type, permanent (default) or transient. example: PERMANENT columns: type: array items: $ref: '#/components/schemas/DynamicTableColumn' example: [] target_lag: $ref: common.yaml#/components/schemas/TargetLag refresh_mode: type: string description: Specifies the refresh type for the dynamic table enum: - AUTO - FULL - INCREMENTAL example: AUTO initialize: type: string description: Specifies the behavior of the initial refresh of the dynamic table enum: - ON_CREATE - ON_SCHEDULE example: ON_CREATE warehouse: type: string description: Specifies the name of the warehouse that provides the compute resources for refreshing the dynamic table example: test_wh cluster_by: type: array description: Specifies one or more columns or column expressions in the dynamic table as the clustering key items: type: string example: [] query: type: string description: Specifies the query whose results the dynamic table should contain example: SELECT * FROM foo data_retention_time_in_days: type: integer description: Specifies the retention period for the dynamic table so that Time Travel actions (SELECT, CLONE) can be performed on historical data in the dynamic table example: 10 max_data_extension_time_in_days: type: integer description: Specifies the retention period for the dynamic table so that Time Travel actions (SELECT, CLONE) can be performed on historical data in the dynamic table example: 10 comment: type: string description: Specifies a comment for the dynamic table. example: example_value created_on: type: string format: date-time readOnly: true description: Date and time when the dynamic table was created. example: '2026-01-15T10:30:00Z' database_name: type: string readOnly: true description: Database in which the dynamic table is stored example: example_value schema_name: type: string readOnly: true description: Schema in which the dynamic table is stored example: example_value rows: type: integer format: int64 readOnly: true description: Number of rows in the dynamic table. 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 scheduling_state: type: string enum: - RUNNING - SUSPENDED readOnly: true description: Scheduling state (RUNNING or SUSPENDED) example: RUNNING 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 dynamic table. example: true owner: type: string readOnly: true description: Role that owns the table example: example_value 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 required: - name - target_lag - warehouse - query DynamicTableColumn: type: object description: A column in the dynamic table properties: name: type: string description: Column name example: Example Title datatype: type: string description: The data type for the column example: example_value comment: type: string description: Specifies a comment for the column example: example_value required: - name DynamicTableClone: type: object description: Clone dynamic table properties: name: type: string description: Specifies the name for the dynamic table, must be unique for the schema in which the dynamic table is created example: Example Title target_lag: $ref: common.yaml#/components/schemas/TargetLag warehouse: type: string description: Specifies the name of the warehouse that provides the compute resources for refreshing the dynamic table example: example_value point_of_time: $ref: common.yaml#/components/schemas/PointOfTime required: - name securitySchemes: KeyPair: $ref: common.yaml#/components/securitySchemes/KeyPair ExternalOAuth: $ref: common.yaml#/components/securitySchemes/ExternalOAuth SnowflakeOAuth: $ref: common.yaml#/components/securitySchemes/SnowflakeOAuth security: - KeyPair: [] - ExternalOAuth: [] - SnowflakeOAuth: []