Nasuni Volume Connections API

The Volume Connections API from Nasuni — 1 operation(s) for volume connections.

Operations 1

GET /volume_connections Get Volume Connections #

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/nasuni-volume-connections-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 email required.

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

OpenAPI Specification

nasuni-volume-connections-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Portal Volume Connections API
  version: 0.1.0
servers:
- url: https://am1.portal.api.nasuni.com
  description: Base URL for accounts assigned the US region.
- url: https://eu1.portal.api.nasuni.com
  description: Base URL for accounts assigned the EU region.
- url: https://ap1.portal.api.nasuni.com
  description: Base URL for accounts assigned the Asia-Pacific region.
security:
- HTTPBearer: []
tags:
- name: Volume Connections
paths:
  /volume_connections:
    get:
      tags:
      - Volume Connections
      summary: Get Volume Connections
      description: 'Flat volume-appliance connection list from Portal DB.


        One ``(volume, appliance)`` row per mount. Supports ``search``,

        multi-value filters, and ``sort_by`` + ``sort_order``. Unpaginated —

        caller does client-side search/sort/paging.'
      operationId: get_volume_connections_volume_connections_get
      security:
      - HTTPBearer: []
      parameters:
      - name: cloud_providers
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/NocCloudProvider'
          - type: 'null'
          title: Cloud Providers
      - name: protocols
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/Protocol'
          - type: 'null'
          title: Protocols
      - name: roles
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/portal__api__dto__volumes__Role'
          - type: 'null'
          title: Roles
      - name: security_modes
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/SecurityMode'
          - type: 'null'
          title: Security Modes
      - name: permission_policies
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/PermissionPolicy'
          - type: 'null'
          title: Permission Policies
      - name: connection_permissions
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ConnectionPermission'
          - type: 'null'
          title: Connection Permissions
      - name: cloud_regions
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Cloud Regions
      - name: appliance_names
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Appliance Names
      - name: volume_names
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Volume Names
      - name: sort_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/VolumeSortBy'
          - type: 'null'
          title: Sort By
      - name: sort_order
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortOrder'
          default: asc
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
      - name: volume_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Volume Id
      responses:
        '200':
          description: Flat volume-appliance connection list from Portal DB with search, filters, and sort.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeConnectionsResponseDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ValidationErrorResponse:
      properties:
        message:
          type: string
          title: Message
        detail:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Detail
          example:
          - ctx:
              error: 'invalid length: expected length 32 for simple format, found 3'
            input: '123'
            loc:
            - path
            - id
            msg: 'Input should be a valid UUID, invalid length: expected length 32 for simple format, found 3'
            type: uuid_parsing
      type: object
      required:
      - message
      - detail
      title: ValidationErrorResponse
    VolumeConnectionItemDto:
      properties:
        cloud_provider:
          anyOf:
          - $ref: '#/components/schemas/NocCloudProvider'
          - type: 'null'
        cloud_region:
          anyOf:
          - type: string
          - type: 'null'
          title: Cloud Region
        protocol:
          items:
            $ref: '#/components/schemas/Protocol'
          type: array
          title: Protocol
        accessible_data:
          anyOf:
          - type: integer
          - type: 'null'
          title: Accessible Data
        unprotected_data:
          anyOf:
          - type: integer
          - type: 'null'
          title: Unprotected Data
        volume_id:
          type: string
          title: Volume Id
        volume_name:
          type: string
          title: Volume Name
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        permission_policy:
          anyOf:
          - $ref: '#/components/schemas/PermissionPolicy'
          - type: 'null'
        security_mode:
          anyOf:
          - $ref: '#/components/schemas/SecurityMode'
          - type: 'null'
        appliance_id:
          type: string
          title: Appliance Id
        appliance_name:
          type: string
          title: Appliance Name
        last_snapshot_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Snapshot Utc
        current_snapshot_status:
          $ref: '#/components/schemas/SnapshotStatus'
          default: idle
        connection_permission:
          anyOf:
          - $ref: '#/components/schemas/ConnectionPermission'
          - type: 'null'
        role:
          $ref: '#/components/schemas/portal__api__dto__volumes__Role'
        appliance_hostname:
          anyOf:
          - type: string
          - type: 'null'
          title: Appliance Hostname
        is_readonly:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Readonly
        share_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Share Count
        export_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Export Count
        ftp_dir_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ftp Dir Count
        snapshot_start:
          anyOf:
          - type: integer
          - type: 'null'
          title: Snapshot Start
        snapshot_stop:
          anyOf:
          - type: integer
          - type: 'null'
          title: Snapshot Stop
        snapshot_days:
          items:
            type: string
          type: array
          title: Snapshot Days
        snapshot_frequency:
          anyOf:
          - type: integer
          - type: 'null'
          title: Snapshot Frequency
        sync_schedule:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Sync Schedule
        pinned_folders_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Pinned Folders Count
        autofault_folders_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Autofault Folders Count
      type: object
      required:
      - volume_id
      - volume_name
      - appliance_id
      - appliance_name
      - role
      title: VolumeConnectionItemDto
      description: "One ``(volume, appliance)`` connection row from\n``GET /volume_connections``.\n\nThe response is denormalised one-row-per-mount (N appliances → N\nrows). Nullability mirrors :class:`VolumeApplianceRow` end-to-end —\n``None`` means \"no data available yet\" and is intentionally\ndistinct from ``0`` / :attr:`SnapshotStatus.idle`.\n\n* ``protocol`` — full deduplicated list in canonical\n  SMB → NFS → FTP order; empty if no share configured.\n* ``connection_permission`` — derived from\n  ``volumes_v2.remoteaccess_autoaccept`` (master) or\n  ``volume_edge_states.remoteaccess_permission`` (non-master).\n* ``accessible_data`` / ``unprotected_data`` — parsed byte counts;\n  ``None`` when the appliance hasn't reported a number.\n* ``last_snapshot_utc`` — tz-aware UTC, serialised as ISO 8601.\n\nThe trailing per-edge state block (``appliance_hostname`` through\n``autofault_folders_count``) carries every column the Volume\nDetails \"Data Protection\", \"Protocols\", \"Data Growth\", and\n\"Additional Details\" cards need. Kept on this row (rather than a\nseparate detail endpoint) so ``/volume_connections`` remains the\nsingle low-level resource for per-mount data — Portal's BFF and\nexternal API consumers compose it with ``/volumes/{id}`` to build\nhigher-level views."
    ConnectionPermission:
      type: string
      enum:
      - READONLY
      - READWRITE
      - Custom
      title: ConnectionPermission
    SortOrder:
      type: string
      enum:
      - asc
      - desc
      title: SortOrder
      description: Short-form sort direction used by list APIs (asc/desc).
    VolumeSortBy:
      type: string
      enum:
      - volume_name
      - cloud_provider
      - cloud_region
      - accessible_data
      - unprotected_data
      - last_snapshot_utc
      - appliance_name
      title: VolumeSortBy
      description: 'Allowlist for volume-centric sort keys. Invalid values → 422.


        All sorts produce a volume-cohesive ordering (mounts of the same

        volume stay grouped). Per-mount keys are rolled up so they make

        sense as a single value per volume: ``last_snapshot_utc`` → MAX

        across mounts; ``appliance_name`` → master mount edge name.'
    portal__api__dto__volumes__Role:
      type: string
      enum:
      - owner
      - connected
      title: Role
    NocCloudProvider:
      type: string
      enum:
      - amazons3
      - amazons3gov
      - azure
      - google
      - googles3
      - atmos
      - ironmountain
      - rackspace
      - nirvanix
      - synaptic
      - castor
      - delldx
      - cloudone
      - hp
      - cleversafe
      - vipr
      - ibmcos
      - hcp
      - s3_compatible
      title: NocCloudProvider
      description: Cloud provider identity as used by NOC (shortname).
    ErrorResponse:
      properties:
        message:
          type: string
          title: Message
        detail:
          anyOf:
          - {}
          - type: 'null'
          title: Detail
      type: object
      required:
      - message
      - detail
      title: ErrorResponse
    SnapshotStatus:
      type: string
      enum:
      - idle
      - pending
      - in_progress
      - succeeded
      - failed
      - cancelling
      - cancelled
      - cancel_rejected
      - up_to_date
      title: SnapshotStatus
      description: 'Public snapshot lifecycle vocabulary surfaced by the snapshot APIs.


        The persisted column (``VolumeEdgeState.current_snapshot_status``)

        has a single writer: the EventHub ``VolumeSnapshotStatusProcessor``,

        which translates filer ``volume_snapshot_status`` events. No other

        code path — API request handlers, heartbeat upserts, background

        services — writes to that column. ``cancelling`` never reaches the

        DB: it exists as a FE-optimistic wire value only (clients render it

        between the cancel dispatch and the filer''s ``cancelled`` /

        ``cancel_rejected`` ack). ``pending`` is a real filer-reported

        state.'
    PermissionPolicy:
      type: string
      enum:
      - POSIX Mixed Mode
      - UNIX/NFS Permissions Only Mode
      - Unauthenticated Access Mode
      - NTFS Compatible Mode
      - NTFS Exclusive Mode
      - NTFS Multiprotocol Mode
      title: PermissionPolicy
    SecurityMode:
      type: string
      enum:
      - Publicly Available
      - Active Directory
      - LDAP Directory
      title: SecurityMode
    Protocol:
      type: string
      enum:
      - NFS
      - SMB
      - FTP
      title: Protocol
    VolumeConnectionsResponseDto:
      properties:
        items:
          items:
            $ref: '#/components/schemas/VolumeConnectionItemDto'
          type: array
          title: Items
      type: object
      title: VolumeConnectionsResponseDto
      description: GET /volume_connections response — all matching mounts (no pagination).
  securitySchemes:
    ServiceKeyHeader:
      type: apiKey
      in: header
      name: x-service-key
      description: Service key for programmatic API access. Must be used together with x-service-secret.
    ServiceSecretHeader:
      type: apiKey
      in: header
      name: x-service-secret
      description: Service secret for programmatic API access. Must be used together with x-service-key.
    UserKeyHeader:
      type: apiKey
      in: header
      name: x-user-key
      description: User key for user-specific API access.
    HTTPBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token obtained from /auth/token endpoint.
    OAuth2ClientCredentials:
      type: oauth2
      description: Standard OAuth2 Client Credentials flow (RFC 6749 §4.4). Send `client_id` (service key) and `client_secret` (service secret) as form-encoded body parameters to the token endpoint.
      flows:
        clientCredentials:
          tokenUrl: /auth/token
          scopes: {}