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. - The user you’re assigning must already exist in Vanta.
Reassigning many controls at once (e.g. onboarding a new compliance lead)? Skip ahead to Bulk-assign owners.
Find the control
Your terminal — call ResponseCopy the
GET /v1/controls and pick the control you want to assign.Terminal
id field — not externalId.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.Can't find your control?
Can't find your control?
Filter the response client-side by
name or externalId, paginate with pageCursor if hasNextPage is true, or copy the ID directly from the Controls page URL.Get a user
Your terminal — call ResponseCopy the
GET /v1/people to find the user you want to assign as owner. Filter to CURRENT employees so you don’t pick someone who’s offboarded.Terminal
id. You’ll send it as userId in the next step. Confirm employment.status is CURRENT — FORMER users will be rejected by set-owner.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. If they’re missing entirely, they may not be provisioned in Vanta yet — check the People page.They show as `FORMER`?
They show as `FORMER`?
They’ve been offboarded and aren’t eligible to own controls. Pick a
CURRENT user instead.Assign the owner
Your terminal — Expected response (
POST /v1/controls/{controlId}/set-owner with the user ID in the body.200) — the full control object with the new owner:Got a 404?
Got a 404?
The control ID is wrong. Most often this is because you copied
externalId (e.g. BCD-4) instead of id (e.g. database-replication-utilized). Re-run Step 1 and copy id.Got a 4xx on the userId?
Got a 4xx on the userId?
The
userId is invalid or the user is ineligible — typically because their employment.status is FORMER. Re-fetch with employmentStatusMatchesAny=CURRENT and pick a different user.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.Unassign with
null. Pass { "userId": null } to remove the owner without replacing them.Congratulations
You’ve assigned a Vanta user as the accountable owner of a framework control. That user will now receive notifications and reminders for the control, and the change is captured in your audit log.Next steps
Offboard people
Reassign every control owned by a departing teammate before you remove them.
Subscribe to webhooks
React in real time when ownership or control status changes.
Try it in Postman
Import the collection and run
set-owner against a sandbox in seconds.Manage Vanta API reference
Browse every Manage Vanta endpoint — controls, tests, documents, people.