Preview — pending review
This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.
Retrieve a key pair detail read model
Retrieves the full detail read model for one key pair, backing the key pair detail page on route load.
The payload carries everything the Overview, Instances and Activity tabs render: id, name,
algorithm (type) and key size (bits), SHA256 fingerprint, key comment, createdAt, the
complete OpenSSH publicKey blob (shown with copy/download affordances and authorized_keys
usage snippets), plus the usedBy instance references (id, name, status) that drive the
Instances tab and the in-use deletion guard. The private key is never part of this response —
it is revealed exactly once at creation and is not stored by the platform.
Validation: scopeId must be accessible to the caller and keyPairId must identify a key
pair within that scope — an unknown or out-of-scope id maps to 404 NOT_FOUND; no body or query
inputs.
Async & state: Synchronous read; no state change. Subsequent changes to the key pair (e.g.
an instance attaching or detaching the key) arrive as resource.updated SSE frames of kind
compute.keyPair with a JSON-merge patch of the changed fields.
Errors: 401 unauthenticated; 403 caller lacks a read-capable role
(owner|admin|contributor|reader) on the scope; 404 unknown scopeId or keyPairId; 500
read-model failure.
Idempotency/Concurrency: Safe, cacheable; no idempotency key required. The response carries
no ETag; the delete does not check If-Match.
bearerTokenAuthorizationBearer <token>An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
keyPairId*stringIdentifier of the key pair within the active scope.
Key pair detail read model (public key material only; the private key is never returned).
application/json- response
SSH key pair registered in the active scope. Contains public material only — private keys are never stored or returned by reads.
id*stringKey pair identifier (e.g. "kp-1").
name*stringKey pair name, unique within the region.
fingerprint*stringSHA256 fingerprint of the public key (e.g. "SHA256:Hk9c…").
type*stringOpenSSH key algorithm.
"ssh-ed25519""ssh-rsa""ecdsa-sha2-nistp256"bits*integerKey size in bits (256 for Ed25519/ECDSA P-256, e.g. 4096 for RSA).
createdAt*stringISO-8601 creation timestamp.
publicKey*stringFull OpenSSH public key blob (algorithm, base64 material, comment).
comment*stringKey comment (e.g. "ops@publiccloud").
usedBy*array<>Instances currently configured with this key; non-empty blocks deletion.
curl -X GET "https://example.com/scopes/string/compute/key-pairs/string"{ "id": "string", "name": "string", "fingerprint": "string", "type": "ssh-ed25519", "bits": 0, "createdAt": "string", "publicKey": "string", "comment": "string", "usedBy": [ { "id": "string", "name": "string", "status": "ACTIVE" } ]}