Vital · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Junction User API
20 actions
20 updates
phrasing
extends
openapi/vital-io-user-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.
What the actions change
x-apievangelist-phrasing
Targets 20 · first 16 shown; the file carries all of them
$.info
$.paths['/v2/user'].get
$.paths['/v2/user'].post
$.paths['/v2/user/metrics'].get
$.paths['/v2/user/providers/{user_id}'].get
$.paths['/v2/user/{user_id}/info/latest'].get
$.paths['/v2/user/{user_id}/insurance'].post
$.paths['/v2/user/{user_id}/insurance/latest'].get
$.paths['/v2/user/{user_id}/info'].patch
$.paths['/v2/user/resolve/{client_user_id}'].get
$.paths['/v2/user/{user_id}/{provider}'].delete
$.paths['/v2/user/{user_id}'].get
$.paths['/v2/user/{user_id}'].delete
$.paths['/v2/user/{user_id}'].patch
$.paths['/v2/user/undo_delete'].post
$.paths['/v2/user/refresh/{user_id}'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Junction User API
version: 1.0.0
extends: openapi/vital-io-user-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: 19
- target: $.paths['/v2/user'].get
update:
x-apievangelist-phrasing:
intent: List my team's users
effect: read
questions:
- Can I list every user on my team?
- Is the team user list paginated with offset and limit?
instructions:
- text: List my team's users.
- text: Get {limit} team users starting at offset {offset}.
slots:
limit: query.limit
offset: query.offset
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user'].post
update:
x-apievangelist-phrasing:
intent: Create a user
effect: write
questions:
- How do I create a Vital user for someone in my app?
- Can I set a fallback time zone when creating a user?
instructions:
- text: Create a user with client user ID {client_user_id}.
slots:
client_user_id: requestBody.client_user_id
- text: Create user {client_user_id} with fallback time zone {tz}.
slots:
client_user_id: requestBody.client_user_id
tz: requestBody.fallback_time_zone
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get my team's metrics
effect: read
questions:
- What usage metrics are available for my team?
- Can I pull team-level metrics in one call?
instructions:
- text: Get my team's metrics.
- text: Show the current metrics for my team.
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/providers/{user_id}'].get
update:
x-apievangelist-phrasing:
intent: List a user's connected providers
effect: read
questions:
- Which providers has a user connected?
- Can I check whether a user's wearable is still linked?
instructions:
- text: List connected providers for {user}.
slots:
user: path.user_id
- text: Show which providers {user} has linked.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/info/latest'].get
update:
x-apievangelist-phrasing:
intent: Get a user's latest demographics
effect: read
questions:
- What demographic info is on file for a user?
- Can I fetch a user's most recent name, birth date and address?
instructions:
- text: Get the latest demographics for {user}.
slots:
user: path.user_id
- text: Show {user}'s current patient info.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/insurance'].post
update:
x-apievangelist-phrasing:
intent: Add health insurance to a user
effect: write
questions:
- How do I add health insurance to a user?
- Can I mark an insurance plan as the user's primary?
instructions:
- text: Add insurance for {user} with payor {payor_code}, member ID {member_id}, relationship {relationship}, insured {insured}.
slots:
user: path.user_id
payor_code: requestBody.payor_code
member_id: requestBody.member_id
relationship: requestBody.relationship
insured: requestBody.insured
- text: Attach payor {payor_code} coverage with member ID {member_id} to {user} as primary.
slots:
payor_code: requestBody.payor_code
member_id: requestBody.member_id
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/insurance/latest'].get
update:
x-apievangelist-phrasing:
intent: Get a user's latest insurance
effect: read
questions:
- What insurance is currently on file for a user?
- Can I get just the user's primary insurance?
instructions:
- text: Get the latest insurance for {user}.
slots:
user: path.user_id
- text: Get {user}'s most recent insurance where primary is {is_primary}.
slots:
user: path.user_id
is_primary: query.is_primary
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/info'].patch
update:
x-apievangelist-phrasing:
intent: Save a user's demographic details
effect: write
questions:
- How do I save a user's name, contact details and address?
- Can I record race, ethnicity and gender identity for a user?
instructions:
- text: 'Set demographics for {user}: {first_name} {last_name}, {email}, {phone}, gender {gender}, born {dob}, address {address}.'
slots:
user: path.user_id
first_name: requestBody.first_name
last_name: requestBody.last_name
email: requestBody.email
phone: requestBody.phone_number
gender: requestBody.gender
dob: requestBody.dob
address: requestBody.address
- text: Update {user}'s patient info with email {email} and date of birth {dob}.
slots:
user: path.user_id
email: requestBody.email
dob: requestBody.dob
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/resolve/{client_user_id}'].get
update:
x-apievangelist-phrasing:
intent: Resolve a client user ID to a user
effect: read
questions:
- How do I find the Vital user ID for one of my client user IDs?
- Can I resolve my own user identifier to a user?
instructions:
- text: Resolve client user ID {path_client_user_id}.
slots:
path_client_user_id: path.client_user_id
- text: Get the user for my ID {path_client_user_id}.
slots:
path_client_user_id: path.client_user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/{provider}'].delete
update:
x-apievangelist-phrasing:
intent: Disconnect a provider from a user
effect: destructive
questions:
- How do I disconnect a provider from a user?
- Can I remove one wearable connection without deleting the user?
instructions:
- text: Deregister {provider} from user {user}.
slots:
provider: path.provider
user: path.user_id
- text: Disconnect {user}'s {provider} connection.
slots:
user: path.user_id
provider: path.provider
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a user
effect: read
questions:
- Can I look up a user by user ID?
- What details are stored for a single user?
instructions:
- text: Get user {user}.
slots:
user: path.user_id
- text: Show the record for user {user}.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a user
effect: destructive
questions:
- How do I delete a user?
- Can I permanently remove a user from my team?
instructions:
- text: Delete user {user}.
slots:
user: path.user_id
- text: Remove user {user} from my team.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a user's settings
effect: write
questions:
- Can I change a user's fallback time zone or birth date?
- Can I adjust a user's data ingestion window after creating them?
instructions:
- text: Update {user}'s fallback time zone to {tz}.
slots:
user: path.user_id
tz: requestBody.fallback_time_zone
- text: Set ingestion for {user} from {ingestion_start} to {ingestion_end}.
slots:
user: path.user_id
ingestion_start: requestBody.ingestion_start
ingestion_end: requestBody.ingestion_end
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/undo_delete'].post
update:
x-apievangelist-phrasing:
intent: Restore a deleted user
effect: write
questions:
- Can I restore a user I deleted by mistake?
- Is it possible to undo a user deletion using my client user ID?
instructions:
- text: Undo the deletion of user {q_user}.
slots:
q_user: query.user_id
- text: Restore the deleted user with client ID {q_client_user_id}.
slots:
q_client_user_id: query.client_user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/refresh/{user_id}'].post
update:
x-apievangelist-phrasing:
intent: Trigger a manual data refresh for a user
effect: write
questions:
- Can I force a manual data refresh for a user?
- How do I trigger an immediate sync for one user?
instructions:
- text: Refresh data for user {user}.
slots:
user: path.user_id
- text: Trigger a manual refresh for {user} with timeout {timeout}.
slots:
user: path.user_id
timeout: query.timeout
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/device'].get
update:
x-apievangelist-phrasing:
intent: List a user's devices
effect: read
questions:
- Which devices are registered to a user?
- Can I see all devices tied to one user?
instructions:
- text: List devices for {user}.
slots:
user: path.user_id
- text: Show every device registered to {user}.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/device/{device_id}'].get
update:
x-apievangelist-phrasing:
intent: Get one of a user's devices
effect: read
questions:
- Can I get the details of one specific device for a user?
- What does a single device record contain?
instructions:
- text: Get device {device_id} for user {user}.
slots:
device_id: path.device_id
user: path.user_id
- text: Show {user}'s device {device_id}.
slots:
user: path.user_id
device_id: path.device_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/sign_in_token'].post
update:
x-apievangelist-phrasing:
intent: Issue a sign-in token for a user
effect: write
questions:
- How do I get a sign-in token for a user?
- Can I issue a sign-in token for a single user?
instructions:
- text: Create a sign-in token for {user}.
slots:
user: path.user_id
- text: Issue {user} a sign-in token.
slots:
user: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/user/{user_id}/create_portal_url'].post
update:
x-apievangelist-phrasing:
intent: Create a user portal link
effect: write
questions:
- Can I create a portal link for a user?
- Can a user portal link deep-link to a specific order?
instructions:
- text: Create a portal URL for {user} with context {context}.
slots:
user: path.user_id
context: requestBody.context
- text: Generate a portal link for {user} in context {context} that opens order {order_id}.
slots:
user: path.user_id
context: requestBody.context
order_id: requestBody.order_id
method: generated
generated: '2026-10-01'