Snowflake Compute Pools API

The Snowflake Compute Pools API is a REST API that you can use to access, update, and perform common actions on Compute Pool resources.

OpenAPI Specification

compute-pool.yaml Raw ↑
openapi: 3.0.0
servers:
- description: Snowflake Compute Pools API
  url: https://org-account.snowflakecomputing.com
info:
  version: 0.0.1
  title: Snowflake Compute Pools API
  description: The Snowflake Compute Pools API is a REST API that you can use to access, update, and perform common actions on Compute Pool resources.
  contact:
    name: Snowflake, Inc.
    url: https://snowflake.com
    email: support@snowflake.com
paths:
  /api/v2/compute-pools:
    get:
      summary: Lists Compute Pools.
      tags:
      - compute-pool
      description: Lists the compute pools under the account.
      operationId: listComputePools
      parameters:
      - $ref: common.yaml#/components/parameters/like
      - $ref: common.yaml#/components/parameters/startsWith
      - $ref: common.yaml#/components/parameters/showLimit
      responses:
        '200':
          description: Successful request.
          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/ComputePool'
              examples:
                Listcomputepools200Example:
                  summary: Default listComputePools 200 response
                  x-microcks-default: true
                  value:
                  - name: {}
                    min_nodes: 10
                    max_nodes: 10
                    instance_family: example_value
                    auto_resume: true
                    comment: example_value
                    state: UNKNOWN
                    num_services: 10
                    num_jobs: 10
                    auto_suspend_secs: 10
                    active_nodes: 10
                    idle_nodes: 10
                    target_nodes: 10
                    created_on: '2026-01-15T10:30:00Z'
                    resumed_on: '2026-01-15T10:30:00Z'
                    updated_on: '2026-01-15T10:30:00Z'
                    owner: example_value
                    is_exclusive: true
                    application: example_value
                    budget: example_value
                    error_code: example_value
                    status_message: 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
        '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: Creates a Compute Pool.
      tags:
      - compute-pool
      description: Creates a compute pool, with standard create modifiers as query parameters. See the Compute Pool component definition for what is required to be provided in the request body.
      operationId: createComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/createMode
      - name: initiallySuspended
        in: query
        description: Specifies whether the compute pool is created initially in the suspended state.
        schema:
          type: boolean
        example: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComputePool'
            examples:
              CreatecomputepoolRequestExample:
                summary: Default createComputePool request
                x-microcks-default: true
                value:
                  name: {}
                  min_nodes: 10
                  max_nodes: 10
                  instance_family: example_value
                  auto_resume: true
                  comment: example_value
                  state: UNKNOWN
                  num_services: 10
                  num_jobs: 10
                  auto_suspend_secs: 10
                  active_nodes: 10
                  idle_nodes: 10
                  target_nodes: 10
                  created_on: '2026-01-15T10:30:00Z'
                  resumed_on: '2026-01-15T10:30:00Z'
                  updated_on: '2026-01-15T10:30:00Z'
                  owner: example_value
                  is_exclusive: true
                  application: example_value
                  budget: example_value
                  error_code: example_value
                  status_message: 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
        '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/compute-pools/{name}:
    get:
      summary: Fetches a Compute Pool.
      tags:
      - compute-pool
      description: Fetches a named compute pool. You can get the name of the compute pool from the `/api/v2/compute-pools` GET request.
      operationId: fetchComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/name
      responses:
        '200':
          description: Successful request.
          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/ComputePool'
              examples:
                Fetchcomputepool200Example:
                  summary: Default fetchComputePool 200 response
                  x-microcks-default: true
                  value:
                    name: {}
                    min_nodes: 10
                    max_nodes: 10
                    instance_family: example_value
                    auto_resume: true
                    comment: example_value
                    state: UNKNOWN
                    num_services: 10
                    num_jobs: 10
                    auto_suspend_secs: 10
                    active_nodes: 10
                    idle_nodes: 10
                    target_nodes: 10
                    created_on: '2026-01-15T10:30:00Z'
                    resumed_on: '2026-01-15T10:30:00Z'
                    updated_on: '2026-01-15T10:30:00Z'
                    owner: example_value
                    is_exclusive: true
                    application: example_value
                    budget: example_value
                    error_code: example_value
                    status_message: 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
        '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
    put:
      summary: Create a (or Alter an Existing) Compute Pool.
      tags:
      - compute-pool
      description: Create a (or alter an existing) compute pool. Even if the operation is just an alter, the full property set must be provided.
      operationId: createOrAlterComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComputePool'
            examples:
              CreateoraltercomputepoolRequestExample:
                summary: Default createOrAlterComputePool request
                x-microcks-default: true
                value:
                  name: {}
                  min_nodes: 10
                  max_nodes: 10
                  instance_family: example_value
                  auto_resume: true
                  comment: example_value
                  state: UNKNOWN
                  num_services: 10
                  num_jobs: 10
                  auto_suspend_secs: 10
                  active_nodes: 10
                  idle_nodes: 10
                  target_nodes: 10
                  created_on: '2026-01-15T10:30:00Z'
                  resumed_on: '2026-01-15T10:30:00Z'
                  updated_on: '2026-01-15T10:30:00Z'
                  owner: example_value
                  is_exclusive: true
                  application: example_value
                  budget: example_value
                  error_code: example_value
                  status_message: 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
        '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/name
      - $ref: common.yaml#/components/parameters/ifExists
      summary: Deletes a Compute Pool.
      tags:
      - compute-pool
      description: Deletes a compute pool with the given name. If you enable the `ifExists` parameter, the operation succeeds even if the object does not exist. Otherwise, a 404 failure is returned if
        the object does not exist.
      operationId: deleteComputePool
      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
        '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/compute-pools/{name}:resume:
    post:
      summary: Resumes a Suspended Compute Pool.
      tags:
      - compute-pool
      description: Resume a compute pool, if suspended. If the specified compute pool is already running, this will cause a 400 Bad Request error.
      operationId: resumeComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/name
      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
        '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/compute-pools/{name}:suspend:
    post:
      summary: Suspends an Active Compute Pool.
      tags:
      - compute-pool
      description: Suspend a compute pool, if active. If the specified compute pool is already suspended, no action is taken.
      operationId: suspendComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/name
      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
        '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/compute-pools/{name}:stopallservices:
    post:
      deprecated: true
      summary: Stops All Services on the Compute Pool.
      tags:
      - compute-pool
      description: Stops all services in the compute pool. Deprecated - use :stop-all-services instead.
      operationId: stopAllServicesInComputePoolDeprecated
      parameters:
      - $ref: common.yaml#/components/parameters/name
      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
        '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/compute-pools/{name}:stop-all-services:
    post:
      summary: Stops All Services on the Compute Pool.
      tags:
      - compute-pool
      description: Stops all services in the compute pool.
      operationId: stopAllServicesInComputePool
      parameters:
      - $ref: common.yaml#/components/parameters/name
      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
        '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:
    ComputePool:
      type: object
      description: A Snowflake compute pool definition.
      properties:
        name:
          $ref: ./common.yaml#/components/schemas/Identifier
        min_nodes:
          type: integer
          description: Minimum number of nodes for the compute pool.
          example: 10
        max_nodes:
          type: integer
          description: Maximum number of nodes for the compute pool.
          example: 10
        instance_family:
          type: string
          description: Instance family for the compute pool.
          example: example_value
        auto_resume:
          type: boolean
          description: Whether Snowflake automatically resumes the compute pool when any statement that requires the compute pool is submitted.
          example: true
        comment:
          type: string
          description: Comment describing the compute pool.
          example: example_value
        state:
          type: string
          description: Current state of the compute pool. Possible values include UNKNOWN, STARTING, IDLE, ACTIVE, STOPPING, SUSPENDED, and RESIZING.
          readOnly: true
          enum:
          - UNKNOWN
          - STARTING
          - IDLE
          - ACTIVE
          - STOPPING
          - SUSPENDED
          - RESIZING
          example: UNKNOWN
        num_services:
          type: integer
          description: Number of services on the compute pool.
          readOnly: true
          example: 10
        num_jobs:
          type: integer
          description: Number of jobs on the compute pool.
          readOnly: true
          example: 10
        auto_suspend_secs:
          type: integer
          description: Number of seconds until the compute pool automatically suspends.
          format: int64
          example: 10
        active_nodes:
          type: integer
          description: Number of currently active nodes on the compute pool.
          readOnly: true
          example: 10
        idle_nodes:
          type: integer
          description: Number of currently idle nodes on the compute pool.
          readOnly: true
          example: 10
        target_nodes:
          type: integer
          description: Number of target nodes on the compute pool.
          readOnly: true
          example: 10
        created_on:
          type: string
          description: Time the compute pool was created.
          format: date-time
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        resumed_on:
          type: string
          description: Time the compute pool was last resumed.
          format: date-time
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        updated_on:
          type: string
          description: Time the compute pool was last updated.
          format: date-time
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        owner:
          type: string
          description: Identifier for the current owner of the compute pool.
          readOnly: true
          example: example_value
        is_exclusive:
          type: boolean
          description: Whether a compute pool is created exclusively for a Snowflake Native App.
          readOnly: true
          example: true
        application:
          type: string
          description: Name of the Snowflake Native App if the compute pool is created exclusively for the app.
          readOnly: true
          example: example_value
        budget:
          type: string
          description: The name of the budget monitoring the credit usage of the compute pool.
          readOnly: true
          example: example_value
        error_code:
          type: string
          description: Current error the compute pool hit if any.
          readOnly: true
          example: example_value
        status_message:
          type: string
          description: Current status of the compute pool if any.
          readOnly: true
          example: example_value
      example:
        name: compute_pool_name
        warehouse: test_wh
        min_nodes: 4
        max_nodes: 5
        instance_family: compute_pool_family
        auto_resume: false
        comment: test_comment
        state: STARTING
        num_services: 1
        num_jobs: 3
        auto_suspend_secs: 10
        active_nodes: 2
        idle_nodes: 2
        target_nodes: 4
        created_on: '2024-06-18T01:01:01.111111'
        updated_on: '2024-06-18T01:01:01.111111'
        resumed_on: '2024-06-18T01:01:01.111111'
        owner: POOL_ADMIN
        is_exclusive: true
        application: testapp
        budget: testbudget
        error_code: '392507'
        status_message: Compute Pool is resizing for last 10 minutes. We have observed CAPACITY_ERROR. Please refer to our documentation.
      required:
      - name
      - instance_family
      - min_nodes
      - max_nodes
  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: []
tags:
- name: compute-pool