Vital team API

The team API from Vital — 5 operation(s) for team.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

vital-io-team-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vital Lab Report Parser Aggregate team 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: team
paths:
  /v2/team/{team_id}:
    get:
      tags:
      - team
      summary: Get Team
      description: Get team.
      operationId: get_team_v2_team__team_id__get
      parameters:
      - name: team_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Team Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientFacingTeam'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: get
      x-fern-availability: deprecated
  /v2/team/users/search:
    get:
      tags:
      - team
      summary: Search Team Users By Uuid Or Client User Id
      description: Search team users by user_id
      operationId: search_team_users_by_uuid_or_client_user_id_v2_team_users_search_get
      parameters:
      - name: query_id
        in: query
        required: false
        schema:
          type: string
          minLength: 2
          title: Query Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientFacingUser'
                title: Response Search Team Users By Uuid Or Client User Id V2 Team Users Search Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: get_user_by_id
      x-fern-availability: deprecated
  /v2/team/svix/url:
    get:
      tags:
      - team
      summary: Get Svix Webhook Url
      operationId: get_svix_webhook_url_v2_team_svix_url_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Get Svix Webhook Url V2 Team Svix Url Get
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: get_svix_url
      x-fern-availability: deprecated
  /v2/team/source/priorities:
    get:
      tags:
      - team
      summary: Get Source Priorities
      description: GET source priorities.
      operationId: get_source_priorities_v2_team_source_priorities_get
      parameters:
      - name: data_type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/PriorityResource'
          - type: 'null'
          title: Data Type
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
                title: Response Get Source Priorities V2 Team Source Priorities Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: get_source_priorities
    patch:
      tags:
      - team
      summary: Update Source Priorities
      description: Patch source priorities.
      operationId: update_source_priorities_v2_team_source_priorities_patch
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
                title: Response Update Source Priorities V2 Team Source Priorities Patch
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: update_source_priorities
  /v2/team/{team_id}/physicians:
    get:
      tags:
      - team
      summary: Get Team Physicians
      operationId: get_team_physicians_v2_team__team_id__physicians_get
      parameters:
      - name: team_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Team Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientFacingPhysician'
                title: Response Get Team Physicians V2 Team  Team Id  Physicians Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-sdk-group-name: team
      x-fern-sdk-method-name: get_physicians
components:
  schemas:
    ClientFacingUser:
      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.
        team_id:
          type: string
          format: uuid
          title: Team Id
          description: Your team id.
        client_user_id:
          type: string
          title: Client User Id
          description: A unique ID representing the end user. Typically this will be a user ID from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
        created_on:
          type: string
          format: date-time
          title: Created On
          description: When your item is created
        connected_sources:
          items:
            $ref: '#/components/schemas/ConnectedSourceClientFacing'
          type: array
          title: Connected Sources
          description: A list of the users connected sources.
        fallback_time_zone:
          anyOf:
          - $ref: '#/components/schemas/FallbackTimeZone'
          - type: 'null'
          description: "\n    Fallback time zone of the user, in the form of a valid IANA tzdatabase identifier (e.g., `Europe/London` or `America/Los_Angeles`).\n    Used when pulling data from sources that are completely time zone agnostic (e.g., all time is relative to UTC clock, without any time zone attributions on data points).\n    "
        fallback_birth_date:
          anyOf:
          - $ref: '#/components/schemas/FallbackBirthDate'
          - type: 'null'
          description: Fallback date of birth of the user, in YYYY-mm-dd format. Used for calculating max heartrate for providers that don not provide users' age.
        ingestion_start:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Ingestion Start
          description: Starting bound for user [data ingestion bounds](https://docs.tryvital.io/wearables/providers/data-ingestion-bounds).
        ingestion_end:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Ingestion End
          description: Ending bound for user [data ingestion bounds](https://docs.tryvital.io/wearables/providers/data-ingestion-bounds).
      type: object
      required:
      - user_id
      - team_id
      - client_user_id
      - created_on
      - connected_sources
      - fallback_time_zone
      title: User
      example:
        client_user_id: ZTEwZjNjMjctOTI2ZS00M2Vm
        connected_sources:
        - created_on: '2026-05-20T13:43:42+00:00'
          source:
            logo: logo_url
            name: Oura
            slug: oura
        created_on: '2026-05-20T13:43:42+00:00'
        fallback_birth_date:
          source_slug: manual
          updated_at: '2026-05-20T13:43:42+00:00'
          value: '1989-09-12'
        fallback_time_zone:
          id: Europe/London
          source_slug: manual
          updated_at: '2026-05-20T13:43:42+00:00'
        team_id: 56bd81c9-6219-4000-a775-ae85526eba18
        user_id: 56bd81c9-6219-4000-a775-ae85526eba18
    ClientFacingPhysician:
      properties:
        first_name:
          type: string
          title: First Name
        last_name:
          type: string
          title: Last Name
        npi:
          type: string
          title: Npi
      type: object
      required:
      - first_name
      - last_name
      - npi
      title: ClientFacingPhysician
    FallbackTimeZone:
      properties:
        id:
          type: string
          title: Id
          description: "\n    Fallback time zone of the user, in the form of a valid IANA tzdatabase identifier (e.g., `Europe/London` or `America/Los_Angeles`).\n    Used when pulling data from sources that are completely time zone agnostic (e.g., all time is relative to UTC clock, without any time zone attributions on data points).\n    "
        source_slug:
          type: string
          title: Source Slug
          description: Slug for designated source
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - source_slug
      - updated_at
      title: FallbackTimeZone
    HTTPValidationError:
      properties:
        detail:
          title: Detail
      type: object
      title: HTTPValidationError
    LibreConfig:
      properties:
        practice_id:
          additionalProperties: true
          type: object
          title: Practice Id
        strip_tz:
          type: boolean
          title: Strip Tz
          default: false
      type: object
      required:
      - practice_id
      title: LibreConfig
    FallbackBirthDate:
      properties:
        value:
          type: string
          format: date
          title: Value
          description: Fallback date of birth of the user, in YYYY-mm-dd format. Used for calculating max heartrate for providers that don not provide users' age.
        source_slug:
          type: string
          title: Source Slug
          description: Slug for designated source
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - value
      - source_slug
      - updated_at
      title: FallbackBirthDate
    ClientFacingTeam:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        org_id:
          type: string
          format: uuid
          title: Org Id
        name:
          type: string
          title: Name
        svix_app_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Svix App Id
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
          default: ''
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
          default: ''
        airtable_api_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Airtable Api Key
          default: ''
        airtable_base_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Airtable Base Id
          default: ''
        webhook_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Webhook Secret
          default: ''
        api_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key
          default: ''
        api_keys:
          anyOf:
          - items:
              $ref: '#/components/schemas/ClientFacingApiKey'
            type: array
          - type: 'null'
          title: Api Keys
        configuration:
          anyOf:
          - $ref: '#/components/schemas/TeamConfig'
          - type: 'null'
        testkits_texts_enabled:
          type: boolean
          title: Testkits Texts Enabled
          deprecated: true
        lab_tests_patient_communication_enabled:
          type: boolean
          title: Lab Tests Patient Communication Enabled
        lab_tests_patient_sms_communication_enabled:
          type: boolean
          title: Lab Tests Patient Sms Communication Enabled
        lab_tests_patient_email_communication_enabled:
          type: boolean
          title: Lab Tests Patient Email Communication Enabled
        logo_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Logo Url
        delegated_flow:
          $ref: '#/components/schemas/DelegatedFlowType'
          description: ℹ️ This enum is non-exhaustive.
        critical_result_notification_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Critical Result Notification Email
      type: object
      required:
      - id
      - org_id
      - name
      - testkits_texts_enabled
      - lab_tests_patient_communication_enabled
      - lab_tests_patient_sms_communication_enabled
      - lab_tests_patient_email_communication_enabled
      - delegated_flow
      title: ClientFacingTeam
      description: '[Deprecated] GET /v2/team is in the process of being removed.

        Neither customers nor Dashboard should retrieve team settings and metadata directly.


        All must migrate to the Team endpoints of the Org Management API.'
    EventDestinationPreferences:
      properties:
        preferred:
          type: string
          enum:
          - cloud_pubsub
          - rabbitmq
          - svix
          - azure_amqp
          title: Preferred
          description: ℹ️ This enum is non-exhaustive.
        enabled:
          items:
            type: string
            enum:
            - cloud_pubsub
            - rabbitmq
            - svix
            - azure_amqp
          type: array
          title: Enabled
      type: object
      required:
      - preferred
      - enabled
      title: EventDestinationPreferences
    ConnectedSourceClientFacing:
      properties:
        provider:
          $ref: '#/components/schemas/ClientFacingProvider'
          description: The provider of this connected source.
        created_on:
          type: string
          format: date-time
          title: Created On
          description: When your item is created
        source:
          $ref: '#/components/schemas/ClientFacingProvider'
          description: Deprecated. Use `provider` instead. Subject to removal after 1 Jan 2024.
          deprecated: true
      type: object
      required:
      - provider
      - created_on
      - source
      title: ConnectedSourceClientFacing
    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
    ClientFacingApiKey:
      properties:
        label:
          type: string
          title: Label
        value:
          type: string
          title: Value
        team_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Team Id
        id:
          type: string
          format: uuid
          title: Id
        created_at:
          type: string
          format: date-time
          title: Created At
        deleted_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Deleted At
      type: object
      required:
      - label
      - value
      - id
      - created_at
      title: ClientFacingApiKey
    PriorityResource:
      type: string
      enum:
      - workouts
      - activity
      - sleep
      - body
      - timeseries
      title: PriorityResource
      description: ℹ️ This enum is non-exhaustive.
    DelegatedFlowType:
      type: string
      enum:
      - order_and_results_with_customer_physician_network
      - order_with_vital_physician_network
      - order_and_results_with_vital_physician_network
      title: DelegatedFlowType
      description: ℹ️ This enum is non-exhaustive.
    TeamConfig:
      properties:
        libreview:
          $ref: '#/components/schemas/LibreConfig'
        texts_enabled:
          type: boolean
          title: Texts Enabled
          default: false
        push_historical_data:
          type: boolean
          title: Push Historical Data
          default: false
        provider_raw_data:
          type: boolean
          title: Provider Raw Data
          default: false
        reject_duplicate_connection:
          type: boolean
          title: Reject Duplicate Connection
          default: false
        sdk_per_device_activity_timeseries:
          type: boolean
          title: Sdk Per Device Activity Timeseries
          default: false
        partial_webhooks_enabled:
          type: boolean
          title: Partial Webhooks Enabled
          default: false
        minor_ordering_enabled:
          type: boolean
          title: Minor Ordering Enabled
          default: false
        eds_preferences:
          $ref: '#/components/schemas/EventDestinationPreferences'
        event_type_prefixes:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Event Type Prefixes
      type: object
      required:
      - libreview
      title: TeamConfig
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-vital-api-key
      description: Vital Team API Key