---
title: Snowflake API Integration on Truto
slug: snowflake
category: Default
canonical: "https://truto.one/integrations/detail/snowflake/"
---

# Snowflake API Integration on Truto



**Category:** Default  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Licenses** — Licenses represent concepts like user seats in apps that support them
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 205 tools for Snowflake that AI agents can call directly.

- **list_all_snowflake_users** — Use this endpoint to retrieve a list of all users.
- **get_single_snowflake_user_by_id** — Use this endpoint to retrieve a single user. It always requires an ID to fetch.
- **delete_a_snowflake_user_by_id** — Use this endpoint to delete a user. It always requires an ID to delete.
- **create_a_snowflake_user** — Create a user in Snowflake with the required name parameter and optional createMode query parameter. Returns user creation status and details including name, email, and roles.
- **update_a_snowflake_user_by_id** — Update a user in Snowflake by specifying the id. Returns the status of the request, indicating success or acceptance for processing.
- **list_all_snowflake_roles** — Use this endpoint to retrieve all the user roles.
- **create_a_snowflake_role** — Create a role in Snowflake with the required name parameter. Returns role details including created_on, owner, is_default, is_current, is_inherited, assigned_to_users, granted_to_roles, and granted_roles.
- **delete_a_snowflake_role_by_id** — Delete a role by id in Snowflake. Supports the ifExists query to handle non-existent roles without error.
- **list_all_snowflake_accounts** — List accessible accounts in Snowflake. Returns account id and name fields for each account.
- **create_a_snowflake_account** — Create an account in Snowflake with required fields name, edition, admin_name, and email. Returns status message indicating success or acceptance of the request.
- **delete_a_snowflake_account_by_id** — Delete the specified account by id in Snowflake. Supports ifExists to avoid error if account does not exist and gracePeriodInDays to specify restoration period. Returns 200 or 202 status.
- **snowflake_accounts_restore** — Restore a dropped account by name in Snowflake. Returns a 200 status for success or 202 if the request is accepted but not completed.
- **list_all_snowflake_alerts** — Use this endpoint to list all alerts in your Snowflake account.
- **create_a_snowflake_alert** — Create an alert in Snowflake with database and schema. Returns status indicating request completion.
- **get_single_snowflake_alert_by_id** — Get alert details by database, schema, and name in Snowflake. Returns alert metadata and status fields.
- **delete_a_snowflake_alert_by_id** — Delete an alert by database, schema, and id in Snowflake. Returns 200 if successful or 202 if request is accepted but not completed. Supports ifExists query to handle non-existent alerts.
- **snowflake_alerts_execute** — Execute an alert in Snowflake with the database, schema, and alert name. Returns a response object indicating success or acceptance status.
- **snowflake_alerts_clone_alert** — Create a new alert by cloning from the specified alert in Snowflake using database, schema, and name. Returns the created alert details.
- **list_all_snowflake_views** — List views in Snowflake for the specified database and schema. Returns view names and optionally their dependency information if deep parameter is true.
- **create_a_snowflake_view** — Create a view in Snowflake with database and schema. Returns view name, columns, query, and creation details.
- **get_single_snowflake_view_by_id** — Get information about a specific view in Snowflake using database, schema, and id. Returns details of the view resource.
- **delete_a_snowflake_view_by_id** — Delete a view by database, schema, and id in Snowflake. Returns success status 200 or 202 based on request processing. Supports ifExists query to handle non-existent views gracefully.
- **list_all_snowflake_warehouses** — List warehouses in Snowflake. Returns warehouse names and details matching the like parameter.
- **create_a_snowflake_warehouse** — Create or replace a virtual warehouse in Snowflake. Returns the created warehouse details upon success.
- **get_single_snowflake_warehouse_by_id** — Get information about a specific warehouse by id in Snowflake. Returns detailed warehouse description including configuration and status fields.
- **delete_a_snowflake_warehouse_by_id** — Delete a virtual warehouse by id in Snowflake. Returns a success status. Use ifExists to avoid errors if the warehouse does not exist.
- **update_a_snowflake_warehouse_by_id** — Update a warehouse by id in Snowflake. Returns warehouse properties including state, started_clusters, running, queued, created_on, updated_on, and owner.
- **snowflake_warehouses_resume** — Resume a suspended warehouse by warehouse name in Snowflake. Returns 200 if successful or 202 if request accepted but not completed.
- **snowflake_warehouses_suspend** — Suspend a warehouse by name in Snowflake. Removes all compute nodes and sets the warehouse to 'Suspended' state if not already suspended. Returns 200 or 202 status on success.
- **snowflake_warehouses_rename** — Update and rename a warehouse by specifying a new unique identifier 'name' in Snowflake. Includes handling for non-existent warehouses with ifExists parameter. Returns success status.
- **snowflake_warehouses_abort_queries** — Abort all queries currently running or queued on the warehouse identified by name in Snowflake. Supports ifExists parameter to handle non-existent warehouses without error.
- **list_all_snowflake_user_defined_functions** — List user-defined-functions in Snowflake for database and schema. Returns user-defined-function names and details filtered by database and schema.
- **create_a_snowflake_user_defined_function** — Create a user-defined function in Snowflake for the specified database and schema. Returns a response object indicating success or acceptance of the request.
- **get_single_snowflake_user_defined_function_by_id** — Get information about a specific user-defined function in Snowflake by database, schema, and id. Returns fields including name, arguments, return_type, language_config, comment, body, created_on, and ownership details.
- **delete_a_snowflake_user_defined_function_by_id** — Delete a user-defined function by database, schema, and id in Snowflake. Returns success status upon completion or acceptance.
- **snowflake_user_defined_functions_rename** — Rename a user-defined function identified by it's name in Snowflake with parameters database and schema. Returns success status of the rename operation.
- **list_all_snowflake_user_grants** — List all grants to the user in Snowflake. Requires the name of the user. Returns grants with details about each grant assigned to the user.
- **create_a_snowflake_user_grant** — Grant a role to the user identified by name in Snowflake. Returns details including created_on and granted_by fields indicating grant creation time and granting role.
- **snowflake_user_grants_revoke** — Revoke grants from the user identified by name in Snowflake. Requires securable details including name, containing_scope with database and securable_type ROLE, and privileges. Returns success status.
- **list_all_snowflake_tasks** — List tasks under the database and schema in Snowflake. Requires database and schema. Returns task details including task names and properties.
- **create_a_snowflake_task** — Create a task in Snowflake with database and schema. Returns task id, name, state, owner, created_on, last_committed_on, and schema_name fields.
- **get_single_snowflake_task_by_id** — Get information about a specific task by database, schema, and id in Snowflake. Returns task details from the describe command output.
- **update_a_snowflake_task_by_id** — Update a task in Snowflake with database, schema, and name. Returns task id, state, owner, creation and modification timestamps, and parent database and schema names.
- **delete_a_snowflake_task_by_id** — Delete a task by name in Snowflake using database and schema. Supports ifExists parameter to avoid error if task does not exist. Returns 200 or 202 status on success.
- **snowflake_tasks_execute** — Execute a task in Snowflake identified by database, schema, and task name. Supports asynchronous execution and retrying the last failed run. Returns 200 for success or 202 if accepted but not completed.
- **snowflake_tasks_resume** — Resume a suspended task identified by database, schema, and task name in Snowflake. Returns a response object indicating the request status.
- **snowflake_tasks_suspend** — Suspend a running task identified by id in Snowflake within the specified database and schema. Returns status of the suspend operation.
- **list_all_snowflake_dependant_tasks** — Get the dependent tasks of a task in Snowflake using database, schema, and task name. Returns dependent tasks with details about each dependent task.
- **list_all_snowflake_tasks_current_graphs** — Get graph runs currently executing or scheduled within the next 8 days for the task identified by its name in Snowflake. Returns details of graph runs, including execution status and schedule.
- **list_all_snowflake_tasks_complete_graphs** — Get completed graph runs for the task identified by name in Snowflake. It requires a database, schema, and task name. Returns details of completed graph runs, including status and timestamps.
- **list_all_snowflake_catelog_integrations** — List catalog integrations in Snowflake.
- **create_a_snowflake_catelog_integration** — Create a catalog integration in Snowflake with the required name and catalog parameters. Returns the created integration details including type, category, and creation timestamp.
- **get_single_snowflake_catelog_integration_by_id** — Get information about a specific catalog integration by id in Snowflake. Returns details of the integration resource.
- **delete_a_snowflake_catelog_integration_by_id** — Delete a catalog integration by id in Snowflake. Returns 200 if successful or if ifExists is true and the resource does not exist, or 202 if the request is accepted but not completed.
- **list_all_snowflake_compute_pools** — List compute pools in Snowflake. Returns compute pool details such as name and status.
- **create_a_snowflake_compute_pool** — Create a compute pool in Snowflake with required parameters name, min_nodes, max_nodes, and instance_family. Returns the created compute pool details including state, created_on, owner, and status_message.
- **get_single_snowflake_compute_pool_by_id** — Get information about a specific compute pool by id in Snowflake. Returns details of the compute pool identified by name.
- **update_a_snowflake_compute_pool_by_id** — Update a compute pool in Snowflake with name, min_nodes, max_nodes, and instance_family. Returns state, num_services, num_jobs, active_nodes, idle_nodes, target_nodes, created_on, resumed_on, updated_on, owner, is_exclusive, application, budget, error_code, and status_message.
- **delete_a_snowflake_compute_pool_by_id** — Delete a compute pool by id in Snowflake. Supports ifExists parameter to avoid error if the compute pool does not exist. Returns 200 on success or 202 if request is accepted but not completed.
- **snowflake_compute_pools_resume** — Resume a suspended compute pool by name in Snowflake. If the compute pool is already running, no action is taken. Returns a 200 status for success or 202 if the request is accepted but not completed.
- **snowflake_compute_pools_suspend** — Suspend an active compute pool by name in Snowflake. Returns 200 if successful or 202 if the request is accepted but not completed. No action if the pool is already suspended.
- **snowflake_compute_pools_stop_all_services** — Stop all services on the compute pool identified by its name in Snowflake.
- **snowflake_cortex_inference_complete** — Perform LLM text completion inference in Snowflake using the model and messages parameters. Returns choices containing the generated completions.
- **list_all_snowflake_databases** — List accessible databases in Snowflake. Returns database names and details. Supports filtering by like, startsWith, showLimit, fromName, and history parameters.
- **get_single_snowflake_database_by_id** — Get information about a specific database in Snowflake by id. Returns database details including status and metadata.
- **create_a_snowflake_database** — Create a database in Snowflake with full database definition. Supports createMode for errorIfExists, orReplace, or ifNotExists, and kind for database type (transient or permanent). Returns response object with creation status.
- **snowflake_databases_clone** — Clone an existing database in Snowflake by name with required full database definition and point_of_time. Returns database creation details including name, kind, created_on, and owner.
- **update_a_snowflake_database_by_id** — Update a database in Snowflake by specifying the full database definition with name. Returns database details including created_on, owner, retention_time, and other configuration fields.
- **delete_a_snowflake_database_by_id** — Delete a database by name in Snowflake. Use ifExists to avoid error if database does not exist. Use restrict to control dropping with foreign key references. Returns 200 or 202 status.
- **snowflake_databases_undrop** — Undrop a database by name in Snowflake. Returns a 200 status for success or 202 if the request is accepted but not completed.
- **list_all_snowflake_cortex_search_service** — Query a Cortex Search Service in Snowflake using database, schema, and service_name. Returns search results with specified columns based on the unstructured text query.
- **create_a_snowflake_database_from_share** — Create a database from a share using share and createMode parameters in Snowflake. Returns success status of the creation request.
- **snowflake_database_replication_enable** — Enable replication for a local database identified by database name in Snowflake by promoting it as a primary database. Returns status of the replication enablement request.
- **snowflake_database_replication_disable** — Disable replication for the primary database identified by database name in Snowflake. Requires name and accounts array. Returns success status indicating if the request was accepted or completed.
- **snowflake_database_replication_refresh** — Refresh a secondary database replication from a snapshot of its primary database in Snowflake using name. Returns status of the refresh request. Only one refresh can run at a time per replica database.
- **snowflake_database_failover_enable** — Enable database failover for database with database name in Snowflake by specifying a list of accounts where a replica can be promoted as primary.
- **snowflake_database_failover_disable** — Disable failover for the primary database in Snowflake using the database name. This prevents any secondary database from being promoted to primary.
- **snowflake_database_failover_sets_primary_database** — Promote the specified secondary database identified by database name to primary in Snowflake. The promoted database becomes writable, and the previous primary becomes read-only.
- **list_all_snowflake_database_roles** — List database roles for the specified database in Snowflake. Returns roles with their details such as role name and privileges.
- **create_a_snowflake_database_role** — Create a database role in Snowflake for the specified database. Returns details including name, comment, created_on, granted_to_roles, granted_to_database_roles, granted_database_roles, owner, and owner_role_type.
- **delete_a_snowflake_database_role_by_id** — Delete a database role by database and id in Snowflake. Returns 200 if successful or 202 if request accepted but not completed.
- **snowflake_database_roles_clone** — Create a new database role by cloning from the specified resource in Snowflake. Requires database and id. Returns success status of the clone operation.
- **list_all_snowflake_database_role_grants** — List all grants to the role with the role name in the database in Snowflake. Returns grant details, including privileges and roles granted.
- **create_a_snowflake_database_role_grant** — Grant privileges to the role with the role name in the specified database in Snowflake. Requires database_name and database_role_name. Returns grant creation status.
- **snowflake_database_role_grants_revoke** — Revoke grants from the role identified by role name in Snowflake for the database specified by database. The response indicates success or acceptance of the revoke operation.
- **list_all_snowflake_database_role_future_grants** — List all future grants to the role with name in database in Snowflake. Returns future_grants including grant details.
- **create_a_snowflake_database_role_future_grant** — Grant future privileges to the role identified by name in Snowflake for the database specified by database. Returns details of the granted privileges, including created_on and granted_by.
- **snowflake_database_role_future_grants_revoke** — Revoke future grants from the role with name in database using Snowflake. Requires database and name. Returns success status of the revoke operation.
- **list_all_snowflake_dynamic_tables** — List dynamic tables under the specified database and schema in Snowflake. Requires database and schema. Returns dynamic table details including dependency information if requested.
- **get_single_snowflake_dynamic_table_by_id** — Get a dynamic table by using the database name, schema, and name in Snowflake. Returns details of the dynamic table, including its structure and metadata.
- **create_a_snowflake_dynamic_table** — Create a dynamic table in Snowflake with the required parameters database_name, database_schema, and request body including name, warehouse, and query. Returns details such as created_on, rows, bytes, scheduling_state, and owner.
- **delete_a_snowflake_dynamic_table_by_id** — Delete a dynamic table by name in Snowflake using database_name and database_schema identifiers. Returns success status if the table is deleted or if ifExists is true and the table does not exist.
- **snowflake_dynamic_tables_clone** — Create a new dynamic table by cloning the specified dynamic table with the name in Snowflake. Requires database_name, database_schema, and dynamic_table_name parameters. Returns the created dynamic table details.
- **snowflake_dynamic_tables_undrop** — Undrop specified dynamic table identified by id in Snowflake within the given database and schema. Returns a response object indicating success or acceptance of the request.
- **snowflake_dynamic_tables_suspend** — Suspend refreshes on the dynamic table identified by name in Snowflake using database and schema parameters. It returns 200 if successful or 202 if the request is accepted but not completed.
- **snowflake_dynamic_tables_resume** — Resume refreshes on the dynamic table in Snowflake using database, schema, and dynamic table name. Returns 200 on success or 202 if the request is accepted but not completed.
- **snowflake_dynamic_tables_refresh** — Refresh the dynamic table identified by name in Snowflake for the specified database and schema. Returns 200 if refreshed or 202 if request accepted but not completed.
- **snowflake_dynamic_tables_suspend_recluster** — Suspend the recluster of a dynamic table in Snowflake using the database, schema, and dynamic table name. Returns 200 if successful or 202 if request accepted but not completed.
- **snowflake_dynamic_tables_resume_recluster** — Resume recluster of a dynamic table in Snowflake using database, schema, and dynamic table name. Returns 200 if successful or 202 if request accepted but not completed.
- **snowflake_dynamic_tables_swap** — Swap a dynamic table identified by name with another dynamic table in Snowflake. It requires a database, schema, name, and targetName. Returns 200 or 202 status indicating swap success or acceptance.
- **list_all_snowflake_event_tables** — List event tables for the specified database and schema in Snowflake. Returns event table names and metadata.
- **create_a_snowflake_event_table** — Create an event table in Snowflake with database and schema. Returns fields including name, cluster_by, data_retention_time_in_days, change_tracking, comment, created_on, owner, rows, bytes, columns, and search optimization details.
- **get_single_snowflake_event_table_by_id** — Get details of a specific event table by database, schema, and id in Snowflake. Returns event table metadata and configuration.
- **delete_a_snowflake_event_table_by_id** — Delete an event table identified by database, schema, and id in Snowflake. Returns 200 if successful or if ifExists is true and the table does not exist, or 202 if the request is accepted but not completed.
- **snowflake_event_tables_rename** — Rename the event table identified by id in Snowflake within the specified database and schema. Returns the success status of the rename operation.
- **list_all_snowflake_external_volumes** — List external volumes in Snowflake filtered by optional like parameter. Returns external volume details matching the filter.
- **create_a_snowflake_external_volume** — Create an external volume in Snowflake with a unique name and specified storage locations. Returns creation details including created_on, owner, and owner_role_type.
- **get_single_snowflake_external_volume_by_id** — Get information about a specific external volume in Snowflake by name. Returns details of the external volume resource.
- **delete_a_snowflake_external_volume_by_id** — Delete an external volume by id in Snowflake. Returns 200 if successful or if ifExists is true and the volume does not exist, or 202 if the request is accepted but not completed.
- **snowflake_external_volumes_undrop** — Undrop an external volume by name in Snowflake. Returns a response object indicating the success or acceptance of the undrop operation.
- **list_all_snowflake_functions** — List user functions under the specified database and schema in Snowflake. Returns function names and details filtered by database and schema.
- **create_a_snowflake_function** — Create a function in Snowflake with database and schema parameters. Returns function details including name, arguments, return type, language, and creation timestamp.
- **get_single_snowflake_function_by_id** — Get details of a specific function by database, schema, and function id in Snowflake. Returns function metadata including name, arguments, and return type.
- **delete_a_snowflake_function_by_id** — Delete a function by id in Snowflake using database and schema identifiers. Returns success status 200 or 202 if accepted but not completed.
- **snowflake_functions_execute** — Execute a function in Snowflake with the database, schema, and function name. Returns execution result or status.
- **list_all_snowflake_image_repositories** — List image repositories under the specified database and schema in Snowflake. Requires database and schema. Returns image repository details.
- **create_a_snowflake_image_repository** — Create an image repository in Snowflake specifying database and schema with createMode. Returns repository details including name, created_on, repository_url, owner, and owner_role_type.
- **get_single_snowflake_image_repository_by_id** — Get information about a specific image repository by database, schema, and id in Snowflake. Returns details of the image repository, including its properties.
- **delete_a_snowflake_image_repository_by_id** — Delete an image repository by id in Snowflake using the database and schema. Supports the ifExists query to avoid error if the repository does not exist. Returns 200 or 202 status.
- **snowflake_image_repositories_images** — List images in the image repository with the name in Snowflake. Returns an image array with image details.
- **list_all_snowflake_managed_accounts** — List accessible managed accounts in Snowflake. Supports filtering by resource name using the like query parameter. Returns managed account details.
- **create_a_snowflake_managed_account** — Create a managed account in Snowflake. Requires name, admin_name, admin_password, and account_type. Returns account details including cloud, region, locator, created_on, url, account_locator_url, and comment.
- **delete_a_snowflake_managed_account_by_id** — Delete a managed account by id in Snowflake. This operation removes the account and all objects created in it, immediately restricting access. Returns status 200 if successful or 202 if the request is accepted but not completed.
- **list_all_snowflake_network_policies** — List network policies in Snowflake. Returns network_policies array with details of each policy.
- **create_a_snowflake_network_policy** — Create a network policy in Snowflake with the required name parameter. Returns the created network policy details including name, allowed and blocked network rules and IP lists, comment, created_on timestamp, owner, and owner_role_type.
- **get_single_snowflake_network_policy_by_id** — Get information about a specific network policy by id in Snowflake. Returns the network_policy object with details of the policy.
- **delete_a_snowflake_network_policy_by_id** — Delete a network policy by id in Snowflake. Requires id. Supports the ifExists query parameter to avoid error if the policy does not exist. Returns 200 on success or 202 if the request is accepted but not completed.
- **list_all_snowflake_notebooks** — List notebooks for the specified database and schema in Snowflake. Returns notebook names and details.
- **get_single_snowflake_notebook_by_id** — Get a notebook by database, schema, and id in Snowflake. Returns notebook details including its name and content.
- **create_a_snowflake_notebook** — Create a notebook in Snowflake specifying database and schema. Returns details including notebook name, version, main_file, comment, query_warehouse, and creation timestamp.
- **delete_a_snowflake_notebook_by_id** — Delete a notebook identified by id in Snowflake under the specified database and schema. Supports ifExists parameter to avoid error if notebook does not exist.
- **snowflake_notebooks_execute** — Execute a notebook identified by its name in Snowflake using database and schema. Returns execution status and results if completed.
- **snowflake_notebooks_rename** — Change the name of the notebook identified by its name in Snowflake. Requires database, schema, and name. The new name must be unique within the schema. Returns the success status of the rename operation.
- **snowflake_notebooks_add_live_version** — Add a LIVE version to the notebook identified by the name of the notebook in Snowflake using the database and schema. Supports setting the LIVE version to the last version with fromLast and adding a comment. Returns the status of the request.
- **snowflake_notebooks_commit** — Commit the LIVE version of the notebook identified by name in the specified database and schema to the Git repository in Snowflake. Returns success status of the commit operation.
- **list_all_snowflake_notification_integrations** — List notification integrations. Returns the integration id and name for each notification integration in Snowflake.
- **get_single_snowflake_notification_integration_by_id** — Get information about a specific notification integration by id in Snowflake. Returns details of the notification integration resource.
- **create_a_snowflake_notification_integration** — Create a notification integration in Snowflake with required name and notification_hook. Returns the created notification integration details including name, enabled status, comment, created_on, and notification_hook.
- **delete_a_snowflake_notification_integration_by_id** — Delete a notification integration by id in Snowflake. Requires name. It supports the ifExists query parameter in controlling behavior when the resource does not exist.
- **list_all_snowflake_pipes** — List pipes in Snowflake for the specified database and schema. Returns pipe names and details matching the required database and schema parameters.
- **get_single_snowflake_pipe_by_id** — Get information about a specific pipe in Snowflake. Requires database, schema, and id. Returns pipe details including configuration and status.
- **create_a_snowflake_pipe** — Create a pipe in Snowflake with database and schema. Requires name and copy_statement. Returns created_on, database_name, schema_name, owner, pattern, owner_role_type, invalid_reason, and budget fields in the response.
- **delete_a_snowflake_pipe_by_id** — Delete a pipe identified by id in Snowflake within the specified database and schema. The response indicates success or acceptance of the deletion request.
- **snowflake_pipes_refresh** — Refresh the pipe identified by name in Snowflake within the specified database and schema. Returns 200 if successful or 202 if the request is accepted but not completed.
- **list_all_snowflake_procedures** — List procedures for the specified database and schema in Snowflake. Returns procedure names and details matching the database and schema parameters.
- **get_single_snowflake_procedure_by_id** — Get information about a specific procedure by database, schema, and procedure id in Snowflake. Returns procedure details including name, arguments, and definition.
- **create_a_snowflake_procedure** — Create a procedure in Snowflake specifying database and schema. Returns the created procedure details including name, arguments, return type, language, and body.
- **delete_a_snowflake_procedure_by_id** — Delete a procedure identified by database, schema, and id in Snowflake. Returns success status without content. Use ifExists to avoid errors if the procedure does not exist.
- **snowflake_procedures_call** — Call a procedure in Snowflake with database, schema, and id. Returns a response object indicating the call status.
- **get_single_snowflake_result_by_id** — Get the status of the result or fetch the result in Snowflake using the id. Depending on completion, it returns status or result data.
- **list_all_snowflake_schemas** — List accessible schemas for the database specified by database in Snowflake. Returns schema names and details. Supports filtering by like, startsWith, showLimit, fromName, and history parameters.
- **get_single_snowflake_schema_by_id** — Get schema details for a specific database and schema name in Snowflake. Requires database_name and id parameters. Returns schema information, including metadata and structure.
- **create_a_snowflake_schema** — Create a schema in Snowflake with the required database parameter. Returns schema details including name, kind, created_on, owner, and retention_time.
- **snowflake_schemas_clone** — Clone an existing schema identified by the database and schema name in Snowflake. It requires a full schema definition in the request body. Supports createMode, kind, and targetDatabase as query parameters. Returns the status of the clone operation.
- **snowflake_schemas_undrop** — Undrop a schema identified by name in the specified database in Snowflake. Returns a response object indicating success or acceptance of the undrop request.
- **update_a_snowflake_schema_by_id** — Create or alter a schema with id in database using Snowflake. Returns schema details including created_on, name, kind, owner, and retention_time.
- **delete_a_snowflake_schema_by_id** — Delete a schema by database and id in Snowflake. Supports ifExists to avoid error if schema does not exist, and restrict to control dropping with foreign key references. Returns 200 or 202 status.
- **list_all_snowflake_services** — List services under the specified database and schema in Snowflake. Requires database and schema. Returns service details including service names.
- **get_single_snowflake_service_by_id** — Get information about a specific service by database, schema, and id in Snowflake. Returns service details including key attributes of the service.
- **create_a_snowflake_service** — Create a service in Snowflake with required parameters database, schema, name, compute_pool, and spec. Returns service details including name, status, owner, DNS name, and timestamps.
- **snowflake_services_execute_job_service** — Create and execute a job service in Snowflake with database and schema. Returns the job execution response object.
- **update_a_snowflake_service_by_id** — Update a service with the id in Snowflake under the specified database and schema. Returns service details including current_instances, target_instances, status, dns_name, owner, and timestamps for creation and updates.
- **delete_a_snowflake_service_by_id** — Delete a service by database, schema, and id in Snowflake. Use ifExists to avoid error if the service does not exist. Returns 200 on success or 202 if request accepted but not completed.
- **snowflake_services_status** — Fetch the status of a specific service by database, schema, and service name in Snowflake. Returns the current state or steady state if reached within the timeout.
- **snowflake_services_resume** — Resume a service identified by name in Snowflake within the specified database and schema. Returns a 200 or 202 status indicating success or acceptance of the request.
- **snowflake_services_suspend** — Suspend a service by database, schema, and id in Snowflake. Returns 200 if successful or 202 if request is accepted but not completed. Supports ifExists to handle non-existent resources.
- **list_all_snowflake_service_logs** — Fetch logs for a given service identified by database, schema, and service name in Snowflake. Returns log lines with details about the service instance and container name if specified.
- **list_all_snowflake_service_containers** — List all containers of the service in Snowflake using database, schema, and service name. Returns container details in the response.
- **list_all_snowflake_service_instances** — List all instances of the service in Snowflake for the specified database, schema, and service name. Returns instance details in the response.
- **list_all_snowflake_service_roles** — List all the service roles of the service in Snowflake. Requires database, schema, and service name. Returns roles with their details.
- **snowflake_service_roles_grants** — List all the grants of the service role with the name in Snowflake for the specified database, schema, and service. Returns grants, including their details.
- **snowflake_service_roles_grants_given** — List all the grants given to the service role with the name in Snowflake for the specified database, schema, and service. Returns grants, including their details.
- **list_all_snowflake_service_endpoints** — List endpoints in a Snowpark Container Services service using database, schema, and service name. Returns endpoint details in the response.
- **list_all_snowflake_stages** — List stages under the specified database and schema in Snowflake. Requires database and schema. Returns stage names and details.
- **get_single_snowflake_stage_by_id** — Get information about a specific stage using database, schema, and id in Snowflake. Returns stage details from the describe command output.
- **create_a_snowflake_stage** — Create a stage in Snowflake with required parameters database and schema. Returns stage details including name, kind, url, storage_integration, comment, owner, region, and cloud.
- **delete_a_snowflake_stage_by_id** — Delete a stage by id in Snowflake using database and schema. Supports ifExists parameter to avoid error if the stage does not exist. Returns 200 or 202 status on success.
- **snowflake_stages_files** — List files in the stage with database, schema, and stage name. Returns file details matching the optional pattern filter.
- **snowflake_stage_file_presigned_url_presigned_url** — Generate a presigned URL for uploading or downloading a file at the specified filePath in the stage name within schema and database in Snowflake. Returns the presigned URL and optionally encryption materials.
- **list_all_snowflake_streams** — List streams in Snowflake for the specified database and schema. Returns stream names and metadata.
- **get_single_snowflake_stream_by_id** — Get information about a specific stream in Snowflake. Requires database, schema, and id. Returns details of the stream resource.
- **delete_a_snowflake_stream_by_id** — Delete a stream by database, schema, and id in Snowflake. Returns success status 200 or 202. Use ifExists to avoid error if stream does not exist.
- **snowflake_streams_clone** — Clone a stream with its name in Snowflake using the database, schema. Returns the cloned stream object with its details.
- **create_a_snowflake_stream** — Create a stream in Snowflake with required parameters database and schema. Returns stream details including name, creation time, source table, owner, mode, and staleness status.
- **list_all_snowflake_tables** — List tables under the specified database and schema in Snowflake. Requires database and schema. Returns table names and details.
- **create_a_snowflake_table** — Create a table in Snowflake specifying database and schema. Returns table name, kind, columns, created_on, database_name, schema_name, rows, bytes, owner, and table_type.
- **get_single_snowflake_table_by_id** — Get information about a specific table in Snowflake using database, schema, and id. Returns table details from the describe command output.
- **update_a_snowflake_table_by_id** — Update a table with id in Snowflake under the specified database and schema. Returns table metadata including created_on, database_name, schema_name, rows, bytes, owner, dropped_on, automatic_clustering, search_optimization, search_optimization_progress, search_optimization_bytes, owner_role_type, budget, and table_type.
- **delete_a_snowflake_table_by_id** — Delete a table by database, schema, and id in Snowflake. Returns success status if the table is deleted or if ifExists is true and the table does not exist.
- **snowflake_tables_clone** — Create a new table by cloning an existing table in Snowflake. Requires database, schema, and name of the source table. Returns the cloned table's name, kind, columns, created_on, database_name, schema_name, rows, bytes, owner, and table_type.
- **snowflake_tables_create_like** — Create a new empty table like the specified table in Snowflake. Requires database, schema, and name. Supports createMode and copyGrants query parameters. Returns the created table resource.
- **snowflake_tables_undrop** — Undrop specified table identified by database, schema, and table name in Snowflake. Returns a response object indicating success or acceptance of the undrop request.
- **snowflake_tables_suspend_recluster** — Suspend recluster of a table in Snowflake using database, schema, and table name. Returns 200 if successful or 202 if request accepted but not completed.
- **snowflake_tables_resume_recluster** — Resume recluster of a table identified by database, schema, and table name in Snowflake. Returns 200 if successful or 202 if the request is accepted but not completed. Handles non-existence based on ifExists parameter.
- **snowflake_tables_swap_with** — Swap the table identified by its name with another table specified by targetName, optionally in targetDatabase and targetSchema, in Snowflake. Returns 200 on success or 202 if the request is accepted but not completed.
- **create_a_snowflake_table_using_templete** — Create a table using template in Snowflake with database and schema. Returns the created table's details including name. Requires name in request body.
- **create_a_snowflake_table_using_select_query** — Create a table using the result of the specified select query in Snowflake. Requires database, schema, and request body with table name and columns. Supports createMode and copyGrants query parameters.
- **list_all_snowflake_role_grants** — List all grants to the role with its name in Snowflake. Returns grants, including key details about each grant.
- **create_a_snowflake_role_grant** — Grant privileges to the role identified by id in Snowflake. Requires securable details including name, containing_scope with database, securable_type, and privileges. Returns grant creation status.
- **snowflake_role_grants_revoke** — Revoke grants from the role with the name, including containing_scope, securable_type, and privileges. The mode query parameter controls the revoke behavior and returns a success status.
- **snowflake_role_grants_grants_of** — List all grants of the role with name. Returns grants including key details about each grant in Snowflake.
- **snowflake_role_grants_grants_on** — List all grants on the role with name. Returns grants including details about the granted privileges and objects.
- **list_all_snowflake_role_future_grants** — List all future grants to the role with name. Returns future_grants array containing details of each grant.
- **create_a_snowflake_role_future_grant** — Grant future privileges to the role identified by its name in Snowflake. It requires securable details, including name, containing_scope with database, and securable_type, and privileges. Returns grant creation details, including created_on and granted_by.
- **snowflake_role_future_grants_revoke** — Revoke future grants from the role with its name. The response confirms the revoke operation status.

## How it works

1. **Link your customer's Snowflake account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Snowflake.** The Proxy API is a 1-to-1 mapping of the Snowflake API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate security and access governance across customer Snowflake environments** — Security and compliance SaaS platforms can programmatically audit and manage users, roles, grants, and network policies in their customers' Snowflake accounts. This enables continuous RBAC enforcement, SOC2/HIPAA compliance monitoring, and automated remediation without manual intervention.
- **Provision and orchestrate data pipelines on behalf of customers** — Data integration or observability SaaS products can create and manage stages, pipes, tasks, dynamic tables, and warehouses directly in a customer's Snowflake instance. This lets you offer turnkey pipeline setup, anomaly-driven pause/resume, and cost-optimized compute scheduling as native product features.
- **Sync identity and role data via a Unified User Directory** — Identity providers, HR platforms, and access management tools can leverage Truto's Unified User Directory API to list, create, update, and delete Snowflake users and roles through a standardized interface — the same abstraction that works across dozens of other directory providers.
- **Enable in-place AI inference on customer data without data movement** — AI and GenAI SaaS products can invoke Snowflake Cortex inference and Cortex Search Services directly within the customer's environment, generating LLM completions and semantic search results on proprietary data without ever extracting it from Snowflake.
- **Offer warehouse-native analytics and reverse ETL from Snowflake** — Product analytics, marketing automation, and billing platforms can query customer Snowflake tables, views, and dynamic tables to pull cohorts, usage metrics, or billing telemetry — powering SaaS features with warehouse-native data freshness.

## What you can build

- **Automated Snowflake RBAC Provisioning** — Programmatically create users, assign roles, and manage granular grants and future grants across databases and schemas to enforce least-privilege access policies in customer environments.
- **Dynamic Warehouse Scaling and Cost Controls** — Resume, suspend, and resize customer warehouses on demand — spinning up compute only when your product needs it and suspending it immediately after to minimize credit consumption.
- **Self-Service Data Pipeline Builder** — Let your users configure automated ingestion pipelines by provisioning stages, Snowpipe pipes, tables, and scheduled tasks directly from your product's UI, with full lifecycle management including pause, resume, and teardown.
- **Cortex-Powered In-Place AI Features** — Offer LLM summarization, classification, or Q&A features that run Snowflake Cortex inference completions and Cortex Search against data that never leaves the customer's account.
- **Continuous Compliance Audit Dashboard** — Surface a real-time view of network policies, user grants, role assignments, and alert configurations across connected Snowflake accounts to flag misconfigurations and policy drift.
- **Unified User Directory Sync for Snowflake** — Use Truto's Unified User Directory API to read and write Snowflake users, roles, and licenses through the same normalized schema your product already uses for other identity providers.

## FAQs

### What authentication methods does the Snowflake integration support?

Truto handles Snowflake authentication on your behalf, supporting key-pair and OAuth-based auth flows. Your end users connect their Snowflake accounts through Truto's managed auth layer, so you never handle raw credentials directly.

### Which Snowflake resources can I manage through Truto?

The integration covers a broad control plane: users, roles, grants (including future grants), databases, schemas, tables, views, dynamic tables, warehouses, tasks, stages, pipes, streams, alerts, compute pools, functions, procedures, services, network policies, notification integrations, notebooks, event tables, external volumes, image repositories, catalog integrations, and Cortex inference and search endpoints.

### Does Truto provide a Unified API for Snowflake user and role management?

Yes. Snowflake is mapped to Truto's Unified User Directory API, which normalizes Users, Roles, and Licenses. You can list, create, update, and delete users and roles through the same standardized schema used across other directory integrations.

### Can I manage warehouse lifecycle (start, stop, scale) programmatically?

Absolutely. The integration supports creating, updating, resuming, suspending, renaming, and deleting warehouses, as well as aborting in-flight queries — giving you full programmatic control over compute resources and costs.

### How does Truto handle pagination and rate limits for Snowflake APIs?

Truto abstracts away Snowflake's pagination mechanics automatically. When you call list endpoints (e.g., list all tables or list all users), Truto handles cursor-based pagination internally and returns complete result sets. Rate limit retries are managed by the platform.

### Can I invoke Snowflake Cortex LLM inference through Truto?

Yes. The snowflake_cortex_inference_complete tool lets you trigger LLM text completions directly within the customer's Snowflake environment. You can also list and create Cortex Search Services for semantic search over enterprise data.
