Fluence PublicIP API

The PublicIP API from Fluence — 3 operation(s) for publicip.

Business capability
IT Infrastructure Management BC-600.50

Operations 5

GET /v1/public_ips Get users public ips #
POST /v1/public_ips Create users public ip #
POST /v1/public_ips/delete Delete users public ips #
DELETE /v1/public_ips/{public_ip_id} Delete users public ip #
PATCH /v1/public_ips/{public_ip_id} Update user public ip #

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:fluence-publicip-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-publicip-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fluence Public IP 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: PublicIP
paths:
  /v1/public_ips:
    get:
      tags:
      - PublicIP
      operationId: get_users_public_ips
      parameters:
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserPublicIpId'
      - name: clusterId
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ClusterId'
      - name: datacenterId
        in: query
        description: 'Filter to public IPs in every cluster of this datacenter. Combine with

          `clusterId` to narrow to a single cluster; both must match.'
        required: false
        schema:
          $ref: '#/components/schemas/DatacenterId'
      - name: cityCode
        in: query
        description: 'Filter to public IPs in every datacenter of this city (a city may span

          several datacenters). Combine with other filters; all must match.'
        required: false
        schema:
          type: string
      - name: name
        in: query
        description: Case-insensitive ILIKE match on name; '%' and '_' in the value act as SQL wildcards (any-sequence / any-single-char), not literal characters.
        required: false
        schema:
          type: string
        example: my-vm
      - name: status
        in: query
        description: 'Keep only public IPs whose status is in this set. Repeat the parameter

          using bracket notation (`status[0]=ready&status[1]=new`); a single

          `status=ready` is also accepted. An empty set applies no filtering.'
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserPublicIpStatusDto'
      - name: excludeStatus
        in: query
        description: 'Drop public IPs whose status is in this set

          (`excludeStatus[0]=removed`). Combined with `status`, the result is the

          intersection. An empty set applies no filtering.'
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserPublicIpStatusDto'
      - name: addressType
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/IpAddressType'
      - name: excludeAttached
        in: query
        description: 'When `true`, exclude public IPs attached to any VM, returning only

          unattached ones. Absent or `false` applies no filtering.'
        required: false
        schema:
          type: boolean
      - name: sort
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortFieldDto'
      - name: order
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortOrderDto'
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: u-int64
          minimum: 0
      - name: perPage
        in: query
        required: false
        schema:
          type: integer
          format: u-int64
          minimum: 0
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_UserPublicIpDto'
        '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:
        - public_ip:read
      - api_key:
        - public_ip:read
      summary: Get users public ips
      x-summary-source: derived
    post:
      tags:
      - PublicIP
      operationId: create_users_public_ip
      requestBody:
        description: Create a new user public IP
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserPublicIpRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserPublicIpDto'
        '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:
        - public_ip:write
      - api_key:
        - public_ip:write
      summary: Create users public ip
      x-summary-source: derived
  /v1/public_ips/delete:
    post:
      tags:
      - PublicIP
      operationId: delete_users_public_ips
      requestBody:
        description: Public IPs ids to remove
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserPublicIpIdsDto'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPublicIpDto'
        '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:
        - public_ip:write
      - api_key:
        - public_ip:write
      summary: Delete users public ips
      x-summary-source: derived
  /v1/public_ips/{public_ip_id}:
    delete:
      tags:
      - PublicIP
      operationId: delete_users_public_ip
      parameters:
      - name: public_ip_id
        in: path
        description: The ID of the public IP to remove
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserPublicIpDto'
        '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:
        - public_ip:write
      - api_key:
        - public_ip:write
      summary: Delete users public ip
      x-summary-source: derived
    patch:
      tags:
      - PublicIP
      operationId: update_user_public_ip
      parameters:
      - name: public_ip_id
        in: path
        description: The ID of the address to update
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Update an existing user public ip
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserPublicIpRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserPublicIpDto'
        '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:
        - public_ip:write
      - api_key:
        - public_ip:write
      summary: Update user public ip
      x-summary-source: derived
components:
  schemas:
    IpAddressType:
      type: string
      enum:
      - V4
      - V6
    NewIpAddressType:
      type: string
      enum:
      - V4
    DatacenterId:
      type: string
      format: uuid
    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.
    UserVmReference:
      type: object
      description: A VM reference (id + name) surfaced where a resource is attached, so callers avoid a second lookup.
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/UserVmId'
        name:
          type: string
    PaginatedResponse_UserPublicIpDto:
      type: object
      required:
      - items
      - pagination
      properties:
        items:
          type: array
          items:
            type: object
            required:
            - id
            - userId
            - clusterId
            - name
            - addressType
            - status
            - createdAt
            properties:
              address:
                type:
                - string
                - 'null'
              addressType:
                $ref: '#/components/schemas/IpAddressType'
              allowedActions:
                type: array
                items:
                  $ref: '#/components/schemas/PublicIpActionDto'
                description: 'Operations currently legal for this public IP''s `status`, derived from

                  the same guards as request validation.'
              attachedTo:
                oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/UserVmReference'
              clusterId:
                $ref: '#/components/schemas/ClusterId'
              createdAt:
                type: string
                format: date-time
              id:
                $ref: '#/components/schemas/UserPublicIpId'
              lastPaidAt:
                type:
                - string
                - 'null'
                format: date-time
              name:
                type: string
              paidUntil:
                type:
                - string
                - 'null'
                format: date-time
              priceHourlyUsd:
                type:
                - string
                - 'null'
                description: 'Request-time hourly price snapshot in USD, serialized as a string;

                  absent when the catalog has no active price for this resource. A UI

                  estimate, not the amount billed.'
                example: '0.05'
              priceMonthlyUsd:
                type:
                - string
                - 'null'
                description: 'Request-time monthly price snapshot in USD (`hourly × 730`), serialized

                  as a string. See `price_hourly_usd`.'
                example: '36.50'
              readySince:
                type:
                - string
                - 'null'
                format: date-time
              removedAt:
                type:
                - string
                - 'null'
                format: date-time
              status:
                $ref: '#/components/schemas/UserPublicIpStatusDto'
              userId:
                $ref: '#/components/schemas/UserId'
        pagination:
          $ref: '#/components/schemas/PaginationInfo'
    UserVmId:
      type: string
      format: uuid
    UpdateUserPublicIpRequest:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
    UserPublicIpDto:
      type: object
      required:
      - id
      - userId
      - clusterId
      - name
      - addressType
      - status
      - createdAt
      properties:
        address:
          type:
          - string
          - 'null'
        addressType:
          $ref: '#/components/schemas/IpAddressType'
        allowedActions:
          type: array
          items:
            $ref: '#/components/schemas/PublicIpActionDto'
          description: 'Operations currently legal for this public IP''s `status`, derived from

            the same guards as request validation.'
        attachedTo:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/UserVmReference'
        clusterId:
          $ref: '#/components/schemas/ClusterId'
        createdAt:
          type: string
          format: date-time
        id:
          $ref: '#/components/schemas/UserPublicIpId'
        lastPaidAt:
          type:
          - string
          - 'null'
          format: date-time
        name:
          type: string
        paidUntil:
          type:
          - string
          - 'null'
          format: date-time
        priceHourlyUsd:
          type:
          - string
          - 'null'
          description: 'Request-time hourly price snapshot in USD, serialized as a string;

            absent when the catalog has no active price for this resource. A UI

            estimate, not the amount billed.'
          example: '0.05'
        priceMonthlyUsd:
          type:
          - string
          - 'null'
          description: 'Request-time monthly price snapshot in USD (`hourly × 730`), serialized

            as a string. See `price_hourly_usd`.'
          example: '36.50'
        readySince:
          type:
          - string
          - 'null'
          format: date-time
        removedAt:
          type:
          - string
          - 'null'
          format: date-time
        status:
          $ref: '#/components/schemas/UserPublicIpStatusDto'
        userId:
          $ref: '#/components/schemas/UserId'
    UserPublicIpStatusDto:
      type: string
      enum:
      - new
      - created
      - ready
      - failed
      - removing
      - removed
    SortOrderDto:
      type: string
      enum:
      - asc
      - desc
    UserId:
      type: string
      format: uuid
    SortFieldDto:
      type: string
      description: Field to order list results by. `status` sorts by the status label text, not a lifecycle order.
      enum:
      - createdAt
      - name
      - status
    ClusterId:
      type: string
      format: uuid
    PaginationInfo:
      type: object
      required:
      - totalRecords
      - filteredRecords
      - totalPages
      - currentPage
      - perPage
      properties:
        currentPage:
          type: integer
          format: u-int64
          minimum: 0
        filteredRecords:
          type: integer
          format: u-int64
          minimum: 0
        perPage:
          type: integer
          format: u-int64
          minimum: 0
        totalPages:
          type: integer
          format: u-int32
          minimum: 0
        totalRecords:
          type: integer
          format: u-int64
          minimum: 0
    UserPublicIpIdsDto:
      type: object
      required:
      - ids
      properties:
        ids:
          type: array
          items:
            $ref: '#/components/schemas/UserPublicIpId'
    CreateUserPublicIpRequest:
      type: object
      required:
      - clusterId
      - name
      - addressType
      properties:
        addressType:
          $ref: '#/components/schemas/NewIpAddressType'
        clusterId:
          $ref: '#/components/schemas/ClusterId'
        name:
          type: string
    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
    PublicIpActionDto:
      type: string
      description: 'Wire representation of [`PublicIpAction`] — the operations exposed via

        `UserPublicIpDto.allowedActions`.'
      enum:
      - update
      - delete
      - attachToVm
    UserPublicIpId:
      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