Fluence Users API

Users API endpoints

Operations 5

POST /v1/users/balances/refresh Refresh user balance #
GET /v1/users/me Get current user info #
GET /v1/users/me/profile Get current user profile #
PATCH /v1/users/me/profile Update current user profile #
GET /v2/users/balances Get user balance v2 #

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-users-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-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fluence Users 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: Users
  description: Users API endpoints
paths:
  /v1/users/balances/refresh:
    post:
      tags:
      - Users
      operationId: refresh_user_balance
      responses:
        '200':
          description: User entitlement value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntitlementValueDto'
        '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: []
      - api_key:
        - ''
      summary: Refresh user balance
      x-summary-source: derived
  /v1/users/me:
    get:
      tags:
      - Users
      operationId: GetCurrentUserInfo
      responses:
        '200':
          description: User information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWithScopesDto'
        '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: []
      - api_key:
        - ''
      summary: Get current user info
      x-summary-source: derived
      x-operation-id-source: normalized
      x-operation-id-original: Get current user info
  /v1/users/me/profile:
    get:
      tags:
      - Users
      operationId: GetCurrentUserProfile
      responses:
        '200':
          description: Current user profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfileDto'
        '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: []
      - api_key:
        - ''
      summary: Get current user profile
      x-summary-source: derived
      x-operation-id-source: normalized
      x-operation-id-original: Get current user profile
    patch:
      tags:
      - Users
      operationId: UpdateCurrentUserProfile
      requestBody:
        description: Patch current user profile
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserProfileRequest'
            example:
              company: Cloudless
              firstName: Igor
              jobRole: Designer
              lastName: Ten
        required: true
      responses:
        '200':
          description: Updated current user profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfileDto'
        '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: []
      - api_key:
        - ''
      summary: Update current user profile
      x-summary-source: derived
      x-operation-id-source: normalized
      x-operation-id-original: Update current user profile
  /v2/users/balances:
    get:
      tags:
      - Users
      operationId: get_user_balance_v2
      parameters:
      - name: entitlementKey
        in: query
        description: 'Keep only the entitlement whose canonical key equals this value, matched

          against `EntitlementValueDto.featureKey` in the response. Omit to return

          every entitlement.'
        required: false
        schema:
          type: string
      responses:
        '200':
          description: User entitlement value
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntitlementValueDto'
        '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: []
      - api_key:
        - ''
      summary: Get user balance v2
      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.
    EntitlementValueDto:
      type: object
      required:
      - balance
      - usage
      - estimatedUsage
      - overage
      - totalDepositedAmount
      - userId
      - featureKey
      properties:
        balance:
          type: string
          example: '100.50'
        estimatedUsage:
          type: string
          example: '100.50'
        featureKey:
          type: string
        overage:
          type: string
          example: '100.50'
        totalDepositedAmount:
          type: string
          example: '100.50'
        usage:
          type: string
          example: '100.50'
        usageDaysLeft:
          type:
          - integer
          - 'null'
          format: u-int16
          minimum: 0
        userId:
          type: string
          example: 9ba32273-49e6-4655-b193-b29f61752c2f
    UserProfileDto:
      type: object
      required:
      - firstName
      - lastName
      - jobRole
      - company
      - updatedAt
      properties:
        company:
          type: string
          example: Cloudless
        firstName:
          type: string
          example: Igor
        jobRole:
          type: string
          example: Designer
        lastName:
          type: string
          example: Ten
        promptAcknowledgedAt:
          type:
          - string
          - 'null'
          example: '2025-01-01T00:00:00.000Z'
        updatedAt:
          type: string
          example: '2025-01-01T00:00:00.000Z'
    UpdateUserProfileRequest:
      type: object
      properties:
        company:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        jobRole:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
    UserWithScopesDto:
      type: object
      required:
      - id
      - email
      - permissions
      properties:
        email:
          type: string
          example: user@gmail.com
        id:
          type: string
          example: 9ba32273-49e6-4655-b193-b29f61752c2f
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionScope'
          uniqueItems: true
    PermissionScope:
      type: string
      enum:
      - vm:create
      - vm:remove
      - vm:restart
      - vm:update
      - vm:list
      - token:withdraw
      - token:deposit
      - api_key:create
      - api_key:remove
      - api_key:list
      - ssh_key:create
      - ssh_key:remove
      - ssh_key:activate
      - ssh_key:deactivate
      - ssh_key:list
      - billing:top_up
      - billing:get_history
      - billing:get_spending_history
      - billing:get_spending_aggregated
      - admin:users:read
      - admin:users:write
      - admin:users:whitelist
      - admin:invites:read
      - admin:invites:write
      - admin:peers:write
      - admin:default_images:read
      - admin:default_images:write
      - admin:users:balance:freeze
      - admin:users:balance:increase
      - admin:users:balance:decrease
      - admin:users:balance:limbo
      - admin:users:balance:refund
      - admin:vms:read
      - admin:vms:write
      - admin:peers:read
      - admin:promo_codes:read
      - admin:promo_codes:write
      - admin:basic_configuration:read
      - admin:basic_configuration:create
      - admin:basic_configuration:remove
      - admin:payment_methods:read
      - admin:payment_methods:write
      - admin:payments:read
      - akash:write
      - akash:read
      - spheron:write
      - spheron:read
      - vm:request_access
      - vm:requested_access
      - storage:write
      - storage:read
      - public_ip:write
      - public_ip:read
      - subnet:write
      - subnet:read
      - vpc:write
      - vpc:read
      - security_groups:write
      - security_groups:read
      - admin:security_groups:write
      - admin:security_groups:read
      - admin:storages:read
      - admin:subnets:read
      - admin:public_ips:read
      - admin:vpcs:read
      - admin:storages:write
      - admin:subnets:write
      - admin:public_ips:write
      - admin:vpcs:write
      - clusters:read
      - admin:clusters:read
      - admin:clusters:write
      - admin:prices:read
      - admin:prices:write
      - prices:read
      - vms:read
      - vms:write
    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
  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