Integration API clients

Use integration API clients when an approved system needs read-only VaultPilot data through the public API. Keep the client narrow: grant only the scopes and vaults the system needs, record who owns it, and revoke it when the integration is retired.

Public API surface

Endpoint, credential format and status-code details are in the Public API reference.

GET /api/public/v1/secrets returns an encrypted snapshot for the vaults assigned to the API client: vault metadata, encrypted vault names, secret IDs, secret types, encrypted payloads and timestamps. It does not return plaintext passwords or decrypted vault data.

GET /api/public/v1/secrets/{secretId} returns one encrypted secret from the same allowed snapshot. If the ID is malformed, missing, deleted, or outside the client’s allowed vaults, VaultPilot deliberately returns 403 Integration authorization failed. so unauthorized clients cannot tell hidden records from bad IDs.

API clients can also read status endpoints. These never decrypt vault data and need no vault assignment unless the client also has SECRETS_READ.

ScopeEndpointReturns
SECRETS_READGET /api/public/v1/secrets and GET /api/public/v1/secrets/{secretId}Encrypted vault and secret snapshots for assigned vaults.
SERVER_STATUS_READGET /api/public/v1/server/statusApp version, uptime, vault count, active API client count and directory provider count.
DIRECTORY_STATUS_READGET /api/public/v1/directory/statusDirectory provider health, object counts, selected login counts, selected credential counts and last-seen/sync timestamps.
UPDATE_STATUS_READGET /api/public/v1/updates/statusThe Update Center status shown in the console, for read-only monitoring.

Create a client

  1. Sign in as an Owner.
  2. Open Integrations and go to the API clients section.
  3. Pick only the endpoint scopes the consuming system needs.
  4. If SECRETS_READ is selected, assign the minimum vault list. Status-only clients do not need vault scope.
  5. Create the client with a clear name.
  6. Copy the client secret once and store it in the approved secret store for the consuming system.
  7. Record owner, purpose, allowed vaults, scopes and review date.

The client secret is stored hashed on the server. If it is lost, create a new client and revoke the old one.

Authentication

VaultPilot accepts either HTTP Basic auth or the legacy compatibility headers. Prefer Basic auth for new integrations.

Authorization: Basic ${BASE64_CLIENT_CREDENTIALS}

Older clients can use the compatibility headers:

x-passman-client-id: <CLIENT_ID>
x-passman-client-secret: <CLIENT_SECRET>

Do not log either header. Do not paste real client IDs or secrets into screenshots, tickets, documents or support email.

Example request

$pair = "<CLIENT_ID>:<CLIENT_SECRET>"
$basic = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($pair))
Invoke-RestMethod -Headers @{ Authorization = "Basic $basic" } -Uri "https://<SERVER_HOST>:1734/api/public/v1/secrets"

Status-only example:

$pair = "<CLIENT_ID>:<CLIENT_SECRET>"
$basic = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($pair))
Invoke-RestMethod -Headers @{ Authorization = "Basic $basic" } -Uri "https://<SERVER_HOST>:1734/api/public/v1/server/status"

Run commands that contain real $pair or $basic values only in a private operator shell.

Expected errors

SymptomMeaningOperator action
401 or auth failureClient ID/secret is missing, malformed, wrong or revoked.Create a new client, update the consuming system, then revoke the old client.
Scope deniedThe client does not have the scope required by the endpoint.Add the intended scope or create a new least-privilege client.
Empty vault listThe client has no vaults assigned for secret snapshot access. This matters only for SECRETS_READ.Assign only the vaults the integration needs, or remove SECRETS_READ for status-only clients.
Hidden or invalid secret IDThe secret ID is malformed, deleted or outside the client’s allowed vaults; VaultPilot returns 403 Integration authorization failed.Take the secret ID from an allowed encrypted snapshot, then check SECRETS_READ, vault assignment and client scope.

Back to Documentation