Fluence Hardware API

Hardware API endpoints

Business capability
IT Infrastructure Management BC-600.50

Operations 5

GET /v1/clusters Get available clusters #
GET /v1/clusters/resources Get bulk resources #
GET /v1/clusters/{cluster_id}/resources Get available resources #
GET /v1/configurations/virtual_machines Raw, unfiltered catalog of *all* VM configurations (every row in… #
GET /v1/datacenters Get datacenters #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fluence-hardware-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fluence-hardware-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fluence Hardware API
  description: '# Introduction


    The Fluence API gives programmatic access to the decentralized Fluence compute marketplace, letting you find, rent, and

    manage compute resources without the web UI.'
  contact:
    name: Cloudless Labs
  license:
    name: AGPL-3
    identifier: AGPL-3
  version: 0.10.0
security:
- api_key: []
tags:
- name: Hardware
  description: Hardware API endpoints
paths:
  /v1/clusters:
    get:
      tags:
      - Hardware
      operationId: Get available clusters
      responses:
        '200':
          description: List of available clusters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse_ClusterDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: bad_request
                error: Wrong parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unauthorized
                error: Auth token invalid or missing
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: forbidden
                error: Not allowed to call this endpoint
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unprocessable_entity
                error: Unable to process the entity
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: internal_server_error
                error: Unexpected server error
      security:
      - access_jwt_token:
        - clusters:read
      - api_key:
        - clusters:read
      summary: Get available clusters
      x-summary-source: derived
  /v1/clusters/resources:
    get:
      tags:
      - Hardware
      description: Returns available resources keyed by cluster. Per-cluster failures are skipped (partial results, not a hard error). The all-clusters path (no `clusterIds`) is capped at 100 clusters.
      operationId: get_bulk_resources
      parameters:
      - name: clusterIds
        in: query
        description: 'Restrict the result to these clusters (`clusterIds[0]=...`). Absent or

          empty returns resources for every cluster.'
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ClusterId'
      responses:
        '200':
          description: Available resources keyed by cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkClusterResourcesDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: bad_request
                error: Wrong parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unauthorized
                error: Auth token invalid or missing
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: forbidden
                error: Not allowed to call this endpoint
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unprocessable_entity
                error: Unable to process the entity
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: internal_server_error
                error: Unexpected server error
      security:
      - access_jwt_token:
        - clusters:read
      - api_key:
        - clusters:read
      summary: Get bulk resources
      x-summary-source: derived
  /v1/clusters/{cluster_id}/resources:
    get:
      tags:
      - Hardware
      operationId: get_available_resources
      parameters:
      - name: cluster_id
        in: path
        description: Cluster ID
        required: true
        schema:
          $ref: '#/components/schemas/ClusterId'
      responses:
        '200':
          description: List of available resources in cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterResourcesDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: bad_request
                error: Wrong parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unauthorized
                error: Auth token invalid or missing
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: forbidden
                error: Not allowed to call this endpoint
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unprocessable_entity
                error: Unable to process the entity
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: internal_server_error
                error: Unexpected server error
      security:
      - access_jwt_token:
        - clusters:read
      - api_key:
        - clusters:read
      summary: Get available resources
      x-summary-source: derived
  /v1/configurations/virtual_machines:
    get:
      tags:
      - Hardware
      summary: Raw, unfiltered catalog of *all* VM configurations (every row in…
      description: 'The customer-facing, buyable listing — price-gated and ratio-gated per

        cluster — is `GET /v1/clusters/{cluster_id}/resources`

        (`api::hardware::resources::get_available_resources`). Do not treat this

        endpoint as a plan picker; selecting an unpriced SKU here would 404 on

        `POST /v2/vms`.'
      operationId: get_vm_configurations
      responses:
        '200':
          description: List of available vm configurations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse_VmConfigurationDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: bad_request
                error: Wrong parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unauthorized
                error: Auth token invalid or missing
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: forbidden
                error: Not allowed to call this endpoint
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unprocessable_entity
                error: Unable to process the entity
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: internal_server_error
                error: Unexpected server error
      security:
      - access_jwt_token:
        - vm:list
      - api_key:
        - vm:list
  /v1/datacenters:
    get:
      tags:
      - Hardware
      description: Get a list of datacenters
      operationId: get_datacenters
      responses:
        '200':
          description: List Of Datacenters
          headers:
            Authorization:
              schema:
                type: string
              description: API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse_DatacenterDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: bad_request
                error: Wrong parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unauthorized
                error: Auth token invalid or missing
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: forbidden
                error: Not allowed to call this endpoint
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: unprocessable_entity
                error: Unable to process the entity
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                code: internal_server_error
                error: Unexpected server error
      security:
      - access_jwt_token:
        - clusters:read
      - api_key:
        - clusters:read
      summary: Get datacenters
      x-summary-source: derived
components:
  schemas:
    ErrorBody:
      type: object
      required:
      - error
      - code
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
          description: The stable, machine-readable error code.
        error:
          type: string
          description: The human-readable error message.
    VmConfigurationDto:
      type: object
      required:
      - id
      - slug
      - name
      - vcpu
      - ramGb
      - dedicated
      - cpuFamilies
      - preset
      - tags
      - description
      properties:
        cpuFamilies:
          type: array
          items:
            $ref: '#/components/schemas/CpuFamilyDto'
        dedicated:
          type: boolean
        description:
          type: string
        id:
          $ref: '#/components/schemas/VmConfigurationId'
        name:
          type: string
        preset:
          $ref: '#/components/schemas/VmConfigurationPreset'
        ramGb:
          type: integer
          format: u-int64
          example: '4'
          minimum: 0
        slug:
          $ref: '#/components/schemas/VmConfigurationSlug'
        tags:
          type: array
          items:
            type: string
        vcpu:
          type: integer
          format: u-int8
          example: '2'
          minimum: 0
    CpuFamilyDto:
      type: string
      enum:
      - AMD_ZEN2
      - AMD_ZEN3
      - AMD_ZEN5
    CollectionResponse_ClusterDto:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            type: object
            required:
            - id
            - name
            - dcId
            properties:
              dcId:
                type: string
                example: 92e6ed24-8bfa-4737-9409-a1aac994e1f5
              id:
                type: string
                example: 92e6ed24-8bfa-4737-9409-a1aac994e1f5
              name:
                type: string
                example: Cloudless
    VmConfigurationPreset:
      type: string
      enum:
      - general
      - cpu_optimized
      - memory_optimized
    StorageTypeDto:
      type: string
      enum:
      - HDD
      - SSD
      - NVME
    ErrorCode:
      type: string
      description: 'Stable, machine-readable error code carried by every non-2xx response.


        Clients should branch on `code` rather than parsing the human-readable

        `error` string. Status-derived variants cover any error that does not

        supply a more specific code; semantic variants are set explicitly at the

        construction site (see `VodopadError::code`).'
      enum:
      - bad_request
      - unauthorized
      - forbidden
      - not_found
      - conflict
      - unprocessable_entity
      - not_acceptable
      - insufficient_balance
      - service_unavailable
      - internal_server_error
    ClusterResourcesDto:
      type: object
      required:
      - availablePublicIps
      - availableStorage
      - availableConfigurations
      properties:
        availableConfigurations:
          type: array
          items:
            $ref: '#/components/schemas/VmConfigurationDto'
        availablePublicIps:
          type: object
          additionalProperties:
            type: integer
            format: u-int16
            minimum: 0
          propertyNames:
            type: string
            enum:
            - V4
            - V6
          example:
            V4: 10
            V6: 150
        availableStorage:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/AvailableStorageDto'
          propertyNames:
            type: string
            enum:
            - AMD_ZEN2
            - AMD_ZEN3
            - AMD_ZEN5
          example:
            AMD_ZEN3:
            - replicated: true
              storageType: NVME
              volumeGb: 100
            - replicated: false
              storageType: NVME
              volumeGb: 200
    BulkClusterResourcesDto:
      type: object
      required:
      - resources
      properties:
        resources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ClusterResourcesDto'
          propertyNames:
            type: string
            format: uuid
    VmConfigurationSlug:
      type: string
      enum:
      - cpu-regular-2vcpu-4gb
      - cpu-regular-4vcpu-8gb
      - cpu-regular-8vcpu-16gb
      - cpu-regular-8vcpu-32gb
      - cpu-regular-16vcpu-32gb
      - cpu-regular-24vcpu-48gb
      - cpu-regular-32vcpu-64gb
      - cpu-regular-64vcpu-128gb
      - cpu-premium-2vcpu-4gb
      - cpu-premium-4vcpu-8gb
      - cpu-premium-8vcpu-16gb
      - cpu-premium-8vcpu-32gb
      - cpu-premium-16vcpu-32gb
      - cpu-premium-24vcpu-48gb
      - cpu-premium-32vcpu-64gb
      - cpu-premium-64vcpu-128gb
      - cpu-shared-2vcpu-2gb
      - cpu-shared-3vcpu-4gb
      - cpu-shared-4vcpu-8gb
      - cpu-shared-8vcpu-16gb
      - cpu-shared-16vcpu-32gb
    ClusterId:
      type: string
      format: uuid
    CollectionResponse_VmConfigurationDto:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            type: object
            required:
            - id
            - slug
            - name
            - vcpu
            - ramGb
            - dedicated
            - cpuFamilies
            - preset
            - tags
            - description
            properties:
              cpuFamilies:
                type: array
                items:
                  $ref: '#/components/schemas/CpuFamilyDto'
              dedicated:
                type: boolean
              description:
                type: string
              id:
                $ref: '#/components/schemas/VmConfigurationId'
              name:
                type: string
              preset:
                $ref: '#/components/schemas/VmConfigurationPreset'
              ramGb:
                type: integer
                format: u-int64
                example: '4'
                minimum: 0
              slug:
                $ref: '#/components/schemas/VmConfigurationSlug'
              tags:
                type: array
                items:
                  type: string
              vcpu:
                type: integer
                format: u-int8
                example: '2'
                minimum: 0
    DatacenterId:
      type: string
      format: uuid
    CollectionResponse_DatacenterDto:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            type: object
            required:
            - id
            - countryCode
            - cityCode
            - cityName
            - index
            - tier
            - certifications
            - slug
            properties:
              certifications:
                type: array
                items:
                  type: string
              cityCode:
                type: string
              cityName:
                type: string
              countryCode:
                type: string
              id:
                $ref: '#/components/schemas/DatacenterId'
              index:
                type: integer
                format: int32
              slug:
                type: string
              tier:
                type: integer
                format: int32
    AvailableStorageDto:
      type: object
      required:
      - storageType
      - replicated
      - volumeGb
      properties:
        replicated:
          type: boolean
        storageType:
          $ref: '#/components/schemas/StorageTypeDto'
        volumeGb:
          type: integer
          format: u-int64
          example: '100'
          minimum: 0
    VmConfigurationId:
      type: string
      format: uuid
  securitySchemes:
    access_jwt_token:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token issued by Fluence
    api_key:
      type: apiKey
      in: header
      name: X-API-KEY