Vital · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Junction Link API

14 actions 14 updates phrasing extends openapi/vital-io-link-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Vital's API. It is a proposal applied on top of the contract, not a document Vital publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 14

$.info
$.paths['/v2/link/bulk_op'].get
$.paths['/v2/link/bulk_import'].post
$.paths['/v2/link/bulk_trigger_historical_pull'].post
$.paths['/v2/link/bulk_export'].post
$.paths['/v2/link/bulk_pause'].post
$.paths['/v2/link/token'].post
$.paths['/v2/link/code/create'].post
$.paths['/v2/link/provider/oauth/{oauth_provider}'].get
$.paths['/v2/link/provider/password/{provider}'].post
$.paths['/v2/link/provider/password/{provider}/complete_mfa'].post
$.paths['/v2/link/provider/email/{provider}'].post
$.paths['/v2/link/providers'].get
$.paths['/v2/link/connect/demo'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Junction Link API
  version: 1.0.0
extends: openapi/vital-io-link-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 13
- target: $.paths['/v2/link/bulk_op'].get
  update:
    x-apievangelist-phrasing:
      intent: List bulk connection operations
      effect: read
      questions:
      - Can I see the status of my bulk import, export and pause jobs?
      - Which bulk link operations has my team run?
      instructions:
      - text: List my bulk link operations.
      - text: Show the next {page_size} bulk operations after cursor {next_cursor}.
        slots:
          page_size: query.page_size
          next_cursor: query.next_cursor
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/bulk_import'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk import existing provider connections
      effect: write
      questions:
      - Can I import existing device connections for many users at once?
      - Is there a way to migrate already-authorized provider connections in bulk?
      instructions:
      - text: Bulk import connections {connections} for provider {provider}.
        slots:
          connections: requestBody.connections
          provider: requestBody.provider
      - text: 'Import these {provider} connections and wait for completion: {connections}.'
        slots:
          provider: requestBody.provider
          connections: requestBody.connections
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/bulk_trigger_historical_pull'].post
  update:
    x-apievangelist-phrasing:
      intent: Trigger historical pulls for many users
      effect: write
      questions:
      - Can I trigger a historical backfill for a batch of users at once?
      - How do I re-pull past data from a provider for a list of users?
      instructions:
      - text: Trigger historical pulls from {provider} for users {user_ids}.
        slots:
          provider: requestBody.provider
          user_ids: requestBody.user_ids
      - text: Backfill {provider} history for {user_ids} and wait until it finishes.
        slots:
          provider: requestBody.provider
          user_ids: requestBody.user_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/bulk_export'].post
  update:
    x-apievangelist-phrasing:
      intent: Export users' provider connections
      effect: read
      questions:
      - Can I export my users' connections for a provider?
      - Is there a paginated export of provider connections?
      instructions:
      - text: Export {provider} connections for users {user_ids}.
        slots:
          provider: requestBody.provider
          user_ids: requestBody.user_ids
      - text: Continue exporting {provider} connections from token {next_token}.
        slots:
          provider: requestBody.provider
          next_token: requestBody.next_token
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/bulk_pause'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause provider connections in bulk
      effect: write
      questions:
      - Can I pause data syncing for many users' connections at once?
      - Which call pauses a provider connection for a batch of users?
      instructions:
      - text: Pause {provider} connections for users {user_ids}.
        slots:
          provider: requestBody.provider
          user_ids: requestBody.user_ids
      - text: Stop syncing {provider} for {user_ids} for now.
        slots:
          provider: requestBody.provider
          user_ids: requestBody.user_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/token'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate a Link token to connect a user
      effect: write
      questions:
      - How do I start the Vital Link connection flow for one of my users?
      - How long is a link token valid, and can it be reused?
      instructions:
      - text: Generate a link token for user {user}.
        slots:
          user: requestBody.user_id
      - text: Create a link token for {user} that redirects to {redirect_url} when done.
        slots:
          user: requestBody.user_id
          redirect_url: requestBody.redirect_url
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/code/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Invite a mobile app user to my team
      effect: write
      questions:
      - Can I invite someone using the Vital mobile app to join my team?
      - Can a mobile app invite code be set to expire at a specific time?
      instructions:
      - text: Create a mobile app invite code for user {q_user}.
        slots:
          q_user: query.user_id
      - text: Generate a team invite code for {q_user} expiring at {expires_at}.
        slots:
          q_user: query.user_id
          expires_at: query.expires_at
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/provider/oauth/{oauth_provider}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an OAuth authorization link for a provider
      effect: read
      questions:
      - How do I get the OAuth URL a user visits to authorize a provider?
      - Which link do I send a user to connect an OAuth-based provider?
      instructions:
      - text: Generate an OAuth link for {oauth_provider}.
        slots:
          oauth_provider: path.oauth_provider
      - text: Get the {oauth_provider} authorization URL using link token {token}.
        slots:
          oauth_provider: path.oauth_provider
          token: header.x-vital-link-token
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/provider/password/{provider}'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect a password-based provider
      effect: write
      questions:
      - Can I connect a provider that signs in with a username and password?
      - Is a region needed when connecting a password-based provider?
      instructions:
      - text: Connect password provider {path_provider} with username {username} and password {password}.
        slots:
          path_provider: path.provider
          username: requestBody.username
          password: requestBody.password
      - text: Link {path_provider} using credentials {username} / {password} in region {region}.
        slots:
          path_provider: path.provider
          username: requestBody.username
          password: requestBody.password
          region: requestBody.region
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/provider/password/{provider}/complete_mfa'].post
  update:
    x-apievangelist-phrasing:
      intent: Finish a password provider login with MFA
      effect: write
      questions:
      - What do I do when a password-based provider asks for an MFA code?
      - Can I finish connecting a provider that sent a two-factor code?
      instructions:
      - text: Complete MFA for {path_provider} with code {mfa_code}.
        slots:
          path_provider: path.provider
          mfa_code: requestBody.mfa_code
      - text: Submit verification code {mfa_code} to finish connecting {path_provider}.
        slots:
          mfa_code: requestBody.mfa_code
          path_provider: path.provider
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/provider/email/{provider}'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect an email-based provider
      effect: write
      questions:
      - Can I connect a provider that only needs the user's email address?
      - Can I set a region when connecting an email-based provider?
      instructions:
      - text: Connect email provider {path_provider} for {email}.
        slots:
          path_provider: path.provider
          email: requestBody.email
      - text: Link {path_provider} by email {email} in region {region}.
        slots:
          path_provider: path.provider
          email: requestBody.email
          region: requestBody.region
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/providers'].get
  update:
    x-apievangelist-phrasing:
      intent: List providers available to a link token
      effect: read
      questions:
      - Which providers can a user connect with their link token?
      - What integrations show up in the link widget for a given token?
      instructions:
      - text: List providers available to link token {token}.
        slots:
          token: header.x-vital-link-token
      - text: Show the providers a user can connect right now.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/link/connect/demo'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect a user to a demo provider
      effect: write
      questions:
      - Can I connect a test user to a demo provider to get sample data?
      - Is there a way to simulate a wearable connection without a real device?
      instructions:
      - text: Connect user {user} to demo provider {provider}.
        slots:
          user: requestBody.user_id
          provider: requestBody.provider
      - text: Create a demo {provider} connection for {user}.
        slots:
          provider: requestBody.provider
          user: requestBody.user_id
      method: generated
      generated: '2026-10-01'