Vital link API

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

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

vital-io-link-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vital Lab Report Parser Aggregate link API
  description: Submit existing lab-result PDFs to be parsed and normalized into structured biomarker results. Create lab-report parser jobs and poll for job status and parsed results.
  version: 0.4.497
  contact:
    name: Junction (Vital) Support
    url: https://docs.junction.com
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
  /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
  /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
  /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
  /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
  /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
  /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
  /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: []
  /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: []
  /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: []
  /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: []
  /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: []
  /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
components:
  schemas:
    SourceType:
      type: string
      enum:
      - app
      - ble
      - device
      - lab
      - provider
      title: SourceType
      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: LinkTokenExchange
    BulkOp:
      properties:
        type:
          type: string
          enum:
          - link_bulk_import
          - link_bulk_historical_trigger
          title: Type
          description: ℹ️ This enum is non-exhaustive.
        status:
          type: string
          enum:
          - in_progress
          - success
          - failure
          - aborted
          title: Status
          description: ℹ️ This enum is non-exhaustive.
        provider:
          $ref: '#/components/schemas/Providers'
          description: ℹ️ This enum is non-exhaustive.
        pending:
          type: integer
          title: Pending
        processed:
          type: integer
          title: Processed
        started_at:
          type: string
          format: date-time
          title: Started At
        ended_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Ended At
      type: object
      required:
      - type
      - status
      - provider
      - pending
      - processed
      - started_at
      - ended_at
      title: BulkOp
    DemoProviders:
      type: string
      enum:
      - apple_health_kit
      - fitbit
      - freestyle_libre
      - oura
      title: DemoProviders
      description: ℹ️ This enum is non-exhaustive.
    DemoConnectionCreationPayload:
      properties:
        user_id:
          type: string
          format: uuid4
          title: User Id
          description: Vital user ID
        provider:
          $ref: '#/components/schemas/DemoProviders'
          description: Demo provider. For more information, please check out our docs (https://docs.tryvital.io/wearables/providers/test_data) ℹ️ This enum is non-exhaustive.
      type: object
      required:
      - user_id
      - provider
      title: DemoConnectionCreationPayload
    ProviderMFARequest:
      properties:
        method:
          type: string
          enum:
          - sms
          - email
          title: Method
          description: The MFA method requested by the password provider to complete authentication. ℹ️ This enum is non-exhaustive.
        hint:
          type: string
          title: Hint
          description: The MFA hint provided by the password provider, e.g., the redacted phone number.
      type: object
      required:
      - method
      - hint
      title: ProviderMFARequest
    VitalTokenCreatedResponse:
      properties:
        code:
          type: string
          pattern: ^(sk|pk)(eu|us)([\da-f]{8})
          title: Code
        exchange_url:
          type: string
          pattern: ^tryvital\:\/\/tryvital\?code\=(sk|pk)(eu|us)([\da-f]{8})$
          title: Exchange Url
        expires_at:
          type: string
          format: date-time
          title: Expires At
      type: object
      required:
      - code
      - exchange_url
      - expires_at
      title: VitalTokenCreatedResponse
    LinkTokenExchangeResponse:
      properties:
        link_token:
          type: string
          title: Link Token
          description: A short-lived Vital Link token for your Custom Link Widget to communicate with the Vital API.
        link_web_url:
          type: string
          title: Link Web Url
          description: The web browser link to launch the default Vital Link experience. If you requested the token for one specific provider, the link would redirect directly to the provider authentication flow. Otherwise, the user would be presented with a list of providers based on your team and token configurations.
      type: object
      required:
      - link_token
      - link_web_url
      title: LinkTokenExchangeResponse
      example:
        link_token: dGVzdCB0ZXN0IHRlc3Q=
        link_web_url: https://link.tryvital.io/?token=dGVzdCB0ZXN0IHRlc3Q%3D&env=production&region=us
    BulkOpsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/BulkOp'
          type: array
          title: Data
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      type: object
      required:
      - data
      - next_cursor
      title: BulkOpsResponse
    Source:
      properties:
        name:
          type: string
          title: Name
        slug:
          type: string
          title: Slug
        description:
          type: string
          title: Description
        logo:
          type: string
          title: Logo
        group:
          anyOf:
          - type: string
          - type: 'null'
          title: Group
        oauth_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Oauth Url
        auth_type:
          anyOf:
          - $ref: '#/components/schemas/SourceAuthType'
          - type: 'null'
          default: oauth
          description: ℹ️ This enum is non-exhaustive.
        source_type:
          anyOf:
          - $ref: '#/components/schemas/SourceType'
          - type: 'null'
          default: device
          description: ℹ️ This enum is non-exhaustive.
        is_active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Active
          default: true
        backfill_num_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Backfill Num Days
        id:
          type: integer
          title: Id
      type: object
      required:
      - name
      - slug
      - description
      - logo
      - id
      title: Provider
      example:
        auth_type: oauth
        description: Garmin Watches
        id: 1
        logo: https://garmin.com
        name: Garmin
        oauth_url: https://garmin_aouth_url.com
        slug: garmin
    BulkTriggerHistoricalPullBody:
      properties:
        user_ids:
          items:
            type: string
            format: uuid
          type: array
          title: User Ids
        provider:
          $ref: '#/components/schemas/OAuthProviders'
          description: ℹ️ This enum is non-exhaustive.
        wait_for_completion:
          type: boolean
          title: Wait For Completion
          description: '

            Whether or not the endpoint should wait for the Bulk Op to complete before responding.


            When `wait_for_completion` is enabled, the endpoint may respond 200 OK if the Bulk Op takes less than 20 seconds to complete.


            Otherwise, the endpoint always responds with 202 Created once the submitted data have been enqueued successfully. You can use

            the [List Bulk Ops](https://docs.tryvital.io/api-reference/link/list-bulk-ops) endpoint to inspect the progress of the Bulk Op.

            '
          default: false
      type: object
      required:
      - user_ids
      - provider
      title: BulkTriggerHistoricalPullBody
    BulkImportConnectionsResponse:
      properties:
        user_ids_imported:
          items:
            type: string
            format: uuid
          type: array
          title: User Ids Imported
        user_ids_failed:
          items:
            type: string
            format: uuid
          type: array
          title: User Ids Failed
      type: object
      required:
      - user_ids_imported
      - user_ids_failed
      title: BulkImportConnectionsResponse
    IndividualProviderData:
      properties:
        username:
          type: string
          title: Username
          description: Username for provider
        password:
          type: string
          title: Password
          description: Password for provider
        region:
          anyOf:
          - $ref: '#/components/schemas/Region'
          - type: 'null'
          description: Provider region to authenticate against. Only applicable to specific providers. ℹ️ This enum is non-exhaustive.
      type: object
      required:
      - username
      - password
      title: IndividualProviderData
    BulkExportConnectionsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ConnectionRecipe'
          type: array
          title: Data
        next_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Token
      type: object
      required:
      - data
      - next_token
      title: BulkExportConnectionsResponse
    SourceLink:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
        slug:
          type: string
          title: Slug
        description:
          type: string
          title: Description
        logo:
          type: string
          title: Logo
        oauth_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Oauth Url
        auth_type:
          anyOf:
          - $ref: '#/components/schemas/SourceAuthType'
          - type: 'null'
          default: oauth
          description: ℹ️ This enum is non-exhaustive.
        form_components:
          additionalProperties: true
          type: object
          title: Form Components
          default: {}
      type: object
      required:
      - id
      - name
      - slug
      - description
      - logo
      title: SourceLink
    EmailProviders:
      type: string
      enum:
      - freestyle_libre
      title: EmailProviders
      description: ℹ️ This enum is non-exhaustive.
    ConnectionRecipe:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
          description: Vital User ID. The user must be created ahead of the bulk import operation.
        access_token:
          type: string
          title: Access Token
          description: '* OAuth 2.0 providers (Fitbit, etc): The latest Access Token.

            * OAuth 1.0 providers (Garmin): The Access Token.'
        refresh_token:
          type: string
          title: Refresh Token
          description: '* OAuth 2.0 providers (Fitbit, etc): The latest Refresh Token.

            * OAuth 1.0 providers (Garmin): The Token Secret.'
        provider_id:
          type: string
          title: Provider Id
          description: "User ID of the data provider.\n\n* Fitbit: 6-character Fitbit User ID \n* Garmin: 36-character Garmin User ID"
        expires_at:
          type: integer
          title: Expires At
          description: 'Access token expiry date, in terms of UNIX epoch seconds.


            * OAuth 2.0 providers (Fitbit, etc): The latest expiry date on your record.

            * OAuth 1.0 providers (Garmin): Use the constant value `2147483647`.'
        oauth_scopes:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Oauth Scopes
          description: 'OAuth scopes of the data provider. Specify `null` if you do not

            have any scopes on record.


            * Fitbit: Has scopes

            * Garmin: No scope'
      type: object
      required:
      - user_id
      - access_token
      - refresh_token
      - provider_id
      - expires_at
      title: ConnectionRecipe
    BulkExportConnectionsBody:
      properties:
        user_ids:
          anyOf:
          - items:
              type: string
              format: uuid
            type: array
          - type: 'null'
          title: User Ids
        provider:
          $ref: '#/components/schemas/OAuthProviders'
          description: ℹ️ This enum is non-exhaustive.
        next_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Token
      type: object
      required:
      - provider
      title: BulkExportConnectionsBody
    OAuthProviders:
      type: string
      enum:
      - oura
      - fitbit
      - garmin
      - strava
      - wahoo
      - ihealth
      - withings
      - google_fit
      - dexcom_v3
      - polar
      - cronometer
      - omron
      - whoop_v2
      - my_fitness_pal_v2
      - ultrahuman
      - runkeeper
      title: OAuthProviders
      description: ℹ️ This enum is non-exhaustive.
    Providers:
      type: string
      enum:
      - oura
      - fitbit
      - garmin
      - whoop
      - strava
      - renpho
      - peloton
      - wahoo
      - zwift
      - freestyle_libre
      - abbott_libreview
      - tandem_source
      - freestyle_libre_ble
      - eight_sleep
      - withings
      - apple_health_kit
      - manual
      - ihealth
      - google_fit
      - beurer_api
      - beurer_ble
      - omron
      - omron_ble
      - onetouch_ble
      - accuchek_ble
      - contour_ble
      - dexcom
      - dexcom_v3
      - hammerhead
      - my_fitness_pal
      - health_connect
      - samsung_health
      - polar
      - cronometer
      - kardia
      - whoop_v2
      - ultrahuman
      - my_fitness_pal_v2
      - map_my_fitness
      - runkeeper
      title: Providers
      description: ℹ️ This enum is non-exhaustive.
    HTTPValidationError:
      properties:
        detail:
          title: Detail
      type: object
      title: HTTPValidationError
    SourceAuthType:
      type: string
      enum:
      - oauth
      - team_oauth
      - sdk
      - password
      - email
      - app
      - ''
      title: SourceAuthType
      x-fern-enum:
        ? ''
        : name: Empty
      description: ℹ️ This enum is non-exhaustive.
    BulkPauseConnectionsBody:
      properties:
        user_ids:
          items:
            type: string
            format: uuid
          type: array
          title: User Ids
        provider:
          $ref: '#/components/schemas/OAuthProviders'
          description: ℹ️ This enum is non-exhaustive.
      type: object
      required:
      - user_ids
      - provider
      title: BulkPauseConnectionsBody
    EmailProviderAuthLink:
      properties:
        email:
          type: string
          title: Email
        provider:
          anyOf:
          - $ref: '#/components/schemas/Providers'
          - type: 'null'
          deprecated: true
          description: ℹ️ This enum is non-exhaustive.
        region:
          $ref: '#/components/schemas/Region'
          description: ℹ️ This enum is non-exhaustive.
      type: object
      required:
      - email
      title: EmailProviderAuthLink
    Region:
      type: string
      enum:
      - us
      - eu
      - de
      - fr
      - ca
      - br
      - ar
      - cl
      - co
      - mx
      - gb
      - ie
      - au
      - nz
      - nl
      - at
      - be
      - bh
      - ch
      - cz
      - dk
      - eg
      - es
      - fi
      - gr
      - hr
      - il
      - it
      - jo
      - kw
      - lb
      - lu
      - 'no'
      - om
      - pl
      - pt
      - qa
      - sa
      - se
      - si
      - sk
      - tr
      - za
      - in
      - sg
      - hk
      - kr
      - ph
      - tw
      title: Region
      description: ℹ️ This enum is non-exhaustive.
    BulkImportConnectionsBody:
      properties:
        provider:
          $ref: '#/components/schemas/OAuthProviders'
          description: ℹ️ This enum is non-exhaustive.
        connections:
          items:
            $ref: '#/components/schemas/ConnectionRecipe'
         

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