Skip to main content
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.

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 /issues and GET /issues/{issueId} are the only endpoints. Creating, editing, or linking issues to external tickets must be handled in your downstream system.
If you’re new to the API, start with the Manage Vanta quickstart to authenticate and make your first call.

Authentication

Manage Vanta apps use the client_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
Response
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.
For grant-type tradeoffs, secret rotation, and other common pitfalls, see Authentication concepts.

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

Use https://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 the pageSize and pageCursor query parameters. To page through results:
  1. Make the initial request, optionally setting pageSize (defaults vary by endpoint).
  2. Check results.pageInfo.hasNextPage in the response.
  3. If true, pass results.pageInfo.endCursor as the pageCursor in your next request.
  4. Repeat until hasNextPage is false.
Responses are wrapped as:
Many list endpoints also support filters — see the per-endpoint reference for available options.

Trust Center

Trust Center endpoints (/trust-centers/{slugId}/...) require your Trust Center’s slugId as a path parameter. To find it:
  1. In Vanta, navigate to Trust Center > Overview.
  2. In the top right, copy the unique URL for your Trust Center — it looks like https://app.vanta.com/your-domain.com/trust/tz7gh0fvb2ymzbl34hca2w. The slugId is the final segment (in this example, tz7gh0fvb2ymzbl34hca2w).
  3. If you’ve configured a custom domain, visit your public Trust Center, view source, and look for the data-slug attribute on the <head> element.
Trust Center slugId location

Rate limits

Exceeding a limit returns 429 Too Many Requests. How to retry:
  • Vanta doesn’t send a Retry-After header on 429, 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/token cap of 25/minute first.

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.