Documentation Index
Fetch the complete documentation index at: https://vanta.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Before you begin
This guide is for Vanta admins managing data inside their own Vanta account. You’ll need:- A Manage Vanta API token.
- The token must have scopes
vanta-api.all:readandvanta-api.all:write. - At least one connected integration whose resources need owners or descriptions.
CURRENT employees — Vanta will reject FORMER users.
Onboarding a new owner across many integrations? Run Step 3 once per
(integrationId, resourceKind) pair. The bulk-update endpoint accepts up to 50 resources per call.Find the resources missing an owner
Your terminal — pick the ResponseCopy each
integrationId and resourceKind you want to update. If you don’t already know them, list connected integrations first with GET /v1/integrations, then list resources filtered to hasOwner=false.Terminal
resourceId you want to update — you’ll send them in Step 3.Got a 401?
Got a 401?
Token is expired (one-hour lifetime), missing, or lacks
vanta-api.all:read. Mint a fresh one — see Authentication → Tokens expire after one hour.Don't know the integrationId or resourceKind?
Don't know the integrationId or resourceKind?
Call
GET /v1/integrations to list connected integrations, their connectionIds, and the resourceKinds they expose (e.g. aws, gcp, snowflake, okta).Filtering by description too?
Filtering by description too?
Add
hasDescription=false to find resources missing a description. Some resource kinds (e.g. SnowflakeDatabase) auto-populate a description and won’t show up in that filter.Get a user to assign as owner
Your terminal — call ResponseCopy the
GET /v1/people and filter to CURRENT employees so you don’t pick someone who’s offboarded.Terminal
id. You’ll send it as ownerId in the next step.Can't find the user?
Can't find the user?
Filter client-side by
emailAddress (most reliable), or paginate with pageCursor if hasNextPage is true. You can also copy a user’s ID directly from their profile URL on the People page.They show as `FORMER`?
They show as `FORMER`?
They’ve been offboarded and aren’t eligible to own resources. Pick a
CURRENT user instead.Update owner and description in bulk
Your terminal — Expected response (
PATCH /v1/integrations/{integrationId}/resource-kinds/{resourceKind}/resources with an updates array. Each entry is keyed by the resource id and may set ownerId, description, and/or inScope.200) — a per-resource result, so you can tell which updates failed:Got an `ERROR` in `results`?
Got an `ERROR` in `results`?
The
message field tells you which update failed and why — typically because ownerId is FORMER, the id doesn’t belong to that (integrationId, resourceKind), or the resource kind doesn’t support description. Successful entries are still applied; only fix and retry the failures.Got a 404?
Got a 404?
The
integrationId or resourceKind is wrong. They’re case-sensitive — snowflake and SnowflakeDatabase are different fields. Re-run Step 1 to confirm the exact spellings.Got a 403?
Got a 403?
Your token has
vanta-api.all:read but not vanta-api.all:write. Mint a token with both scopes.Single-resource update? Use
PATCH /v1/integrations/{integrationId}/resource-kinds/{resourceKind}/resources/{resourceId} with { "ownerId": "...", "description": "..." } instead. It returns 204 No Content on success.Congratulations
You’ve assigned active owners and descriptions to your inventory resources. Those resources will now pass the Inventory items have active owners and Inventory items have descriptions tests, and the changes are captured in your audit log.Next steps
Scope resources in or out
Mark resources
inScope: false to exclude them from tests entirely.Assign a control owner
Make a specific user accountable for the controls these resources support.
Try it in Postman
Import the collection and run the bulk PATCH against a sandbox in seconds.
Manage Vanta API reference
Browse every Manage Vanta endpoint — controls, tests, documents, people, integrations.