NimbusNexus V1:external:connections API
The v1:external:connections API from NimbusNexus — 4 operation(s) for v1:external:connections.
The v1:external:connections API from NimbusNexus — 4 operation(s) for v1:external:connections.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/nimbusnexus:nimbusnexus-v1-external-connections-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: NimbusNexus API — External V1:external:connections API
description: 'External (public) API intended for client-facing integrations and the web portal.
Authentication:
- This API uses JWT Bearer authentication.
- In Swagger UI, click ''Authorize'' and sign in via the configured token endpoint.
- Swagger will automatically attach the header: Authorization: Bearer .'
version: test
servers:
- url: /
description: Current host
- url: https://fastapi.dev.nimbusnexus.net
description: Development
security:
- SwaggerLogin: []
- ApiKeyAuth: []
tags:
- name: v1:external:connections
paths:
/api/v1/external/connections/:
post:
tags:
- v1:external:connections
summary: Create Storage
description: Registers a new external backup storage destination for the current domain.
operationId: create_storage_api_v1_external_connections__post
security:
- SwaggerLogin: []
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageSuccessOut'
'400':
description: Bad Request
content:
application/json:
example:
success: false
message: Bad Request
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'401':
description: Unauthorized
content:
application/json:
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'409':
description: Conflict
content:
application/json:
example:
success: false
message: Conflict
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'422':
description: Validation error
content:
application/json:
example:
success: false
errors:
field:
- Invalid value
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
'500':
description: Internal Server Error
content:
application/json:
example:
success: false
message: Internal Server Error
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
get:
tags:
- v1:external:connections
summary: List Storages
description: Lists registered external backup storage destinations with optional type filtering and pagination.
operationId: list_storages_api_v1_external_connections__get
security:
- SwaggerLogin: []
- ApiKeyAuth: []
parameters:
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
minimum: 0
- type: 'null'
title: Limit
- name: offset
in: query
required: false
schema:
anyOf:
- type: integer
minimum: 0
- type: 'null'
title: Offset
- name: use_pagination
in: query
required: false
schema:
type: boolean
default: true
title: Use Pagination
- name: storage_type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Storage Type
- name: capability
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter to connections enabled for a capability (e.g. 'backup', 'browse'). Omit to list all.
title: Capability
description: Filter to connections enabled for a capability (e.g. 'backup', 'browse'). Omit to list all.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageSuccessOutList'
'400':
description: Bad Request
content:
application/json:
example:
success: false
message: Bad Request
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'401':
description: Unauthorized
content:
application/json:
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'422':
description: Validation error
content:
application/json:
example:
success: false
errors:
field:
- Invalid value
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
'500':
description: Internal Server Error
content:
application/json:
example:
success: false
message: Internal Server Error
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
/api/v1/external/connections/test:
post:
tags:
- v1:external:connections
summary: Test Storage Connection
description: Verifies an external storage credential set against the provider (read-only reachability/auth check) WITHOUT saving it. Lets the UI validate keys before the user commits them.
operationId: test_storage_connection_api_v1_external_connections_test_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCreate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
example:
success: false
message: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
'422':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
example:
success: false
errors:
field:
- Invalid value
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
example:
success: false
message: Internal Server Error
security:
- SwaggerLogin: []
- ApiKeyAuth: []
/api/v1/external/connections/{storage_id}/test:
post:
tags:
- v1:external:connections
summary: Test Saved Storage Connection
description: Tests a SAVED connection using its stored (encrypted) secret and records the result as the connection's health. Returns the updated connection; a rejected credential comes back with last_status='failed' and the error, not as an HTTP error.
operationId: test_saved_storage_connection_api_v1_external_connections__storage_id__test_post
security:
- SwaggerLogin: []
- ApiKeyAuth: []
parameters:
- name: storage_id
in: path
required: true
schema:
type: string
title: Storage Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageSuccessOut'
'400':
description: Bad Request
content:
application/json:
example:
success: false
message: Bad Request
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'401':
description: Unauthorized
content:
application/json:
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'404':
description: Not Found
content:
application/json:
example:
success: false
message: Not Found
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'422':
description: Validation error
content:
application/json:
example:
success: false
errors:
field:
- Invalid value
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
'500':
description: Internal Server Error
content:
application/json:
example:
success: false
message: Internal Server Error
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
/api/v1/external/connections/{storage_id}:
patch:
tags:
- v1:external:connections
summary: Update Storage
description: Updates the configuration of a registered external backup storage destination.
operationId: update_storage_api_v1_external_connections__storage_id__patch
security:
- SwaggerLogin: []
- ApiKeyAuth: []
parameters:
- name: storage_id
in: path
required: true
schema:
type: string
title: Storage Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StorageUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageSuccessOut'
'400':
description: Bad Request
content:
application/json:
example:
success: false
message: Bad Request
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'401':
description: Unauthorized
content:
application/json:
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'404':
description: Not Found
content:
application/json:
example:
success: false
message: Not Found
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'422':
description: Validation error
content:
application/json:
example:
success: false
errors:
field:
- Invalid value
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
'500':
description: Internal Server Error
content:
application/json:
example:
success: false
message: Internal Server Error
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
delete:
tags:
- v1:external:connections
summary: Delete Storage
description: Removes a registered external backup storage destination by its ID.
operationId: delete_storage_api_v1_external_connections__storage_id__delete
security:
- SwaggerLogin: []
- ApiKeyAuth: []
parameters:
- name: storage_id
in: path
required: true
schema:
type: string
title: Storage Id
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
example:
success: false
message: Bad Request
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'401':
description: Unauthorized
content:
application/json:
example:
success: false
message: Unauthorized | Invalid token | Expired token | Authentication required
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'404':
description: Not Found
content:
application/json:
example:
success: false
message: Not Found
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
'422':
description: Validation error
content:
application/json:
example:
success: false
errors:
field:
- Invalid value
schema:
$ref: '#/components/schemas/ResponseValidationErrorOut'
'500':
description: Internal Server Error
content:
application/json:
example:
success: false
message: Internal Server Error
schema:
$ref: '#/components/schemas/ResponseBaseErrorOut'
components:
schemas:
S3AccessData:
properties:
aws_access_key_id:
anyOf:
- type: string
- type: 'null'
title: Aws Access Key Id
region:
anyOf:
- type: string
- type: 'null'
title: Region
bucket:
anyOf:
- type: string
- type: 'null'
title: Bucket
additionalProperties: true
type: object
title: S3AccessData
StorageUpdate:
properties:
name:
anyOf:
- type: string
maxLength: 120
- type: 'null'
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
secret_data:
anyOf:
- type: string
- type: 'null'
title: Secret Data
type:
anyOf:
- $ref: '#/components/schemas/StorageTypeEnum'
- type: 'null'
url:
anyOf:
- type: string
- type: 'null'
title: Url
access_data:
anyOf:
- $ref: '#/components/schemas/S3AccessData'
- $ref: '#/components/schemas/SwiftAccessData'
- $ref: '#/components/schemas/BlobAccessData'
- $ref: '#/components/schemas/GCSAccessData'
- type: 'null'
title: Access Data
capabilities:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Capabilities
type: object
title: StorageUpdate
StorageStatusEnum:
type: string
enum:
- untested
- connected
- failed
title: StorageStatusEnum
GCSAccessData:
properties:
project_id:
anyOf:
- type: string
- type: 'null'
title: Project Id
client_email:
anyOf:
- type: string
- type: 'null'
title: Client Email
private_key_id:
anyOf:
- type: string
- type: 'null'
title: Private Key Id
client_id:
anyOf:
- type: string
- type: 'null'
title: Client Id
bucket:
anyOf:
- type: string
- type: 'null'
title: Bucket
additionalProperties: true
type: object
title: GCSAccessData
ReadStorage:
properties:
id:
type: string
title: Id
domain_id:
anyOf:
- type: string
- type: 'null'
title: Domain Id
name:
anyOf:
- type: string
- type: 'null'
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
type:
anyOf:
- $ref: '#/components/schemas/StorageTypeEnum'
- type: 'null'
capabilities:
items:
type: string
type: array
title: Capabilities
access_data:
anyOf:
- $ref: '#/components/schemas/S3AccessData'
- $ref: '#/components/schemas/SwiftAccessData'
- $ref: '#/components/schemas/BlobAccessData'
- $ref: '#/components/schemas/GCSAccessData'
- type: 'null'
title: Access Data
url:
anyOf:
- type: string
- type: 'null'
title: Url
last_status:
allOf:
- $ref: '#/components/schemas/StorageStatusEnum'
default: untested
last_tested_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Tested At
last_error:
anyOf:
- type: string
- type: 'null'
title: Last Error
last_used_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Used At
transferred_gb_30d:
anyOf:
- type: number
- type: 'null'
title: Transferred Gb 30D
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
type: object
required:
- id
- created_at
- updated_at
title: ReadStorage
SwiftAccessData:
properties:
username:
anyOf:
- type: string
- type: 'null'
title: Username
user_domain:
anyOf:
- type: string
- type: 'null'
title: User Domain
project_domain:
anyOf:
- type: string
- type: 'null'
title: Project Domain
project:
anyOf:
- type: string
- type: 'null'
title: Project
region:
anyOf:
- type: string
- type: 'null'
title: Region
container:
anyOf:
- type: string
- type: 'null'
title: Container
additionalProperties: true
type: object
title: SwiftAccessData
StorageCreate:
properties:
domain_id:
anyOf:
- type: string
- type: 'null'
title: Domain Id
name:
type: string
maxLength: 120
minLength: 1
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
type:
$ref: '#/components/schemas/StorageTypeEnum'
capabilities:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Capabilities
secret_data:
anyOf:
- type: string
- type: 'null'
title: Secret Data
access_data:
anyOf:
- $ref: '#/components/schemas/S3AccessData'
- $ref: '#/components/schemas/SwiftAccessData'
- $ref: '#/components/schemas/BlobAccessData'
- $ref: '#/components/schemas/GCSAccessData'
- type: 'null'
title: Access Data
url:
anyOf:
- type: string
- type: 'null'
title: Url
type: object
required:
- name
- type
title: StorageCreate
BlobAccessData:
properties:
account_name:
anyOf:
- type: string
- type: 'null'
title: Account Name
container:
anyOf:
- type: string
- type: 'null'
title: Container
additionalProperties: true
type: object
title: BlobAccessData
ResponseBaseErrorOut:
properties:
success:
type: boolean
title: Success
default: false
message:
type: string
title: Message
type: object
required:
- message
title: ResponseBaseErrorOut
StorageSuccessOutList:
properties:
success:
type: boolean
title: Success
default: true
data:
items:
$ref: '#/components/schemas/ReadStorage'
type: array
title: Data
total:
type: integer
title: Total
type: object
required:
- data
- total
title: StorageSuccessOutList
ResponseValidationErrorOut:
properties:
success:
type: boolean
title: Success
default: false
errors:
additionalProperties:
items:
type: string
type: array
type: object
title: Errors
type: object
required:
- errors
title: ResponseValidationErrorOut
StorageTypeEnum:
type: string
enum:
- s3
- swift
- blob
- gcs
title: StorageTypeEnum
StorageSuccessOut:
properties:
success:
type: boolean
title: Success
default: true
data:
$ref: '#/components/schemas/ReadStorage'
type: object
required:
- data
title: StorageSuccessOut
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
APIKeyHeader:
type: apiKey
in: header
name: X-API-Key
SwaggerLogin:
type: oauth2
flows:
password:
tokenUrl: /api/v1/account/login_swagger
scopes: {}
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: API Key format - base64('<id>:<secret>')