> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-docs-runpod-allow-ip.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

> List available Runpod CPU types with pricing and optional availability details for a specified product and deployment context.

# List CPU types



## OpenAPI

````yaml get /v2/catalog/cpus
openapi: 3.1.0
info:
  title: Runpod REST API
  version: 2.0.0
  description: Runpod public REST API — v2
servers:
  - url: https://api.runpod.io
    description: Runpod API v2 production server
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Account-scoped settings and primitives (SSH public keys).
  - name: Pods
    description: GPU and CPU pod lifecycle, configuration, actions, and log streaming.
  - name: Serverless
    description: >-
      Serverless endpoint lifecycle, worker visibility, releases, and worker log
      streaming.
  - name: Templates
    description: Reusable pod and endpoint configuration templates.
  - name: Network Volumes
    description: Persistent network storage volumes for workloads.
  - name: Registries
    description: Container registry credentials used to pull private images.
  - name: Catalog
    description: Available GPU, CPU, data center, and public template catalog metadata.
  - name: Billing
    description: Billing history and usage cost records across resource types.
paths:
  /v2/catalog/cpus:
    get:
      tags:
        - Catalog
      summary: List CPU types
      description: >-
        Returns available CPU flavors. Availability is included only when
        requested with include=AVAILABILITY, which requires `product` — stock
        differs by product context.
      operationId: listCpuTypes
      parameters:
        - $ref: '#/components/parameters/CatalogIncludeParam'
        - $ref: '#/components/parameters/CpuProductFilter'
        - $ref: '#/components/parameters/CpuVCPUCountFilter'
      responses:
        '200':
          headers:
            RateLimit:
              $ref: '#/components/headers/RateLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCpuTypesResponse'
              examples:
                cpus:
                  summary: Successful response
                  value:
                    cpus:
                      - id: cpu3c-2-4
                        name: Compute-Optimized
                        group: Gen 3
                        vcpu:
                          min: 2
                          max: 32
                        ramGbPerVcpu: 2.5
                        price:
                          securePerVcpu: 0.04
                          serverlessPerVcpu: 0.03
                        availability: MEDIUM
                        dataCenters:
                          - id: US-KS-2
                            name: US Kansas 2
                            availability: MEDIUM
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
        default:
          headers:
            RateLimit:
              $ref: '#/components/headers/RateLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    CatalogIncludeParam:
      name: include
      in: query
      required: false
      description: >-
        Comma-separated optional expansions. Supported value today:
        AVAILABILITY. This may expand with more include values in the future.
      style: form
      explode: false
      schema:
        type: array
        maxItems: 1
        items:
          $ref: '#/components/schemas/CatalogInclude'
      example:
        - AVAILABILITY
    CpuProductFilter:
      name: product
      in: query
      required: false
      description: >-
        Comma-separated availability product contexts. Supported values for
        CPUs: POD, SERVERLESS. Required with include=AVAILABILITY, and valid
        only with it (400 either way). There is no default: availability differs
        by product.
      style: form
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/CpuProduct'
        example:
          - POD
          - SERVERLESS
    CpuVCPUCountFilter:
      name: vcpuCount
      in: query
      required: false
      description: >-
        Availability vCPU count. Valid only with include=AVAILABILITY. Must be a
        power of two.
      schema:
        type: integer
        minimum: 2
      example: 4
  headers:
    RateLimit:
      schema:
        $ref: '#/components/schemas/RateLimitHeader'
    RateLimit-Policy:
      schema:
        $ref: '#/components/schemas/RateLimitPolicyHeader'
  schemas:
    ListCpuTypesResponse:
      type: object
      required:
        - cpus
      properties:
        cpus:
          type: array
          items:
            $ref: '#/components/schemas/CpuType'
    ErrorResponse:
      type: object
      required:
        - title
        - status
        - detail
      properties:
        title:
          type: string
          description: Short human-readable summary
          examples:
            - Not Found
        status:
          type: integer
          description: HTTP status code
          examples:
            - 404
        detail:
          type: string
          description: Human-readable explanation
          examples:
            - pod not found
        errors:
          type: array
          description: Individual request-validation failures.
          items:
            type: string
          examples:
            - - '$: additional properties ''bogus'' not allowed'
    CatalogInclude:
      type: string
      description: >-
        Catalog include expansion. Only AVAILABILITY is supported today;
        additional include values may be added in the future.
      enum:
        - AVAILABILITY
    CpuProduct:
      type: string
      description: >-
        CPU catalog product availability context. Availability is
        product-specific, so this is required whenever availability is
        requested.
      enum:
        - POD
        - SERVERLESS
    RateLimitHeader:
      type: string
      description: |
        Live per-window quota state. Optional — omitted for rate-limit-exempt
        callers.

        A structured-field list with one member per window (`minute`, `hour`,
        `day`), each carrying the remaining request count `r` and seconds until
        the window resets `t`. Returned on responses to authenticated requests,
        not only on 429s.
      examples:
        - '"minute";r=0;t=12, "hour";r=2800;t=1812, "day";r=49500;t=45012'
    RateLimitPolicyHeader:
      type: string
      description: >
        Static per-window quota policy. Optional — omitted for rate-limit-exempt

        callers.


        A structured-field list with one member per window (`minute`, `hour`,

        `day`), each carrying the quota `q` and the window length in seconds
        `w`.

        Returned on responses to authenticated requests, not only on 429s.
      examples:
        - '"minute";q=60;w=60, "hour";q=3000;w=3600, "day";q=50000;w=86400'
    CpuType:
      type: object
      required:
        - id
        - name
        - group
        - vcpu
        - ramGbPerVcpu
        - price
      properties:
        id:
          type: string
          description: CPU flavor identifier (use in cpu.id for pod creation)
          examples:
            - cpu5c
        name:
          type: string
          description: Human-readable flavor name
          examples:
            - Compute-Optimized
        group:
          type: string
          description: CPU generation group
          examples:
            - Gen 5
        vcpu:
          type: object
          required:
            - min
            - max
          properties:
            min:
              type: integer
              examples:
                - 2
            max:
              type: integer
              examples:
                - 32
        ramGbPerVcpu:
          type: number
          format: float
          description: |
            GB of RAM allocated per vCPU. Multiply by the chosen vCPU
            count (within `vcpu.min`..`vcpu.max`) to get the total RAM
            for an instance of this flavor. May be fractional.
          examples:
            - 2.5
        price:
          type: object
          required:
            - securePerVcpu
            - serverlessPerVcpu
          properties:
            securePerVcpu:
              type: number
              format: float
              description: |
                Price for secure pods per vCPU. Multiply by the chosen vCPU
                count (within `vcpu.min`..`vcpu.max`) to get the total price.
              examples:
                - 0.04
            serverlessPerVcpu:
              type: number
              format: float
              description: |
                Price for serverless per vCPU. Multiply by the chosen vCPU
                count (within `vcpu.min`..`vcpu.max`) to get the total price.
              examples:
                - 0.03
        availability:
          $ref: '#/components/schemas/AvailabilityLevel'
          description: >-
            Overall CPU availability for the requested `product` contexts.
            Present only when requested with include=AVAILABILITY, which also
            requires `product`.
        dataCenters:
          type: array
          description: |
            Per-datacenter CPU availability for the requested `product`
            contexts, listing only the datacenters that offer this CPU flavor.
            Present only when requested with include=AVAILABILITY, which also
            requires `product`, and omitted entirely when the flavor is
            unavailable everywhere.
          items:
            $ref: '#/components/schemas/DataCenterAvailability'
    AvailabilityLevel:
      type: string
      description: Catalog stock availability level.
      enum:
        - NONE
        - LOW
        - MEDIUM
        - HIGH
    DataCenterAvailability:
      type: object
      required:
        - id
        - name
        - availability
      properties:
        id:
          type: string
          description: Data center identifier.
          examples:
            - US-CA-2
        name:
          type: string
          description: Human-readable data center name.
          examples:
            - US California 2
        availability:
          $ref: '#/components/schemas/AvailabilityLevel'
  responses:
    UnauthorizedError:
      description: >-
        Authentication failed because the bearer token is missing, malformed,
        expired, or invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingBearerToken:
              summary: Missing bearer token
              value:
                title: Unauthorized
                status: 401
                detail: missing bearer token
    ForbiddenError:
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimit-Policy'
      description: >-
        The bearer token is valid, but it does not grant access to the requested
        resource or action.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficientAccess:
              summary: Insufficient access
              value:
                title: Forbidden
                status: 403
                detail: access denied
    TooManyRequestsError:
      description: >
        The caller exceeded its per-user rate limit. The response identifies the
        window that was exceeded and how long to wait. The `RateLimit` and
        `RateLimit-Policy` headers (per the IETF ratelimit-headers draft) also
        accompany successful responses, so clients can track quota before a 429.
      headers:
        Retry-After:
          description: Seconds to wait before retrying, per the exceeded window.
          schema:
            type: integer
          example: 12
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimit-Policy'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rateLimited:
              summary: Rate limit exceeded
              value:
                title: Too Many Requests
                status: 429
                detail: rate limit exceeded for the minute window
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Runpod API Key
      description: >
        Runpod API key authentication. Generate an API key in the Runpod console
        and send it in the `Authorization` header as `Bearer <api_key>`. Keys
        are scoped to the permissions granted when created; requests may return
        `403` when a valid key lacks access to the requested resource or action.

````