Vistra Incorporations API

Company incorporation request submission and management

Operations 3

POST /v1/external/incorporations Create Incorporation #
GET /v1/external/incorporations List Incorporations #
GET /v1/external/incorporations/{id} Get Incorporation #

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/vistra-incorporations-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

vistra-incorporations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vistra Documents Incorporations API
  description: 'The Vistra Incorporations API enables programmatic submission of company incorporation requests in supported jurisdictions. Currently available for the British Virgin Islands (BVI) on an invite-only basis. The API supports a three-step workflow: (1) generate a pre-signed S3 document upload URL, (2) confirm document upload completion, and (3) submit the full incorporation request with entity details, stakeholders, shareholding structure, and compliance data. Authentication uses OAuth2 bearer tokens obtained from the Vistra Developer Portal.'
  version: '1.0'
  contact:
    name: Vistra Developer Support
    url: https://devportal.vistra.com/
  license:
    name: Vistra Terms of Use
    url: https://www.vistra.com/terms-of-use
  termsOfService: https://www.vistra.com/terms-of-use
servers:
- url: https://api.vistra.com
  description: Vistra Production API
security:
- OAuth2Bearer: []
tags:
- name: Incorporations
  description: Company incorporation request submission and management
paths:
  /v1/external/incorporations:
    post:
      operationId: createIncorporation
      summary: Create Incorporation
      description: Submits a company incorporation request to Vistra after all supporting documents have been uploaded and their IDs recorded. The request body includes comprehensive entity information, individual and corporate stakeholders, shareholding structure, and compliance data. This endpoint is currently available for British Virgin Islands (BVI) incorporations on an invite-only basis.
      tags:
      - Incorporations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncorporationRequest'
      responses:
        '201':
          description: Incorporation request submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncorporationResponse'
        '400':
          description: Invalid incorporation request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - Invalid or missing bearer token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - API access is invite-only
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable entity - validation errors in request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    get:
      operationId: listIncorporations
      summary: List Incorporations
      description: Returns a list of incorporation requests submitted through the API, including their current status and reference identifiers.
      tags:
      - Incorporations
      parameters:
      - name: status
        in: query
        required: false
        description: Filter by incorporation status
        schema:
          type: string
          enum:
          - pending
          - processing
          - completed
          - rejected
      - name: offset
        in: query
        required: false
        description: Pagination offset
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        required: false
        description: Number of records per page
        schema:
          type: integer
          default: 20
          maximum: 100
      responses:
        '200':
          description: List of incorporation requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncorporationList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/external/incorporations/{id}:
    get:
      operationId: getIncorporation
      summary: Get Incorporation
      description: Returns the current status and details of a specific incorporation request.
      tags:
      - Incorporations
      parameters:
      - name: id
        in: path
        required: true
        description: Incorporation request identifier
        schema:
          type: string
      responses:
        '200':
          description: Incorporation request details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncorporationResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Incorporation not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    IncorporationRequest:
      type: object
      description: Full incorporation request including entity details, stakeholders, shareholding structure, and compliance information.
      required:
      - jurisdiction
      - companyName
      - entityType
      properties:
        jurisdiction:
          type: string
          description: Jurisdiction for incorporation (e.g. BVI)
          example: BVI
        companyName:
          type: string
          description: Proposed company name
        entityType:
          type: string
          description: Type of entity to incorporate
          enum:
          - business_company
          - llc
          - limited_partnership
        shareStructure:
          $ref: '#/components/schemas/ShareStructure'
        registeredAgent:
          $ref: '#/components/schemas/RegisteredAgent'
        individuals:
          type: array
          description: Individual stakeholders (directors, shareholders, beneficial owners)
          items:
            $ref: '#/components/schemas/IndividualStakeholder'
        corporates:
          type: array
          description: Corporate stakeholders
          items:
            $ref: '#/components/schemas/CorporateStakeholder'
        documentIds:
          type: array
          description: IDs of previously uploaded supporting documents
          items:
            type: string
        notes:
          type: string
          description: Additional notes or special instructions
    Error:
      type: object
      description: API error response
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: string
          description: Additional error details
    IncorporationList:
      type: object
      properties:
        total:
          type: integer
        offset:
          type: integer
        limit:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/IncorporationResponse'
    CorporateStakeholder:
      type: object
      description: A corporate entity as a stakeholder
      properties:
        companyName:
          type: string
        jurisdiction:
          type: string
        registrationNumber:
          type: string
        role:
          type: string
          enum:
          - shareholder
          - director
        shares:
          type: integer
        documentIds:
          type: array
          items:
            type: string
    RegisteredAgent:
      type: object
      description: Registered agent details
      properties:
        name:
          type: string
        address:
          type: string
        jurisdiction:
          type: string
    IndividualStakeholder:
      type: object
      description: An individual stakeholder in the incorporated entity
      required:
      - firstName
      - lastName
      - role
      properties:
        firstName:
          type: string
        lastName:
          type: string
        dateOfBirth:
          type: string
          format: date
        nationality:
          type: string
        role:
          type: string
          enum:
          - director
          - shareholder
          - beneficial_owner
          - secretary
        shares:
          type: integer
          description: Number of shares held (for shareholders)
        documentIds:
          type: array
          items:
            type: string
          description: IDs of identity documents for this stakeholder
    ValidationError:
      type: object
      description: Validation error with field-level details
      properties:
        code:
          type: string
        message:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    ShareStructure:
      type: object
      description: Shareholding structure for the company
      properties:
        authorizedShares:
          type: integer
          description: Total number of authorized shares
        parValue:
          type: number
          description: Par value per share
        currency:
          type: string
          description: Currency for par value (e.g. USD)
    IncorporationResponse:
      type: object
      description: Response after submitting an incorporation request
      properties:
        id:
          type: string
          description: Unique incorporation request identifier
        status:
          type: string
          description: Current status of the incorporation request
          enum:
          - pending
          - processing
          - completed
          - rejected
        companyName:
          type: string
        jurisdiction:
          type: string
        submittedAt:
          type: string
          format: date-time
        estimatedCompletionDate:
          type: string
          format: date
        referenceNumber:
          type: string
          description: Vistra's internal reference number
  securitySchemes:
    OAuth2Bearer:
      type: http
      scheme: bearer
      description: OAuth2 bearer token obtained from the Vistra Developer Portal. Include in the Authorization header as "Bearer {token}".
externalDocs:
  description: Vistra Incorporations API Documentation
  url: https://help.vistra.com/en/articles/10351085-vistra-incorporations-api-british-virgin-islands