Documentation
Documentation
https://developer.vanta.com/docs/vanta-api-overview
Authentication
https://developer.vanta.com/docs/api-access-setup
openapi: 3.0.0
info:
title: Conduct an audit Auditors Vendors API
version: 1.0.0
description: The Auditor API lets audit firms conduct audits from a tool outside of Vanta. Unlock data syncing with Vanta through this API.
termsOfService: https://www.vanta.com/terms
license:
name: UNLICENSED
contact:
name: API Support
url: https://help.vanta.com/
email: support@vanta.com
servers:
- url: https://api.vanta.com/v1
tags:
- name: Vendors
description: Third-party vendor security review management
paths:
/v1/vendors:
get:
operationId: listVendors
summary: List Vendors
description: Query and manage vendors and their security review information.
tags:
- Vendors
parameters:
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageCursor'
- name: riskLevel
in: query
schema:
type: string
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
description: Filter vendors by risk level
responses:
'200':
description: Paginated list of vendors
content:
application/json:
schema:
$ref: '#/components/schemas/VendorListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
post:
operationId: createVendor
summary: Create Vendor
description: Create a new vendor in Vanta for security review tracking.
tags:
- Vendors
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVendorRequest'
responses:
'201':
description: Vendor created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Vendor'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/v1/vendors/{vendorId}:
get:
operationId: getVendor
summary: Get Vendor
description: Retrieve a specific vendor and its security review details.
tags:
- Vendors
parameters:
- name: vendorId
in: path
required: true
schema:
type: string
description: Unique identifier for the vendor
responses:
'200':
description: Vendor details
content:
application/json:
schema:
$ref: '#/components/schemas/Vendor'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
patch:
operationId: updateVendor
summary: Update Vendor
description: Update vendor information and security review details.
tags:
- Vendors
parameters:
- name: vendorId
in: path
required: true
schema:
type: string
description: Unique identifier for the vendor
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateVendorRequest'
responses:
'200':
description: Vendor updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Vendor'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
components:
parameters:
pageCursor:
name: pageCursor
in: query
schema:
type: string
description: Cursor for pagination — start from the item following this cursor
pageSize:
name: pageSize
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 10
description: Number of items to return per page (1-100)
schemas:
Vendor:
type: object
properties:
id:
type: string
description: Unique vendor identifier
name:
type: string
description: Vendor company name
url:
type: string
format: uri
nullable: true
description: Vendor website URL
riskLevel:
type: string
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
description: Inherent risk level
residualRiskLevel:
type: string
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
nullable: true
description: Residual risk level after controls
reviewStatus:
type: string
enum:
- NOT_STARTED
- IN_PROGRESS
- APPROVED
- REJECTED
description: Security review status
hasContract:
type: boolean
description: Whether a contract exists with the vendor
hasDpa:
type: boolean
description: Whether a Data Processing Agreement exists
createdAt:
type: string
format: date-time
description: When this vendor was added
nextReviewDate:
type: string
format: date
nullable: true
description: Date of next scheduled security review
VendorListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Vendor'
pageInfo:
$ref: '#/components/schemas/PageInfo'
Error:
type: object
properties:
error:
type: string
description: Error code
message:
type: string
description: Human-readable error description
details:
type: array
items:
type: string
description: Additional error details
PageInfo:
type: object
properties:
pageSize:
type: integer
description: Number of items returned
nextPageCursor:
type: string
nullable: true
description: Cursor for the next page of results
hasNextPage:
type: boolean
description: Whether there are more items after this page
UpdateVendorRequest:
type: object
properties:
name:
type: string
description: Vendor company name
url:
type: string
format: uri
description: Vendor website URL
riskLevel:
type: string
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
description: Inherent risk level
reviewStatus:
type: string
enum:
- NOT_STARTED
- IN_PROGRESS
- APPROVED
- REJECTED
description: Security review status
CreateVendorRequest:
type: object
required:
- name
- riskLevel
properties:
name:
type: string
description: Vendor company name
url:
type: string
format: uri
description: Vendor website URL
riskLevel:
type: string
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
description: Inherent risk level
description:
type: string
description: Vendor description and use case
responses:
Unauthorized:
description: Unauthorized — missing or invalid access token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request — invalid parameters or request body
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
oauth:
type: oauth2
description: Get an oauth token from the token url and use it as a bearer token to access the Vanta API.
flows:
clientCredentials:
scopes:
auditor-api.audit:read: Grant read-only access to your audits
auditor-api.audit:write: Grant read-write access to your audits
auditor-api.auditor:read: Grant read-only access to your auditors
auditor-api.auditor:write: Grant read-write access to your auditors
tokenUrl: https://api.vanta.com/oauth/token
bearerAuth:
type: http
scheme: bearer