---
title: "Get Cloud Credentials"
method: GET
path: "/cloud-credentials"
tags: ["Cloud Credentials"]
---

# Get Cloud Credentials

`GET /cloud-credentials`

## Request

- Base URL: `https://am1.portal.api.nasuni.com`
- URL: `https://am1.portal.api.nasuni.com/cloud-credentials`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nasuni/apis/portal-api/docs/cloud-credentials/get.ts> (a function with typed inputs; its response is checked against the schema)

Get paginated cloud credentials with optional filters.

Supports cursor-based pagination with keyset seek for efficient forward navigation.

## Query parameters

- `search` string, nullable
- `providers` NocCloudProvider[], nullable: Filter by cloud provider shortnames
- `appliance_ids` string[], nullable: Filter by appliance IDs
- `volume_ids` string[], nullable: Filter by associated volume IDs
- `sort_by` 'name' | 'shortname' | 'hostname' | 'access_key' | 'note' | 'created_at' | 'updated_at' | 'appliance_name': Sortable columns for credential list queries.
- `sort_direction` 'ascending' | 'descending'
- `iterator_id` string, uuid, nullable
- `limit` integer
- `page` integer, nullable

## Response `200`

Paginated list of cloud credentials

- CloudCredentialsDto: Response DTO for a list of cloud credentials with cursor-based pagination.
  - `items` CloudCredentialDto[]
    - `id` string, uuid, required
    - `appliance_id` string, uuid, required: Appliance GUID owning this credential
    - `appliance_name` string, required: Appliance name
    - `appliance_serial` string, uuid, required: Serial number of the edge appliance
    - `appliance_credential_uuid` string, required: UUID assigned to the credential by the appliance
    - `name` string, required
    - `shortname` 'amazons3' | 'amazons3gov' | 'azure' | 'google' | 'googles3' | 'atmos' | 'ironmountain' | 'rackspace' | 'nirvanix' | 'synaptic' | 'castor' | 'delldx' | 'cloudone' | 'hp' | 'cleversafe' | 'vipr' | 'ibmcos' | 'hcp' | 's3_compatible', required: Cloud provider identity as used by NOC (shortname).
    - `cred_type` 'amazons3' | 'amazons3gov' | 'azure' | 'ibmcos' | 'hcp' | 'vipr' | 'cleversafe' | 'googles3' | 's3_compatible', required: The underlying storage API/protocol (maps to 'type' in NOC response).
    - `hostname` string, required
    - `access_key` string, required
    - `vendor` 'customer' | 'private' | 'nasuni', required: Who provisions the cloud infrastructure.
    - `note` string, nullable
    - `verify_certificates` boolean
    - `certificate` string, nullable
    - `region_code` string, nullable
    - `is_stub` boolean: True while this row is a Portal-created placeholder awaiting filer confirmation
    - `status` 'synced' | 'pending' | 'failed' | 'creating', required: Derived status of a credential on a specific edge.
    - `error` CloudCredentialErrorDto: Error details returned when credential status is 'failed'. Populated from the failed task's customer-safe reason, or synthetically when the edge does not respond within the timeout window.
      - `task_id` string, uuid, required: Task ID that failed — used by the frontend to acknowledge/dismiss the error
      - `action` string, nullable: Persisted task action
      - `can_acknowledge` boolean: Whether the current caller may acknowledge this failed task
      - `code` integer, nullable: 408 for synthetic timeouts; null for explicit task failures
      - `error` string, required: Error category ('timeout' for synthetic timeouts, 'unknown' for explicit task failures)
      - `message` string, required: Human-readable error description
      - `detected_at` string, date-time, required: Task failure transition time, or created_at plus timeout for synthetic timeouts
    - `volumes` CloudCredentialVolumeDto[]: Volumes using this credential
      - `volume_id` string, required: Volume UUID string (e.g. 'uuid_0')
      - `name` string, required: Volume display name
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `metadata` CloudCredentialPaginationMetadataDto, required: Pagination metadata for credential list responses.
    - `iterator_id` string, uuid, nullable: Iterator ID for loading more results (null if no more)
    - `page_size` integer: Number of items per page
    - `total_pages` integer, nullable: Total number of pages (null if unknown)
    - `total_items` integer, required: Total number of items matching the query
    - `page` integer, nullable: Current page number (1-based)

## Other responses

- `400`: Bad request
- `401`: Not authenticated
- `403`: Insufficient permissions
- `422`: Invalid input data
- `500`: Internal server error

---

[API](https://skmtc.dev/nasuni/apis/portal-api.md) - [All operations](https://skmtc.dev/nasuni/apis/portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nasuni/apis/portal-api/revisions/2a505bec6d14?raw)
