Accounts API
The Accounts API allows you to manage accounts in Quave Cloud. You can create, retrieve, list, and delete accounts.
Make sure to read the Get Started document to understand how the API works.
Note: All endpoints in this API accept only the user token.
Create Account
To create a new account, send a POST request to the /api/public/v1/account endpoint.
Below are the fields you can provide:
| Field | Type | Description | Required |
|---|---|---|---|
name | String | The name of the account to be created. | Yes |
registryServer | String | The URL of the private Docker registry. | No* |
registryEmail | String | The email associated with the private registry account. | No* |
registryUsername | String | The username for the private registry. | No* |
registryPassword | String | The password for the private registry. | No* |
*Note: If any of the registry fields are provided, all of them become required.
Example:
curl -X POST \
-H 'Authorization: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "My New Account",
"registryServer": "https://registry.example.com",
"registryEmail": "user@example.com",
"registryUsername": "registryuser",
"registryPassword": "dckr_pat_00000"
}' \
https://api.quave.cloud/api/public/v1/account
Example Response:
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b"
}
The response contains the accountId of the newly created account.
Private Registry Information
When creating an account, you have the option to include private registry credentials. This allows you to use a private Docker registry with your account. Here are some important points to note:
- All registry fields (
registryServer,registryEmail,registryUsername,registryPassword) are optional when creating an account. - However, if you provide any of the registry fields, all of them become required. You must provide all four fields or none of them.
- The
registryPasswordis securely encoded before being stored in the database. - If you don't provide registry information when creating the account, you can still add it later through your account settings page. See the Container Registry section for more details.
If you attempt to create an account with incomplete registry information, you'll receive an error response indicating that all registry fields must be provided if any are specified.
Get Account
To retrieve an account, send a GET request to the /api/public/v1/account endpoint.
You need to provide the accountId as a query parameter.
Example:
curl -X GET \
-H 'Authorization: YOUR_TOKEN' \
https://api.quave.cloud/api/public/v1/account?accountId=5f7b1b7b7b7b7b7b7b7b7b7b
Example Response:
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b",
"name": "My Account",
"slug": "my-account",
"isVerified": true,
"isCurrent": true
}
The response contains the following fields:
| Field | Type | Description |
|---|---|---|
accountId | String | The account ID. |
name | String | The account name. |
slug | String | The account slug. |
isVerified | Boolean | Whether the account is verified. |
isCurrent | Boolean | Whether this account is currently selected by the user. |
List Accounts
To list all accounts that the authenticated user has access to, send a GET request to the /api/public/v1/accounts endpoint.
This endpoint returns all accounts where the user is a member, based on their account memberships.
Example:
curl -X GET \
-H 'Authorization: YOUR_TOKEN' \
https://api.quave.cloud/api/public/v1/accounts
Example Response:
{
"accounts": [
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b",
"name": "My Account",
"slug": "my-account",
"isVerified": true,
"isCurrent": true
},
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7c",
"name": "Another Account",
"slug": "another-account",
"isVerified": false,
"isCurrent": false
}
]
}
The response contains an array of accounts, where each account has the following fields:
| Field | Type | Description |
|---|---|---|
accountId | String | The account ID. |
name | String | The account name. |
slug | String | The account slug. |
isVerified | Boolean | Whether the account is verified. |
isCurrent | Boolean | Whether this account is currently selected by the user. |
Delete Account
To delete an account, send a DELETE request to the /api/public/v1/account endpoint.
You need to provide the accountId as a query parameter.
Example:
curl -X DELETE \
-H 'Authorization: YOUR_TOKEN' \
https://api.quave.cloud/api/public/v1/account?accountId=5f7b1b7b7b7b7b7b7b7b7b7b
Example Response:
{
"message": "Account deleted successfully"
}
Note: Deleting an account requires admin permissions.
Get Current Account
To retrieve the current active account for the authenticated user, send a GET request to the /api/public/v1/current-account endpoint.
This endpoint returns the account that is currently set as the user's active account (stored in the lastAccountId field).
Example:
curl -X GET \
-H 'Authorization: YOUR_TOKEN' \
https://api.quave.cloud/api/public/v1/current-account
Example Response:
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b",
"name": "My Current Account",
"slug": "my-current-account",
"isVerified": true,
"isCurrent": true
}
The response contains the following fields:
| Field | Type | Description |
|---|---|---|
accountId | String | The current account ID. |
name | String | The current account name. |
slug | String | The current account slug. |
isVerified | Boolean | Whether the current account is verified. |
isCurrent | Boolean | Always true for this endpoint since it returns the current account. |
Error Responses:
401- User not authenticated403- Access denied to current account404- No current account set or account not found
Set Current Account
To change the user's current active account, send a PUT request to the /api/public/v1/current-account endpoint.
The user must have access to the account they want to set as current. This updates the lastAccountId field for the user.
Example:
curl -X PUT \
-H 'Authorization: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b"
}' \
https://api.quave.cloud/api/public/v1/current-account
Request Body:
| Field | Type | Description | Required |
|---|---|---|---|
accountId | String | The ID of the account to set as current. | Yes |
Example Response:
{
"accountId": "5f7b1b7b7b7b7b7b7b7b7b7b",
"name": "My New Current Account",
"slug": "my-new-current-account",
"isVerified": true,
"isCurrent": true,
"message": "Current account updated successfully"
}
The response contains the following fields:
| Field | Type | Description |
|---|---|---|
accountId | String | The new current account ID. |
name | String | The new current account name. |
slug | String | The new current account slug. |
isVerified | Boolean | Whether the new current account is verified. |
isCurrent | Boolean | Always true for this endpoint since it returns the newly set current account. |
message | String | Success confirmation message. |
Error Responses:
400- Invalid request body (validation error)401- User not authenticated403- Account not found or access denied404- Account not found