Voyant.io Onboarding Wizard API

AI-assisted onboarding. Generate messaging framework from your website.

Operations 21

POST /api/onboarding/discover Discover Company #
POST /api/onboarding/confirm-discovery Confirm Discovery #
POST /api/onboarding/propose-personas Propose Personas #
POST /api/onboarding/start Start Onboarding #
GET /api/onboarding/session Get Session #
DELETE /api/onboarding/session Reset Session #
PUT /api/onboarding/session/step Update Session Step #
POST /api/onboarding/crawl Start Domain Crawl #
GET /api/onboarding/crawl/status Get Crawl Status #
POST /api/onboarding/documents/upload Upload Document #
GET /api/onboarding/documents List Documents #
DELETE /api/onboarding/documents/{document_id} Delete Document #
POST /api/onboarding/generate/{step} Generate Framework Step #
POST /api/onboarding/generate/{step}/stream Generate Framework Step Stream #
POST /api/onboarding/approve/{step} Approve Framework Step #
GET /api/onboarding/personas Get Personas #
PUT /api/onboarding/personas/{persona_id} Update Persona #
DELETE /api/onboarding/personas/{persona_id} Delete Persona #
GET /api/onboarding/framework Get Framework #
POST /api/onboarding/framework/complete Complete Framework #
GET /api/onboarding/framework/export Export Framework #

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/voyant-onboarding-wizard-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 email required.

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

OpenAPI Specification

voyant-onboarding-wizard-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VoyantIO Onboarding Wizard API
  description: '

    ## Brand Context Intelligence Platform


    VoyantIO provides AI-powered brand context management for GTM teams.


    ### Core Capabilities


    - **Context Streams** - Centralized brand knowledge that any AI tool can use

    - **Telemetry** - Visitor tracking with IP geolocation and company enrichment

    - **Signals** - Social listening across 10+ platforms: GitHub, Reddit, HackerNews, LinkedIn, Twitter/X, Discord, ProductHunt, YouTube, G2, Slack, and government sources

    - **Target Graph** - Account and contact intelligence with engagement tracking

    - **RAG** - Retrieval-augmented content generation with brand awareness


    ### Authentication


    Most endpoints require a Bearer token from Clerk authentication.

    Public endpoints (telemetry ingestion, well-known files) are clearly marked.


    ### Rate Limits


    - Telemetry ingestion: 100 req/min per IP

    - API endpoints: 1000 req/min per org

    '
  version: 1.0.0
servers:
- url: https://voice-forge-production.up.railway.app
  description: Production
tags:
- name: onboarding-wizard
  description: AI-assisted onboarding. Generate messaging framework from your website.
paths:
  /api/onboarding/discover:
    post:
      tags:
      - onboarding-wizard
      summary: Discover Company
      description: 'Quick discovery of company information from their website.

        Fetches homepage and uses AI to extract: company name, tagline, products, what they do.'
      operationId: discover_company_api_onboarding_discover_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverDomainRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscoveryResult'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/onboarding/confirm-discovery:
    post:
      tags:
      - onboarding-wizard
      summary: Confirm Discovery
      description: Save user-confirmed discovery data to the session/framework.
      operationId: confirm_discovery_api_onboarding_confirm_discovery_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmDiscoveryRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/onboarding/propose-personas:
    post:
      tags:
      - onboarding-wizard
      summary: Propose Personas
      description: 'Propose buyer personas based on company and product context.

        Each persona speaks about their pain points and what they''d value.'
      operationId: propose_personas_api_onboarding_propose_personas_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposePersonasRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposePersonasResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/onboarding/start:
    post:
      tags:
      - onboarding-wizard
      summary: Start Onboarding
      description: 'Start a new onboarding session or resume existing one.

        Creates a draft MessagingFramework if none exists.'
      operationId: start_onboarding_api_onboarding_start_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/session:
    get:
      tags:
      - onboarding-wizard
      summary: Get Session
      description: Get current onboarding session state.
      operationId: get_session_api_onboarding_session_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
    delete:
      tags:
      - onboarding-wizard
      summary: Reset Session
      description: Reset onboarding session and start fresh.
      operationId: reset_session_api_onboarding_session_delete
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/session/step:
    put:
      tags:
      - onboarding-wizard
      summary: Update Session Step
      description: Update the current step in the session.
      operationId: update_session_step_api_onboarding_session_step_put
      security:
      - HTTPBearer: []
      parameters:
      - name: step
        in: query
        required: true
        schema:
          type: string
          title: Step
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/crawl:
    post:
      tags:
      - onboarding-wizard
      summary: Start Domain Crawl
      description: 'Start crawling a domain to build context.

        Uses existing Firecrawl infrastructure.'
      operationId: start_domain_crawl_api_onboarding_crawl_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrawlDomainRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/onboarding/crawl/status:
    get:
      tags:
      - onboarding-wizard
      summary: Get Crawl Status
      description: Get status of current crawl operation.
      operationId: get_crawl_status_api_onboarding_crawl_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/documents/upload:
    post:
      tags:
      - onboarding-wizard
      summary: Upload Document
      description: 'Upload a PDF or text file for context.

        Accepts: .pdf, .txt, .md'
      operationId: upload_document_api_onboarding_documents_upload_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_document_api_onboarding_documents_upload_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/onboarding/documents:
    get:
      tags:
      - onboarding-wizard
      summary: List Documents
      description: List uploaded documents for this session.
      operationId: list_documents_api_onboarding_documents_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/documents/{document_id}:
    delete:
      tags:
      - onboarding-wizard
      summary: Delete Document
      description: Remove an uploaded document.
      operationId: delete_document_api_onboarding_documents__document_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: string
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/generate/{step}:
    post:
      tags:
      - onboarding-wizard
      summary: Generate Framework Step
      description: 'Generate content for a specific framework step using AI.


        Steps: core_messaging, positioning, personas, products, use_cases, competitive, brand_voice'
      operationId: generate_framework_step_api_onboarding_generate__step__post
      security:
      - HTTPBearer: []
      parameters:
      - name: step
        in: path
        required: true
        schema:
          type: string
          title: Step
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateStepRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/generate/{step}/stream:
    post:
      tags:
      - onboarding-wizard
      summary: Generate Framework Step Stream
      description: 'Stream AI generation for framework step.

        Returns Server-Sent Events for real-time display.'
      operationId: generate_framework_step_stream_api_onboarding_generate__step__stream_post
      security:
      - HTTPBearer: []
      parameters:
      - name: step
        in: path
        required: true
        schema:
          type: string
          title: Step
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/approve/{step}:
    post:
      tags:
      - onboarding-wizard
      summary: Approve Framework Step
      description: 'Approve and save generated content for a step.

        Marks step as completed and advances wizard.'
      operationId: approve_framework_step_api_onboarding_approve__step__post
      security:
      - HTTPBearer: []
      parameters:
      - name: step
        in: path
        required: true
        schema:
          type: string
          title: Step
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApproveStepRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/personas:
    get:
      tags:
      - onboarding-wizard
      summary: Get Personas
      description: Get all personas for current framework.
      operationId: get_personas_api_onboarding_personas_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/personas/{persona_id}:
    put:
      tags:
      - onboarding-wizard
      summary: Update Persona
      description: Update a specific persona.
      operationId: update_persona_api_onboarding_personas__persona_id__put
      security:
      - HTTPBearer: []
      parameters:
      - name: persona_id
        in: path
        required: true
        schema:
          type: string
          title: Persona Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePersonaRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - onboarding-wizard
      summary: Delete Persona
      description: Delete a persona.
      operationId: delete_persona_api_onboarding_personas__persona_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: persona_id
        in: path
        required: true
        schema:
          type: string
          title: Persona Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/onboarding/framework:
    get:
      tags:
      - onboarding-wizard
      summary: Get Framework
      description: Get complete framework with all components.
      operationId: get_framework_api_onboarding_framework_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/framework/complete:
    post:
      tags:
      - onboarding-wizard
      summary: Complete Framework
      description: 'Mark framework as complete.

        Creates Context Stream from framework for use in content generation.'
      operationId: complete_framework_api_onboarding_framework_complete_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
  /api/onboarding/framework/export:
    get:
      tags:
      - onboarding-wizard
      summary: Export Framework
      description: Export framework in specified format (json or markdown).
      operationId: export_framework_api_onboarding_framework_export_get
      security:
      - HTTPBearer: []
      parameters:
      - name: format
        in: query
        required: false
        schema:
          type: string
          default: json
          title: Format
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ConfirmDiscoveryRequest:
      properties:
        company_name:
          type: string
          title: Company Name
        domain:
          type: string
          title: Domain
        tagline:
          anyOf:
          - type: string
          - type: 'null'
          title: Tagline
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        what_you_do:
          items:
            type: string
          type: array
          title: What You Do
          default: []
        products:
          items:
            type: string
          type: array
          title: Products
          default: []
        competitors:
          items:
            type: string
          type: array
          title: Competitors
          default: []
        social_links:
          additionalProperties:
            type: string
          type: object
          title: Social Links
          default: {}
      type: object
      required:
      - company_name
      - domain
      title: ConfirmDiscoveryRequest
      description: User-confirmed/edited discovery data
    UpdatePersonaRequest:
      properties:
        content:
          additionalProperties: true
          type: object
          title: Content
        status:
          type: string
          title: Status
          default: edited
      type: object
      required:
      - content
      title: UpdatePersonaRequest
      description: Update a specific persona
    ProposePersonasResponse:
      properties:
        personas:
          items:
            $ref: '#/components/schemas/ProposedPersona'
          type: array
          title: Personas
        reasoning:
          anyOf:
          - type: string
          - type: 'null'
          title: Reasoning
      type: object
      required:
      - personas
      title: ProposePersonasResponse
      description: Response with proposed personas
    Body_upload_document_api_onboarding_documents_upload_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
      type: object
      required:
      - file
      title: Body_upload_document_api_onboarding_documents_upload_post
    CrawlDomainRequest:
      properties:
        domain:
          type: string
          title: Domain
        max_pages:
          type: integer
          maximum: 5000.0
          minimum: 1.0
          title: Max Pages
          default: 500
        max_depth:
          type: integer
          maximum: 10.0
          minimum: 1.0
          title: Max Depth
          default: 3
      type: object
      required:
      - domain
      title: CrawlDomainRequest
      description: Request to crawl a domain
    ProposedPersona:
      properties:
        name:
          type: string
          title: Name
        role:
          type: string
          title: Role
        company_context:
          type: string
          title: Company Context
        pain_points:
          items:
            type: string
          type: array
          title: Pain Points
        product_benefits:
          items:
            type: string
          type: array
          title: Product Benefits
        quote:
          anyOf:
          - type: string
          - type: 'null'
          title: Quote
      type: object
      required:
      - name
      - role
      - company_context
      - pain_points
      - product_benefits
      title: ProposedPersona
      description: A proposed persona with their perspective
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DiscoveryResult:
      properties:
        company_name:
          type: string
          title: Company Name
        domain:
          type: string
          title: Domain
        tagline:
          anyOf:
          - type: string
          - type: 'null'
          title: Tagline
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        what_you_do:
          items:
            type: string
          type: array
          title: What You Do
          default: []
        products:
          items:
            type: string
          type: array
          title: Products
          default: []
        competitors:
          items:
            type: string
          type: array
          title: Competitors
          default: []
        social_links:
          additionalProperties:
            type: string
          type: object
          title: Social Links
          default: {}
      type: object
      required:
      - company_name
      - domain
      title: DiscoveryResult
      description: Quick discovery results from a domain
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProposePersonasRequest:
      properties:
        company_name:
          type: string
          title: Company Name
        products:
          items:
            type: string
          type: array
          title: Products
        what_you_do:
          items:
            type: string
          type: array
          title: What You Do
          default: []
        tagline:
          anyOf:
          - type: string
          - type: 'null'
          title: Tagline
      type: object
      required:
      - company_name
      - products
      title: ProposePersonasRequest
      description: Request to propose personas based on company/product context
    GenerateStepRequest:
      properties:
        regenerate:
          type: boolean
          title: Regenerate
          default: false
      type: object
      title: GenerateStepRequest
      description: Request to generate content for a framework step
    ApproveStepRequest:
      properties:
        content:
          additionalProperties: true
          type: object
          title: Content
      type: object
      required:
      - content
      title: ApproveStepRequest
      description: Approve generated content for a step
    DiscoverDomainRequest:
      properties:
        domain:
          type: string
          title: Domain
      type: object
      required:
      - domain
      title: DiscoverDomainRequest
      description: Request to discover company info from domain
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer