Who is this API for?
This API is for Vanta customers automating their own tenant. It is not available to partners building marketplace integrations — partners must use the Build Integrations API.Building an integration that syncs data into Vanta from an external tool? Use the Build Integrations API instead.
When to use this API
Reach for Manage Vanta endpoints when you want to:- Automate compliance workflows — assign control owners, mark people as not-a-person, surface overdue tasks.
- Report on your security posture — query controls, tests, vulnerabilities, and resources to feed dashboards or downstream systems.
- Manage your vendor inventory — create vendors, attach documentation, and apply custom fields.
- Track and triage issues — list and retrieve issues to sync them into your ticketing system or dashboards. The Issues API is read-only:
GET /issuesandGET /issues/{issueId}are the only endpoints. Creating, editing, or linking issues to external tickets must be handled in your downstream system.
Authentication
Manage Vanta apps use theclient_credentials OAuth flow. Create a Manage Vanta application in the Developer Console, then exchange your client_id / client_secret at the token endpoint for an access token scoped to your own Vanta tenant.
Request body
No
refresh_token is issued. When the token expires after one hour, re-exchange your client_id / client_secret for a fresh one. Most integrations request a new token at the start of each scheduled run.
One active token per Application. Requesting a new token with the same
client_id / client_secret immediately revokes the previous one — any in-flight requests using the old token will fail with 401. Centralize token issuance and don’t run two processes that both mint tokens for the same application.Scopes
Granular scopes exist only for documents, vendors, and issues. For every other endpoint group — including Customer Trust, risk scenarios, integrations, policies, and people — use
vanta-api.all:read for GET requests and vanta-api.all:write for POST, PUT, PATCH, and DELETE requests.
Request only the scopes your application needs. Requesting a scope that doesn’t match your application type returns invalid_scope.
Base URL
Usehttps://api.vanta.com, or https://api.vanta-gov.com if you’re on Vanta Gov. See Base URLs for details.
Pagination
List endpoints use cursor-based pagination via thepageSize and pageCursor query parameters.
To page through results:
- Make the initial request, optionally setting
pageSize(defaults vary by endpoint). - Check
results.pageInfo.hasNextPagein the response. - If
true, passresults.pageInfo.endCursoras thepageCursorin your next request. - Repeat until
hasNextPageisfalse.
Trust Center
Trust Center endpoints (/trust-centers/{slugId}/...) require your Trust Center’s slugId as a path parameter. To find it:
- In Vanta, navigate to Trust Center > Overview.
- In the top right, copy the unique URL for your Trust Center — it looks like
https://app.vanta.com/your-domain.com/trust/tz7gh0fvb2ymzbl34hca2w. TheslugIdis the final segment (in this example,tz7gh0fvb2ymzbl34hca2w). - If you’ve configured a custom domain, visit your public Trust Center, view source, and look for the
data-slugattribute on the<head>element.

Rate limits
Exceeding a limit returns
429 Too Many Requests.
How to retry:
- Vanta doesn’t send a
Retry-Afterheader on429, so pace your own retries rather than waiting for the response to tell you when. - As an example you can sleep 5 seconds on the first
429, then double the delay on each subsequent one (exponential backoff) up to 3 attempts. - Mint your OAuth token once per run and reuse it for the hour it’s valid — minting per request will hit the
/oauth/tokencap of 25/minute first.