Vanta Controls API

Compliance controls and framework management

Operations 2

GET /v1/controls List Controls #
GET /v1/frameworks List Frameworks #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vanta-controls-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vanta-controls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vanta Controls API
  description: The Vanta REST API enables organizations to programmatically manage their security compliance posture. The API supports personnel management, vulnerability monitoring, resource scoping, document and test management, control oversight, vendor management, and custom integrations. Vanta helps automate compliance for SOC 2, ISO 27001, HIPAA, PCI DSS, and GDPR frameworks.
  version: v1
  contact:
    name: Vanta Developer Hub
    url: https://developer.vanta.com
  termsOfService: https://www.vanta.com/terms
  license:
    name: Proprietary
    url: https://www.vanta.com/terms
servers:
- url: https://api.vanta.com
  description: Vanta API
security:
- OAuth2: []
tags:
- name: Controls
  description: Compliance controls and framework management
paths:
  /v1/controls:
    get:
      operationId: listControls
      summary: List Controls
      description: Query information about compliance controls including control language and statuses.
      tags:
      - Controls
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageCursor'
      - name: frameworkId
        in: query
        schema:
          type: string
        description: Filter controls by framework identifier
      - name: status
        in: query
        schema:
          type: string
          enum:
          - PASSING
          - FAILING
          - NEEDS_ATTENTION
          - NOT_APPLICABLE
        description: Filter by control status
      responses:
        '200':
          description: Paginated list of controls
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /v1/frameworks:
    get:
      operationId: listFrameworks
      summary: List Frameworks
      description: Query all compliance frameworks configured in the organization.
      tags:
      - Controls
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageCursor'
      responses:
        '200':
          description: Paginated list of frameworks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FrameworkListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    pageSize:
      name: pageSize
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      description: Number of items to return per page (1-100)
    pageCursor:
      name: pageCursor
      in: query
      schema:
        type: string
      description: Cursor for pagination — start from the item following this cursor
  responses:
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized — missing or invalid access token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    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
    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
    Framework:
      type: object
      properties:
        id:
          type: string
          description: Unique framework identifier
        name:
          type: string
          description: Framework name (e.g., SOC 2, ISO 27001, HIPAA)
        description:
          type: string
          description: Framework description
        status:
          type: string
          enum:
          - IN_PROGRESS
          - READY_FOR_AUDIT
          - CERTIFIED
          description: Overall framework readiness status
        controlCount:
          type: integer
          description: Total number of controls in this framework
        passingControlCount:
          type: integer
          description: Number of passing controls
    Control:
      type: object
      properties:
        id:
          type: string
          description: Unique control identifier
        name:
          type: string
          description: Control name
        description:
          type: string
          description: Control description and requirements
        status:
          type: string
          enum:
          - PASSING
          - FAILING
          - NEEDS_ATTENTION
          - NOT_APPLICABLE
          description: Current control status
        frameworkId:
          type: string
          description: Framework this control belongs to
        ownerId:
          type: string
          nullable: true
          description: User ID of the control owner
        testCount:
          type: integer
          description: Number of tests associated with this control
        passingTestCount:
          type: integer
          description: Number of passing tests
    FrameworkListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Framework'
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
    ControlListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Control'
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.vanta.com/oauth/token
          scopes:
            vanta.read: Read access to Vanta data
            vanta.write: Write access to Vanta data
            connectors.self:read-resource: Read connector resources
            connectors.self:write-resource: Write connector resources
            auditor-api.audit:read: Read audit data
            auditor-api.auditor:read: Read auditor data