---
title: "Get Cloud Credential by ID"
method: GET
path: "/cloud-credentials/{credential_id}"
tags: ["Cloud Credentials"]
---

# Get Cloud Credential by ID

`GET /cloud-credentials/{credential_id}`

## Request

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

Get a single cloud credential by its Portal-assigned credential ID.

## Path parameters

- `credential_id` string, uuid, required

## Response `200`

Cloud credential retrieved successfully

- CloudCredentialDto: Response DTO for a single cloud credential.
  - `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

## Other responses

- `401`: Not authenticated
- `403`: Insufficient permissions
- `404`: Resource not found
- `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)
