> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sfcompute.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List SKU availability

> The purchasable-capacity schedule of every SKU, optionally narrowed by a `sku_query` property filter.



## OpenAPI

````yaml /preview/openapi.json get /v2/skus/availability
openapi: 3.1.0
info:
  title: sfc-api
  description: >-
    SF Compute API. Routes under /preview/v2 are preview - subject to change;
    prefer the /v2 routes.
  version: 0.1.0
servers:
  - url: https://api.sfcompute.com
security:
  - bearer_auth: []
tags:
  - name: Account
    description: The authenticated account and logged-in user.
  - name: Pools
    description: A bucket of owned compute balance over time.
  - name: Orders
    description: >-
      Place orders targeting a capacity to increase your reserved compute
      balance during some time period.
  - name: Instance Templates
    description: Reusable instance configuration.
  - name: Images
    description: Custom machine images for instances.
  - name: Roles
    description: TOML-based permission role definitions.
  - name: Grants
    description: Bind principals (users or tokens) to roles on a workspace.
  - name: Tokens
    description: Workspace-scoped API tokens.
  - name: Instances
    description: Spin up instances in a capacity to use your available compute.
  - name: Instance SKU Catalog
    description: Browse available instance SKU property definitions.
  - name: Procurements
    description: Market automations that maintain capacity by placing buy/sell orders.
  - name: Deployments
    description: >-
      Deployment automations that maintain a fleet of instances, including spot
      deployments that buy capacity up to a maximum price.
  - name: Users
    description: Read-only access to users within the caller's organization.
  - name: Workspaces
    description: Resource containers scoped to an account.
  - name: Permissions
    description: Inspect what the caller is allowed to do.
  - name: Billing
    description: Billing profile, contacts, and auto top-up settings.
  - name: Orderbook
    description: >-
      Read-only orderbook visibility: bid/ask spread, depth, open and filled
      orders, and historical fills, keyed on hardware requirements + delivery
      window.
  - name: Orders
    description: >-
      Estimate an order before placing it: filled price, fee, and operational
      notices.
paths:
  /v2/skus/availability:
    get:
      tags:
        - SKUs
      summary: List SKU availability
      description: >-
        The purchasable-capacity schedule of every SKU, optionally narrowed by a
        `sku_query` property filter.
      operationId: list_sku_availability
      parameters:
        - name: limit
          in: query
          description: Maximum number of results to return (1-200, default 50).
          required: false
          schema:
            type: integer
            format: u-int32
            default: 50
            maximum: 200
            minimum: 1
        - name: starting_after
          in: query
          description: >-
            Cursor for forward pagination (from a previous response's `cursor`
            field).
          required: false
          schema:
            $ref: '#/components/schemas/SkusCursor'
        - name: ending_before
          in: query
          description: Cursor for backward pagination.
          required: false
          schema:
            $ref: '#/components/schemas/SkusCursor'
        - name: sku_query
          in: query
          description: >-
            SKU property filters as semicolon-separated `key:value` pairs, e.g.
            `accelerator:h100;num_accelerators:8`. Keys are the SKU object's
            property fields, plus the reserved `sku` key, which filters to a
            single SKU by id. Omit to list every SKU.
          required: false
          schema:
            type: string
          example: accelerator:h100
      responses:
        '200':
          description: Paginated per-SKU availability.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSkuAvailabilityResponse'
        '400':
          description: Malformed request parameters or body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '422':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: >-
            Rate limit exceeded. Retry after the interval indicated by the
            rate-limit response headers.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: Availability temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
      security:
        - bearer_auth: []
components:
  schemas:
    SkusCursor:
      type: string
      examples:
        - skuc_gqXR7s0Kj5mHvE2wNpLc4Q
      pattern: ^skuc_[A-Za-z0-9_-]+$
    ListSkuAvailabilityResponse:
      type: object
      description: Paginated per-SKU availability returned by `GET /v2/skus/availability`.
      required:
        - object
        - has_more
        - data
      properties:
        object:
          type: string
          const: list
          default: list
          readOnly: true
        cursor:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SkusCursor'
              description: Pass as `starting_after` or `ending_before` to paginate.
        has_more:
          type: boolean
        data:
          type: array
          items:
            $ref: '#/components/schemas/SkuAvailability'
    BadRequestError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              const: invalid_request_error
              default: invalid_request_error
              readOnly: true
            message:
              type: string
              x-speakeasy-error-message: true
            details:
              type: array
              items:
                $ref: '#/components/schemas/ErrorDetail'
    UnauthorizedError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              const: authentication_error
              default: authentication_error
              readOnly: true
            message:
              type: string
              x-speakeasy-error-message: true
    UnprocessableEntityError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              const: unprocessable_entity
              default: unprocessable_entity
              readOnly: true
            message:
              type: string
              x-speakeasy-error-message: true
            details:
              type: array
              items:
                $ref: '#/components/schemas/ErrorDetail'
    InternalServerError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              const: api_error
              default: api_error
              readOnly: true
            message:
              type: string
              x-speakeasy-error-message: true
    ServiceUnavailableError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              const: service_unavailable
              default: service_unavailable
              readOnly: true
            message:
              type: string
              x-speakeasy-error-message: true
    SkuAvailability:
      type: object
      description: One SKU's purchasable-capacity schedule.
      required:
        - object
        - sku
        - schedule
      properties:
        object:
          type: string
          const: sku_availability
          default: sku_availability
          readOnly: true
        sku:
          $ref: '#/components/schemas/SkuSummary'
        schedule:
          $ref: '#/components/schemas/Schedule'
          description: >-
            Node counts available for purchase over time. Empty when the SKU has
            no published availability.
    ErrorDetail:
      type: object
      required:
        - code
        - message
      properties:
        field:
          type:
            - string
            - 'null'
          description: The field that caused the error (for validation errors)
        code:
          type: string
          description: Specific error code for this detail
        message:
          type: string
          description: Human-readable error message
    SkuSummary:
      type: object
      description: A SKU referenced by id and alias.
      required:
        - object
        - id
        - alias
      properties:
        object:
          type: string
          const: sku
          default: sku
          readOnly: true
        id:
          $ref: '#/components/schemas/SkuId'
        alias:
          $ref: '#/components/schemas/Name'
          description: >-
            A short, unique among live, human-recognizable name for this SKU.
            For display only - reference the SKU by `id`.
    Schedule:
      type: array
      items:
        $ref: '#/components/schemas/ScheduleEntry'
      description: >-
        Node count over time, as a list of `[start_at, end_at)` time ranges.


        Example: 5 nodes from t=0 to t=3600 is `[{"start_at": 0, "end_at": 3600,
        "node_count": 5}]`.


        `start_at` and `end_at` must be 60-second aligned, `node_count` must be
        non-negative. On non-final entries, `end_at` may be omitted (inferred
        from the next entry's `start_at`); gaps fill with `node_count: 0`.


        In responses, a non-empty array always closes with a terminator entry
        whose `end_at` is `null` (the unbounded tail) and, for a bounded
        schedule, `node_count: 0`; an empty schedule is returned as `[]`.
    SkuId:
      type: string
      examples:
        - sku_k3R-nX9vLm7Qp2Yw5Jd8F
      pattern: sku_[0-9a-zA-Z_-]{1,21}
    Name:
      type: string
      examples:
        - my-resource-name
      maxLength: 255
      minLength: 1
      pattern: '[a-zA-Z0-9][a-zA-Z0-9._-]{0,254}'
    ScheduleEntry:
      type: object
      description: >-
        A `[start_at, end_at)` time range with a fixed `node_count`. `end_at` is
        `null` only on the final entry, marking an unbounded tail.
      required:
        - start_at
        - node_count
      properties:
        start_at:
          $ref: '#/components/schemas/UnixEpoch'
        end_at:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UnixEpoch'
        node_count:
          type: integer
          format: int32
    UnixEpoch:
      type: integer
      format: int64
      description: Unix timestamp.
      example: 1738972800
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Create an API token using `sf tokens create` or at
        https://sfcompute.com/account/api-keys.

````