> ## 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 GPU types with pricing and optional availability filters by product, country, and deployment context.

# List GPU types



## OpenAPI

````yaml get /v2/catalog/gpus
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/gpus:
    get:
      tags:
        - Catalog
      summary: List GPU types
      description: >-
        Returns available GPU types with pricing. Availability is included only
        when requested with include=AVAILABILITY, which requires `product` —
        stock differs by product context. With countryCodes, the list is
        narrowed to GPU types deployable in those countries, so "this geography
        + this chip" resolves in one read.
      operationId: listGpuTypes
      parameters:
        - $ref: '#/components/parameters/CatalogIncludeParam'
        - $ref: '#/components/parameters/GpuProductFilter'
        - $ref: '#/components/parameters/GpuCountFilter'
        - $ref: '#/components/parameters/GpuCloudFilter'
        - $ref: '#/components/parameters/CountryCodesFilter'
        - $ref: '#/components/parameters/CudaVersionsFilter'
        - $ref: '#/components/parameters/MinCudaVersionFilter'
      responses:
        '200':
          headers:
            RateLimit:
              $ref: '#/components/headers/RateLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListGpuTypesResponse'
              examples:
                gpus:
                  summary: Successful response
                  value:
                    gpus:
                      - id: NVIDIA GeForce RTX 4090
                        name: RTX 4090
                        pool: ADA_24
                        manufacturer: NVIDIA
                        memory: 24
                        secure: true
                        community: true
                        price:
                          secure: 0.44
                          community: 0.31
                          serverless: 1.1
                        maxCount:
                          secure: 8
                          community: 4
                        availability: HIGH
                        dataCenters:
                          - id: US-KS-2
                            name: US Kansas 2
                            availability: HIGH
        '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
    GpuProductFilter:
      name: product
      in: query
      required: false
      description: >-
        Comma-separated availability product contexts. Supported values: POD,
        CLUSTER, SERVERLESS. Required with include=AVAILABILITY, and valid only
        with it (400 either way). There is no default: the same GPU type can be
        scarce for pods and plentiful for serverless, so the context has to be
        stated rather than assumed.
      style: form
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/Product'
      example:
        - POD
        - SERVERLESS
    GpuCountFilter:
      name: count
      in: query
      required: false
      description: >-
        GPU count for availability and lowest-price calculations. Valid only
        with include=AVAILABILITY. Defaults to 1.
      schema:
        type: integer
        minimum: 1
        default: 1
      example: 2
    GpuCloudFilter:
      name: cloud
      in: query
      required: false
      description: >-
        Cloud type for availability and lowest-price calculations. Valid only
        with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Upstream
        default when omitted: SECURE.
      schema:
        $ref: '#/components/schemas/GpuCloudFilter'
    CountryCodesFilter:
      name: countryCodes
      in: query
      required: false
      description: >-
        Comma-separated ISO 3166-1 alpha-2 country codes, uppercase, to
        constrain availability to — e.g. FR or FR,DE. Values within this filter
        use OR semantics. Valid only with include=AVAILABILITY (400 otherwise);
        a malformed entry is a 422. Scopes availability, lowest-price
        calculations and the dataCenters array to those countries, so a listed
        data center outside them is omitted rather than returned with
        availability NONE. On the list endpoint a GPU type with no data center
        in those countries drops out entirely; the single-GPU endpoint still
        returns the requested type, with availability NONE and dataCenters
        omitted, so a 404 keeps meaning the GPU type does not exist. Read the
        NONE on availability rather than the absence of dataCenters, which is
        also absent when availability was not requested.
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          pattern: ^[A-Z]{2}$
      example:
        - FR
        - DE
    CudaVersionsFilter:
      name: cudaVersions
      in: query
      required: false
      description: >-
        Comma-separated CUDA versions to scope availability and lowest-price
        calculations to, matched exactly. Format: major.minor, e.g. 12.8 — a
        bare major is rejected here because it identifies no version. Valid only
        with include=AVAILABILITY (400 otherwise) and mutually exclusive with
        minCudaVersion (400 if both are sent); a malformed entry is a 422. Also
        narrows the returned cudaVersions array; omit it to enumerate every
        version offered.
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          pattern: ^\d+\.\d+$
      example:
        - '12.8'
        - '12.6'
    MinCudaVersionFilter:
      name: minCudaVersion
      in: query
      required: false
      description: >-
        Lowest acceptable CUDA version to scope availability and lowest-price
        calculations to, compared numerically. Format: integer major or
        major.minor, e.g. 12 or 12.1 — unlike the `gpu.minCudaVersion` body
        field on pod and endpoint create, a bare major is accepted here and
        means any release of that major, because this filter only widens a read.
        Valid only with include=AVAILABILITY (400 otherwise) and mutually
        exclusive with cudaVersions (400 if both are sent); a malformed value is
        a 422. Use this for an open-ended floor and cudaVersions for an exact
        set.
      schema:
        type: string
        pattern: ^\d+(\.\d+)?$
      example: '12.1'
  headers:
    RateLimit:
      schema:
        $ref: '#/components/schemas/RateLimitHeader'
    RateLimit-Policy:
      schema:
        $ref: '#/components/schemas/RateLimitPolicyHeader'
  schemas:
    ListGpuTypesResponse:
      type: object
      required:
        - gpus
      properties:
        gpus:
          type: array
          items:
            $ref: '#/components/schemas/GpuType'
    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
    Product:
      type: string
      description: >-
        Catalog product availability context. Availability is product-specific,
        so this is required whenever availability is requested.
      enum:
        - POD
        - CLUSTER
        - SERVERLESS
    GpuCloudFilter:
      type: string
      description: GPU availability cloud filter.
      enum:
        - SECURE
        - COMMUNITY
    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'
    GpuType:
      type: object
      required:
        - id
        - name
        - pool
        - manufacturer
        - memory
        - secure
        - community
        - price
        - maxCount
      properties:
        id:
          type: string
          description: Individual GPU type identifier (use for pod creation)
          examples:
            - NVIDIA GeForce RTX 4090
        name:
          type: string
          examples:
            - RTX 4090
        pool:
          type:
            - string
            - 'null'
          description: >-
            Serverless GPU pool ID (use for serverless endpoint creation). Null
            if GPU is not in a serverless pool.
          examples:
            - ADA_24
        manufacturer:
          $ref: '#/components/schemas/GpuManufacturer'
        memory:
          type: integer
          description: VRAM in GB
          examples:
            - 24
        secure:
          type: boolean
          description: Available on secure cloud
          examples:
            - true
        community:
          type: boolean
          description: Available on community cloud
          examples:
            - true
        price:
          type: object
          description: |
            List price in USD per hour for a **single** GPU of this type. Pod
            rates are quoted separately per cloud (`secure`, `community`);
            `serverless` is the rate for this GPU's pool. In every case the
            rate for a unit is the figure times `gpu.count`; the rate actually
            billed for a pod is reported as `cost` on the pod itself.
          required:
            - secure
            - community
          properties:
            secure:
              type: number
              format: float
              examples:
                - 0.44
            community:
              type: number
              format: float
              examples:
                - 0.31
            serverless:
              type: number
              format: float
              description: |
                Serverless list price per GPU per hour, from the `pool` this GPU
                belongs to. Multiply by `gpu.count` for the per-worker rate.
                Absent when the GPU is not in a serverless pool available to the
                caller. Negotiated account discounts are not reflected.
              examples:
                - 1.1
        maxCount:
          type: object
          description: |
            The largest number of GPUs you can request on a single pod of this
            type, quoted separately per cloud. A pod runs on one machine, so
            this is the GPU count of the largest machine of this type Runpod
            operates in that cloud.

            This is a ceiling, not a stock level — it does not mean that many
            GPUs are free right now. For current availability, request
            `include=AVAILABILITY&product=POD` and read `availability`
            (overall) or `dataCenters` (per data center).
          required:
            - secure
            - community
          properties:
            secure:
              type: integer
              examples:
                - 8
            community:
              type: integer
              examples:
                - 4
        availability:
          $ref: '#/components/schemas/AvailabilityLevel'
          description: >-
            Overall GPU availability for the requested `product` contexts.
            Present only when requested with include=AVAILABILITY, which also
            requires `product`.
        dataCenters:
          type: array
          description: |
            Per-datacenter GPU availability for the requested `product`
            contexts, listing only the datacenters that offer this GPU in the
            requested configuration. Present only when requested with
            include=AVAILABILITY, which also requires `product`, and omitted
            entirely when the configuration is unavailable everywhere.
          items:
            $ref: '#/components/schemas/DataCenterAvailability'
        cudaVersions:
          type: array
          description: |
            CUDA versions offered by machines with this GPU type, each tagged
            with current capacity. Present only when requested with
            include=AVAILABILITY, and scoped by the same filters as
            `availability` (`count`, `cloud`, `product`, and whichever of
            `cudaVersions` / `minCudaVersion` was supplied).

            Machines that report no CUDA version are skipped, so this property
            is absent entirely for a GPU type with none — AMD, for instance.
            Treat a missing `cudaVersions` the same as an empty one. A version
            absent from a populated list is not offered for this GPU type.
          items:
            $ref: '#/components/schemas/CudaVersionAvailability'
    GpuManufacturer:
      type: string
      description: Canonical GPU hardware manufacturer.
      x-enum-varnames:
        - GpuManufacturerNVIDIA
        - GpuManufacturerAMD
        - GpuManufacturerUNKNOWN
      enum:
        - NVIDIA
        - AMD
        - UNKNOWN
    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'
    CudaVersionAvailability:
      type: object
      required:
        - version
        - available
      properties:
        version:
          type: string
          pattern: ^\d+\.\d+$
          description: >-
            CUDA version as `major.minor`, suitable for
            `gpu.allowedCudaVersions` on pod create.
          examples:
            - '12.8'
        available:
          type: boolean
          description: >-
            True when at least one machine on this CUDA version has free
            capacity now. False means the version is offered for this GPU type
            but is currently full, so a pod constrained to it will fail on
            capacity.
          examples:
            - true
  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.

````