Vital link API

The link API from Vital — 13 operation(s) for link.

Operations 13

POST /v2/link/bulk_import Bulk Import Connections #
POST /v2/link/bulk_trigger_historical_pull Bulk Trigger Historical Pull #
POST /v2/link/bulk_export Bulk Export Connections #
POST /v2/link/bulk_pause Bulk Pause Connections #
POST /v2/link/token Generate Vital Link Token #
POST /v2/link/code/create Create Token #
POST /v2/link/provider/password/{provider} Connect Password Provider #
POST /v2/link/provider/password/{provider}/complete_mfa Complete Password Provider Mfa #
POST /v2/link/provider/email/{provider} Connect Email Auth Provider #
POST /v2/link/connect/demo Create Demo Connection #

Documentation

Specifications

Schemas & Data

Other Resources

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/vital-io-link-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

vital-io-link-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vital Io Link API
  version: 0.4.497
  description: 'Operations tagged link across 9 of this provider''s published API definitions: vital-lab-report-parser-api-openapi.yml, vital-lab-testing-api-openapi.yml, vital-link-api-openapi.yml, vital-openapi-original.json, vital-openapi-original.yml, vital-sense-api-openapi.yml, vital-team-api-openapi.yml, vital-users-api-openapi.yml, vital-wearables-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.us.junction.com
  x-fern-server-name: Production
- url: https://api.eu.junction.com
  x-fern-server-name: ProductionEU
- url: https://api.sandbox.us.junction.com
  x-fern-server-name: Sandbox
- url: https://api.sandbox.eu.junction.com
  x-fern-server-name: SandboxEU
security:
- apiKeyAuth: []
tags:
- name: link
paths:
  /v2/link/bulk_op:
    get:
      tags:
      - link
      summary: List Bulk Ops
      operationId: list_bulk_ops_v2_link_bulk_op_get
      parameters:
      - name: next_cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 50
          minimum: 0
          default: 10
          title: Page Size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkOpsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: list_bulk_ops
      x-fern-availability: beta
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/bulk_import:
    post:
      tags:
      - link
      summary: Bulk Import Connections
      operationId: bulk_import_connections_v2_link_bulk_import_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkImportConnectionsBody'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkImportConnectionsResponse'
        '202':
          description: Accepted
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: bulk_import
      x-fern-availability: beta
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/bulk_trigger_historical_pull:
    post:
      tags:
      - link
      summary: Bulk Trigger Historical Pull
      operationId: bulk_trigger_historical_pull_v2_link_bulk_trigger_historical_pull_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkTriggerHistoricalPullBody'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '202':
          description: Accepted
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: bulk_trigger_historical_pull
      x-fern-availability: beta
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/bulk_export:
    post:
      tags:
      - link
      summary: Bulk Export Connections
      operationId: bulk_export_connections_v2_link_bulk_export_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkExportConnectionsBody'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkExportConnectionsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: bulk_export
      x-fern-availability: beta
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/bulk_pause:
    post:
      tags:
      - link
      summary: Bulk Pause Connections
      operationId: bulk_pause_connections_v2_link_bulk_pause_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPauseConnectionsBody'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: bulk_pause
      x-fern-availability: beta
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/token:
    post:
      tags:
      - link
      summary: Generate Vital Link Token
      description: 'Endpoint to generate a user link token, to be used throughout the vital

        link process. The vital link token is a one time use token, that

        expires after 10 minutes. If you would like vital-link widget to launch

        with a specific provider, pass in a provider in the body. If you would

        like to redirect to a custom url after successful or error connection,

        pass in your own custom redirect_url parameter.'
      operationId: generate_vital_link_token_v2_link_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkTokenExchange'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkTokenExchangeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: token
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/code/create:
    post:
      tags:
      - link
      summary: Create Token
      description: Generate a token to invite a user of Vital mobile app to your team
      operationId: create_token_v2_link_code_create_post
      parameters:
      - name: user_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: User Id
      - name: expires_at
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: When the link code should expire. Defaults to server time plus 1 hour.
          title: Expires At
        description: When the link code should expire. Defaults to server time plus 1 hour.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VitalTokenCreatedResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: code_create
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/provider/oauth/{oauth_provider}:
    get:
      tags:
      - link
      summary: Generate Oauth Link Endpoint
      description: This endpoint generates an OAuth link for oauth provider
      operationId: generate_oauth_link
      parameters:
      - name: oauth_provider
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OAuthProviders'
      - name: x-vital-link-token
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Vital-Link-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Source'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: generate_oauth_link
      security: []
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/provider/password/{provider}:
    post:
      tags:
      - link
      summary: Connect Password Provider
      description: This connects auth providers that are password based.
      operationId: connect_password_provider_v2_link_provider_password__provider__post
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/PasswordProviders'
          title: Providers that require password auth
      - name: x-vital-link-token
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Vital-Link-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IndividualProviderData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderLinkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: connect_password_provider
      security: []
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/provider/password/{provider}/complete_mfa:
    post:
      tags:
      - link
      summary: Complete Password Provider Mfa
      description: This connects auth providers that are password based.
      operationId: complete_password_provider_mfa_v2_link_provider_password__provider__complete_mfa_post
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/PasswordProviders'
          title: Providers that require password auth
      - name: x-vital-link-token
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Vital-Link-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompletePasswordProviderMFABody'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderLinkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: complete_password_provider_mfa
      security: []
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/provider/email/{provider}:
    post:
      tags:
      - link
      summary: Connect Email Auth Provider
      description: This connects auth providers that are email based.
      operationId: connect_email_auth_provider_v2_link_provider_email__provider__post
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/EmailProviders'
          title: Email providers that require emails freestyle_auth
      - name: x-vital-link-token
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Vital-Link-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailProviderAuthLink'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: connect_email_auth_provider
      security: []
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/providers:
    get:
      tags:
      - link
      summary: Get Providers
      description: GET List of all available providers given the generated link token.
      operationId: get_providers_v2_link_providers_get
      parameters:
      - name: x-vital-link-token
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Vital-Link-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SourceLink'
                title: Response Get Providers V2 Link Providers Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: get_all_providers
      security: []
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  /v2/link/connect/demo:
    post:
      tags:
      - link
      summary: Create Demo Connection
      description: POST Connect the given Vital user to a demo provider.
      operationId: create_demo_connection_v2_link_connect_demo_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemoConnectionCreationPayload'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoConnectionStatus'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: link
      x-fern-sdk-method-name: connect_demo_provider
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
webhooks:
  provider.connection.created:
    post:
      tags:
      - link
      summary: Provider Connection Created
      operationId: provider_connection_createdprovider_connection_created_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingProviderConnectionCreatedEvent'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  provider.connection.error:
    post:
      tags:
      - link
      summary: Provider Connection Error
      operationId: provider_connection_errorprovider_connection_error_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingProviderConnectionErrorEvent'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
components:
  schemas:
    ProviderConnectionCreated:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
        source:
          $ref: '#/components/schemas/ClientFacingProvider'
          description: Deprecated. Use `provider` instead. Subject to removal after 1 Jan 2024.
          deprecated: true
        provider:
          $ref: '#/components/schemas/ClientFacingProvider'
        external_user_id:
          anyOf:
          - type: string
          - type: 'null'
          title: External User Id
          description: '

            The unique identifier of the associated external data provider user.


            * OAuth Providers: User unique identifier; provider-specific formats

            * Password Providers: Username

            * Email Providers: Email

            * Junction Mobile SDK Providers: `null` (not available)

            '
        resource_availability:
          additionalProperties:
            $ref: '#/components/schemas/ResourceAvailability'
          propertyNames:
            $ref: '#/components/schemas/Resource'
          type: object
          title: Resource Availability
      type: object
      required:
      - user_id
      - source
      - provider
      - external_user_id
      - resource_availability
      title: ProviderConnectionCreated
      example:
        provider:
          logo: https://logo_url.com
          name: Fitbit
          slug: fitbit
        resource_availability:
          body:
            scope_requirements:
              user_denied:
                optional: []
                required: []
              user_granted:
                optional: []
                required:
                - weight
            status: available
          sleep:
            scope_requirements:
              user_denied:
                optional:
                - heartrate
                - oxygen_saturation
                - respiratory_rate
                required:
                - sleep
              user_granted:
                optional: []
                required: []
            status: unavailable
        user_id: 1449752e-0d8a-40e0-9206-91ab099b2537
    ClientFacingProviderConnectionCreatedEvent:
      properties:
        event_type:
          type: string
          const: provider.connection.created
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ProviderConnectionCreated'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingProviderConnectionCreatedEvent
    ProviderConnectionError:
      properties:
        provider:
          type: string
          title: Provider
        user_id:
          type: string
          format: uuid
          title: User Id
        message:
          type: string
          title: Message
        error_type:
          type: string
          enum:
          - token_refresh_failed
          - webhook_registration_failed
          - user_not_found
          - deregistered_per_provider
          - required_scopes_not_granted
          - provider_credential_error
          - provider_password_expired
          - unknown
          title: Error Type
          description: ℹ️ This enum is non-exhaustive.
        error_details:
          type: string
          title: Error Details
      type: object
      required:
      - provider
      - user_id
      - message
      - error_type
      - error_details
      title: ProviderConnectionError
      example:
        error_details: Failed to pull provider data
        error_type: token_refresh_failed
        message: We are having issues fetching information for user.                             We won't try to fetch again from this specific provider. Please reconnect device.
        provider: oura
        user_id: 1449752e-0d8a-40e0-9206-91ab099b2537
    ResourceAvailability:
      properties:
        status:
          $ref: '#/components/schemas/Availability'
          description: ℹ️ This enum is non-exhaustive.
        scope_requirements:
          anyOf:
          - $ref: '#/components/schemas/ScopeRequirementsGrants'
          - type: 'null'
      type: object
      required:
      - status
      title: ResourceAvailability
    Availability:
      type: string
      enum:
      - available
      - unavailable
      title: Availability
      description: ℹ️ This enum is non-exhaustive.
    ScopeRequirementsGrants:
      properties:
        user_granted:
          $ref: '#/components/schemas/ScopeRequirements_str_'
        user_denied:
          $ref: '#/components/schemas/ScopeRequirements_str_'
      type: object
      required:
      - user_granted
      - user_denied
      title: ScopeRequirementsGrants
    HTTPValidationError:
      properties:
        detail:
          title: Detail
      type: object
      title: HTTPValidationError
    ClientFacingProvider:
      properties:
        name:
          type: string
          title: Name
          description: Name of source of information
        slug:
          type: string
          title: Slug
          description: Slug for designated source
        logo:
          type: string
          title: Logo
          description: URL for source logo
      type: object
      required:
      - name
      - slug
      - logo
      title: Provider
      description: A vendor, a service, or a platform which Vital can connect with.
      example:
        logo: https://logo_url.com
        name: Oura
        slug: oura
    ClientFacingProviderConnectionErrorEvent:
      properties:
        event_type:
          type: string
          const: provider.connection.error
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ProviderConnectionError'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingProviderConnectionErrorEvent
    ScopeRequirements_str_:
      properties:
        required:
          items:
            type: string
          type: array
          title: Required
        optional:
          items:
            type: string
          type: array
          title: Optional
      type: object
      required:
      - required
      - optional
      title: ScopeRequirements[str]
    Resource:
      type: string
      enum:
      - profile
      - activity
      - sleep
      - body
      - workouts
      - workout_stream
      - connection
      - order
      - result
      - match_review
      - appointment
      - glucose
      - heartrate
      - hrv
      - hrv
      - ige
      - igg
      - blood_oxygen
      - blood_pressure
      - cholesterol
      - device
      - device_legacy
      - weight
      - fat
      - body_temperature
      - body_temperature_delta
      - meal
      - water
      - caffeine
      - mindfulness_minutes
      - steps
      - calories_active
      - distance
      - floors_climbed
      - respiratory_rate
      - vo2_max
      - calories_basal
      - stress_level
      - menstrual_cycle
      - sleep_cycle
      - electrocardiogram
      - electrocardiogram_voltage
      - afib_burden
      - heart_rate_alert
      - stand_hour
      - stand_duration
      - sleep_apnea_alert
      - sleep_breathing_disturbance
      - wheelchair_push
      - forced_expiratory_volume_1
      - forced_vital_capacity
      - peak_expiratory_flow_rate
      - inhaler_usage
      - fall
      - uv_exposure
      - daylight_exposure
      - handwashing
      - basal_body_temperature
      - heart_rate_recovery_one_minute
      - body_mass_index
      - lean_body_mass
      - waist_circumference
      - workout_distance
      - workout_swimming_stroke
      - workout_duration
      - insulin_injection
      - carbohydrates
      - note
      - sleep_stream
      - hypnogram
      title: ClientFacingResource
      x-fern-type-name: ClientFacingResource
      description: ℹ️ This enum is non-exhaustive.
    PasswordProviders:
      type: string
      enum:
      - whoop
      - renpho
      - peloton
      - zwift
      - eight_sleep
      - beurer_api
      - dexcom
      - hammerhead
      - my_fitness_pal
      - kardia
      - abbott_libreview
      - tandem_source
      title: PasswordProviders
      description: ℹ️ This enum is non-exhaustive.
    LinkTokenExchange:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
          description: User id returned by vital create user request. This id should be stored in your database against the user and used for all interactions with the vital api.
        provider:
          anyOf:
          - $ref: '#/components/schemas/Providers'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        redirect_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Redirect Url
        filter_on_providers:
          anyOf:
          - items:
              $ref: '#/components/schemas/Providers'
            type: array
            minItems: 1
          - type: 'null'
          title: Filter On Providers
          description: 'An allowlist of providers dictating what Vital Link Widget should show to the end user.

            If unspecified, all linkable providers are shown.


            This has no effect on programmatic Vital Link API usage.'
        on_error:
          anyOf:
          - type: string
            const: redirect
          - type: 'null'
          title: On Error
          description: 'By default, Vital Link Widget input forms for password and email providers have in-built error handling.


            Specifying `on_error=redirect` disables this Vital Link Widget UI behaviour — it would

            instead redirect to your `redirect_url`, with Link Error parameters injected.


            This has no effect on OAuth providers — they always redirect to your `redirect_url`. This also has

            no effect on programmatic Vital Link API usage.'
        on_close:
          anyOf:
          - type: string
            const: redirect
          - type: 'null'
          title: On Close
          description: 'By default, Vital Link Widget closes the window or tab when the user taps the Close button.


            Specifying `on_close=redirect` would change the Close button behaviour to redirect to your `redirect_url`

            with the `user_cancelled` error specified.


            This has no effect on programmatic Vital Link API usage.'
      type: object
      required:
      - user_id
      title: Link

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vital-io/refs/heads/main/openapi/vital-io-link-api-openapi.yml