Skip to main content
PUT
/
vault-integrations
/
{id}
Update Vault Integration
curl --request PUT \
  --url https://api.example.com/vault-integrations/{id} \
  --header 'Content-Type: application/json' \
  --data '
{
  "secretId": "<string>"
}
'
{
  "id": "<string>",
  "name": "<string>",
  "type": "<string>",
  "address": "<string>",
  "namespace": "<string>",
  "authMethod": "<string>",
  "roleId": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>"
}

Overview

Rotates the stored AppRole secret_id for an integration. Use this after rotating the AppRole in Vault itself. The vault address, namespace, and role ID cannot be changed — delete and recreate the integration to change them. Rotations take effect immediately; in-flight authenticate actions that have already acquired a token are unaffected.

Path Parameters

id
string
required
Integration ID (UUID).

Body

secretId
string
New AppRole secret_id. Stored encrypted at rest.

Example Request

curl -X PUT "https://api.scrapengine.io/api/v1/vault-integrations/5f8c6a74-5f2e-4f5a-9e58-5b9c3c7d2a11" \
  -H "Authorization: Bearer $SCRAPENGINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "secretId": "s.yyyyyyyyyyyyyyyyyyyyyyyy"
  }'

Response

Success Response (200)

id
string
Integration ID (UUID).
name
string
Human-readable name.
type
string
Backend type. Always hashicorp in v1.
address
string
Vault address.
namespace
string
Vault Enterprise namespace, or null if unset.
authMethod
string
Auth method. Always approle in v1.
roleId
string
AppRole role_id.
createdAt
string
ISO 8601 timestamp.
updatedAt
string
ISO 8601 timestamp. Bumped on a successful rotation.
Example Response:
{
  "id": "5f8c6a74-5f2e-4f5a-9e58-5b9c3c7d2a11",
  "name": "prod-vault",
  "type": "hashicorp",
  "address": "https://vault.prod.example.com:8200",
  "namespace": null,
  "authMethod": "approle",
  "roleId": "8f2e1c0c-0e4a-4b58-8b2e-4a9e1c8a4a11",
  "createdAt": "2026-04-20T11:05:02Z",
  "updatedAt": "2026-04-24T09:18:11Z"
}

Error Responses

StatusDescription
400Invalid body — for example empty secretId.
401Unauthorized — invalid or missing API key.
404Integration not found or not owned by the caller.