The Manage Vanta API is the operational surface for your own Vanta tenant. Use it to automate the work your team would otherwise click through in the Vanta dashboard — assigning control owners, uploading evidence, syncing personnel, querying test results, and managing vendors.Documentation Index
Fetch the complete documentation index at: https://developer.vanta.com/llms.txt
Use this file to discover all available pages before exploring further.
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.| You are… | Use this API to… |
|---|---|
| A Vanta customer’s security or GRC team | Automate compliance workflows in your own tenant: assign control owners, surface overdue tasks, manage vendors. |
| A Vanta customer’s engineering team | Pull tests, manage frameworks and automate your compliance program. |
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.
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.
| Endpoint | POST /oauth/token |
| Base URL | https://api.vanta.com · https://api.vanta-gov.com |
| Content-Type | application/json |
| Grant type | client_credentials |
| Field | Type | Required | Description |
|---|---|---|---|
client_id | string | yes | OAuth client ID from your Manage Vanta application. |
client_secret | string | yes | OAuth client secret from your application. |
scope | string | yes | Space-separated list of Manage Vanta scopes, e.g. vanta-api.all:read. |
grant_type | string | yes | Must be client_credentials. |
| Field | Type | Description |
|---|---|---|
access_token | string | Bearer token. Send as Authorization: Bearer <access_token> on every API request. |
expires_in | integer | Lifetime in seconds. Always 3600 (1 hour). |
token_type | string | Always Bearer. |
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
| Scope | Grants |
|---|---|
vanta-api.all:read | GET access to all Manage Vanta endpoints. |
vanta-api.all:write | PUT, PATCH, POST, DELETE access to all Manage Vanta endpoints. |
vanta-api.documents:upload | Upload files via the document upload endpoint. |
vanta-api.vendors:read | GET access to vendor endpoints. |
vanta-api.vendors:write | Write access to vendor endpoints. |
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
| Endpoint group | Limit |
|---|---|
| Manage Vanta endpoints | 50 / minute |
OAuth (/oauth/token) | 5 / minute |
429 Too Many Requests. Back off and retry after a short delay.
Common workflows
Add an owner to a control
Programmatically assign control ownership across your framework.
Upload a document
Attach evidence to controls, vendors, or tests.
Manage personnel
Surface overdue tasks, offboard people, and mark non-personnel.
Query test results
Build dashboards from failing tests and resources.
OpenAPI specification
Download the Manage Vanta OpenAPI spec
Generate clients, import into your favorite tool, or browse the schema offline.
Tools
Postman Collection
Import the collection to explore endpoints quickly.
MCP Server
Connect AI assistants to the Vanta API.
Webhooks
Subscribe to events and receive real-time updates.