List keys
GET/api/keystore/keys
Authentication: bearer token.
Permission: any signed-in user.
Query parameters
| Name | Type | Required | Notes |
|---|---|---|---|
scope | — | No | |
search | — | No |
curl -X GET "https://shellius.example.com/api/keystore/keys" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Get key
GET/api/keystore/keys/:id
Authentication: bearer token.
Permission: any signed-in user.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X GET "https://shellius.example.com/api/keystore/keys/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Generate key
POST/api/keystore/keys/generate
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
scope | object | No | |
name | string | Yes | 1–200 characters. |
description | string | No | At most 1000 characters. May be null. |
keyType | string | No | Default ed25519. |
bits | number | No | |
comment | string | No | At most 255 characters. May be null. |
passphrase | string | No | At most 255 characters. May be null. |
curl -X POST "https://shellius.example.com/api/keystore/keys/generate" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "…"
}'201 Created
{ "success": true, "data": { … } }Parse a pasted private key
POST/api/keystore/keys/inspect
Authentication: bearer token.
Permission: any signed-in user.
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
privateKey | string | Yes | |
passphrase | string | No | At most 255 characters. May be null. |
curl -X POST "https://shellius.example.com/api/keystore/keys/inspect" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"privateKey": "…"
}'200 OK
{ "success": true, "data": { … } }Import key
POST/api/keystore/keys/import
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
scope | object | No | |
name | string | Yes | 1–200 characters. |
description | string | No | At most 1000 characters. May be null. |
privateKey | string | Yes | |
passphrase | string | No | At most 255 characters. May be null. |
publicKey | string | No | May be null. |
certificate | string | No | May be null. |
curl -X POST "https://shellius.example.com/api/keystore/keys/import" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "…",
"privateKey": "…"
}'201 Created
{ "success": true, "data": { … } }Update key metadata/cert
PATCH/api/keystore/keys/:id
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
name | string | No | 1–200 characters. |
description | string | No | At most 1000 characters. May be null. |
comment | string | No | At most 255 characters. May be null. |
certificate | string | No | May be null. |
curl -X PATCH "https://shellius.example.com/api/keystore/keys/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "…",
"description": "…",
"comment": "…"
}'200 OK
{ "success": true, "data": { … } }Delete key
DELETE/api/keystore/keys/:id
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X DELETE "https://shellius.example.com/api/keystore/keys/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Export decrypted PRIVATE key
POST/api/keystore/keys/:id/export
Authentication: bearer token.
Permission: keystore.export_private or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
includePrivate | boolean | Yes | One of true. |
curl -X POST "https://shellius.example.com/api/keystore/keys/{id}/export" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"includePrivate": "true"
}'200 OK
{ "success": true, "data": { … } }Keys move to org
POST/api/keystore/keys/:id/move-to-org
Authentication: bearer token.
Permission: keystore.manage.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X POST "https://shellius.example.com/api/keystore/keys/{id}/move-to-org" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }List identities
GET/api/keystore/credentials
Authentication: bearer token.
Permission: any signed-in user.
Query parameters
| Name | Type | Required | Notes |
|---|---|---|---|
scope | — | No | |
search | — | No |
curl -X GET "https://shellius.example.com/api/keystore/credentials" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Get identity
GET/api/keystore/credentials/:id
Authentication: bearer token.
Permission: any signed-in user.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X GET "https://shellius.example.com/api/keystore/credentials/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Create identity
POST/api/keystore/credentials
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
scope | object | No | |
name | string | Yes | 1–200 characters. |
description | string | No | At most 1000 characters. May be null. |
username | string | Yes | 1–255 characters. |
authType | string | Yes | |
password | string | No | At most 1000 characters. May be null. |
sshKeyId | string | No | |
newKey | object | No | |
tags | array | No |
curl -X POST "https://shellius.example.com/api/keystore/credentials" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "…",
"username": "…",
"authType": "…"
}'201 Created
{ "success": true, "data": { … } }Update identity
PATCH/api/keystore/credentials/:id
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
name | string | No | 1–200 characters. |
description | string | No | At most 1000 characters. May be null. |
username | string | No | 1–255 characters. |
authType | string | No | |
password | string | No | At most 1000 characters. May be null. |
clearPassword | boolean | No | |
sshKeyId | string | No | May be null. |
newKey | object | No | |
tags | array | No |
curl -X PATCH "https://shellius.example.com/api/keystore/credentials/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "…",
"description": "…",
"username": "…"
}'200 OK
{ "success": true, "data": { … } }Delete identity
DELETE/api/keystore/credentials/:id
Authentication: bearer token.
Permission: keystore.manage or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
Query parameters
| Name | Type | Required | Notes |
|---|---|---|---|
force | — | No |
curl -X DELETE "https://shellius.example.com/api/keystore/credentials/{id}" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Test identity against serverId OR arbitrary host
POST/api/keystore/credentials/:id/test
Authentication: bearer token.
Permission: keystore.test or vault.use.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
serverId | string | No | |
host | string | No | |
port | number | No | Default 22. 1–65535. |
curl -X POST "https://shellius.example.com/api/keystore/credentials/{id}/test" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"serverId": "…",
"host": "…",
"port": 0
}'200 OK
{ "success": true, "data": { … } }Credentials move to org
POST/api/keystore/credentials/:id/move-to-org
Authentication: bearer token.
Permission: keystore.manage.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X POST "https://shellius.example.com/api/keystore/credentials/{id}/move-to-org" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Deploy/remove/rotate key on servers
POST/api/keystore/deployments
Authentication: bearer token.
Permission: keystore.deploy.
Request body
| Name | Type | Required | Notes |
|---|---|---|---|
sshKeyId | string | Yes | |
serverIds | array | Yes | At least 1. |
action | string | Yes | One of deploy, remove, rotate. |
targetUser | string | No | May be null. |
auth | object | Yes | |
useSudo | boolean | No | Default false. |
rotate | string | Yes | Default false. |
curl -X POST "https://shellius.example.com/api/keystore/deployments" \
-H "Authorization: Bearer $SHELLIUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sshKeyId": "…",
"serverIds": [],
"action": "deploy",
"auth": {},
"rotate": "…"
}'200 OK
{ "success": true, "data": { … } }List deployment batches
GET/api/keystore/deployments/batches
Authentication: bearer token.
Permission: keystore.view.
Query parameters
| Name | Type | Required | Notes |
|---|---|---|---|
limit | — | No |
curl -X GET "https://shellius.example.com/api/keystore/deployments/batches" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }List deployments
GET/api/keystore/deployments
Authentication: bearer token.
Permission: keystore.view.
Query parameters
| Name | Type | Required | Notes |
|---|---|---|---|
batchId | string | No | |
sshKeyId | string | No | |
serverId | string | No | |
page | number | No | Default 1. At least 1. |
pageSize | number | No | Default 25. 1–100. |
curl -X GET "https://shellius.example.com/api/keystore/deployments" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }Retry deployment
POST/api/keystore/deployments/:id/retry
Authentication: bearer token.
Permission: keystore.deploy.
Path parameters
| Name | Type | Notes |
|---|---|---|
id | string |
curl -X POST "https://shellius.example.com/api/keystore/deployments/{id}/retry" \
-H "Authorization: Bearer $SHELLIUS_TOKEN"200 OK
{ "success": true, "data": { … } }