Skip to main content

Secrets Manager API

The Secrets Manager API lets you programmatically manage secret lists and the key-value pairs inside them, so you can inject secrets into VMs at build time from your automation, CI/CD pipelines, and infrastructure-as-code tooling. Secrets are organized as named lists, and each list holds one or more key-value pairs. For portal-based usage and the full endpoint reference, see the Secrets API Reference and Managing Secrets.

Authentication

All requests require your API token in the Authorization header:

Authorization: Bearer <your-api-key>

Base URL

Secrets are served by API v2:

https://api.netactuate.com/api/v2

Responses use the standard v2 envelope: { "result": "success", "message": null, "data": ..., "code": 200 }.


List Secret Lists

Retrieve all secret lists in your account.

curl -X GET "https://api.netactuate.com/api/v2/secrets/lists" \
-H "Authorization: Bearer YOUR_API_KEY"

To fetch a single list by its ID, use GET /api/v2/secrets/lists/{secret_list_id}.


Create a Secret List

Create a new, empty secret list. The name must be unique across your account.

curl -X POST "https://api.netactuate.com/api/v2/secrets/lists" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "web-app-secrets"
}'

To rename an existing list, POST /api/v2/secrets/lists/{secret_list_id} with a new name. To delete a list, DELETE /api/v2/secrets/lists/{secret_list_id}.


Add a Value to a List

Each value is a key-value pair identified by secret_key. Add one with secret_key and secret_value:

curl -X POST "https://api.netactuate.com/api/v2/secrets/lists/{secret_list_id}/values" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"secret_key": "db-password",
"secret_value": "s3cur3-p4ssw0rd"
}'

Retrieve Values

List every value in a specific list:

curl -X GET "https://api.netactuate.com/api/v2/secrets/lists/{secret_list_id}/values" \
-H "Authorization: Bearer YOUR_API_KEY"

Retrieve a single value with GET /api/v2/secrets/lists/{secret_list_id}/values/{secret_list_value_id}, or fetch every value across all lists with GET /api/v2/secrets/all-values.


Update or Delete a Value

Update a value by posting new secret_key and/or secret_value fields to the value endpoint:

curl -X POST "https://api.netactuate.com/api/v2/secrets/lists/{secret_list_id}/values/{secret_list_value_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"secret_value": "new-s3cur3-p4ssw0rd"
}'

Delete a value with DELETE /api/v2/secrets/lists/{secret_list_id}/values/{secret_list_value_id}.

Note: Deleting a secret does not affect VMs that were already deployed with that value. The value remains on those VMs until they are redeployed.


Using Secrets in a Build

Reference secret lists when you deploy a VM so their values are rendered into cloud-init. See Using Secrets Manager with Cloud-Init for a full build example.

Next Steps