Wispr AI History API
The History API from Wispr AI — 8 operation(s) for history.
The History API from Wispr AI — 8 operation(s) for history.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/wispr-ai-history-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Wispr Backend Analytics History API
description: Wispr Backend API
version: 0.5.2
servers:
- url: https://api.wisprflow.ai
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: History
paths:
/history/report:
post:
tags:
- History
summary: Feedback History
operationId: feedback_history
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HistoryFeedbackRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- ApiKeyHeaderPatched: []
/history/upload:
post:
tags:
- History
summary: Upload History
operationId: upload_history
security:
- ApiKeyHeaderPatched: []
parameters:
- name: platform
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/AttributionPlatform'
- type: 'null'
description: Attribution platform (e.g. desktop_mac, desktop_windows)
title: Platform
description: Attribution platform (e.g. desktop_mac, desktop_windows)
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UploadHistoryRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/history/stats:
get:
tags:
- History
summary: Get History Stats
description: Get user's history statistics
operationId: get_history_stats
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- ApiKeyHeaderPatched: []
post:
tags:
- History
summary: Overwrite History Stats
description: 'Overwrite user''s history stats. This should only be called by the client
when the remote user stats data are corrupted and should be overwritten
with the local data. Client is responsible for ensuring that the local stats
are preferred before calling this endpoint.'
operationId: overwrite_history_stats
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OverwriteHistoryStatsRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- ApiKeyHeaderPatched: []
/history/context-stats:
get:
tags:
- History
summary: Get Context Stats
description: 'Get cross-device context stats (email, ai, work, personal_messaging, document, other)
derived from ClickHouse usage_History.'
operationId: get_context_stats
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextStatsResponse'
security:
- ApiKeyHeaderPatched: []
/history/stats/enterprise:
get:
tags:
- History
summary: Get Enterprise History Stats
description: 'Get history statistics for all users in the enterprise.
Accessible by any enterprise member (admin or non-admin).
Used for the enterprise usage dashboard and leaderboard.
Podiums and the 4-week historical leaderboard are served by dedicated endpoints:
``GET /history/stats/enterprise/podiums`` and
``GET /history/stats/enterprise/weekly-ranks``.
Note: This endpoint returns all metrics regardless of subscription tier.
The frontend is responsible for controlling access to individual metrics
based on subscription level and admin status:
- Admins can see aggregate metrics (total words, team size, etc.)
- Only Enterprise tier admins can see individual teammate breakdowns
- Non-admin Enterprise members can see the leaderboard with blurred teammate values
Non-Enterprise admins will see the data but the frontend will blur/hide individual
metrics and show an upgrade prompt.'
operationId: get_enterprise_history_stats
security:
- ApiKeyHeaderPatched: []
parameters:
- name: sort_by
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/EnterpriseSortBy'
- type: 'null'
description: Column to sort/paginate by. Defaults to total_words.
title: Sort By
description: Column to sort/paginate by. Defaults to total_words.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/EnterpriseSortOrder'
description: Sort direction
default: desc
description: Sort direction
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Pagination offset. Used only when ``limit`` is set.
default: 0
title: Offset
description: Pagination offset. Used only when ``limit`` is set.
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
maximum: 1000
minimum: 1
- type: 'null'
description: Page size for leaderboard-style pagination. Omit to return the full enterprise roster (no SQL LIMIT). Pass with offset to fetch a page.
title: Limit
description: Page size for leaderboard-style pagination. Omit to return the full enterprise roster (no SQL LIMIT). Pass with offset to fetch a page.
- name: sort_near_user
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: User ID to center the page around
title: Sort Near User
description: User ID to center the page around
- name: omit
in: query
required: false
schema:
type: array
items:
$ref: '#/components/schemas/EnterpriseUsageOmit'
description: Optional sections to omit for smaller payloads. Repeat the parameter (e.g. omit=apps&omit=daily_word_counts). `apps` skips app ARRAY columns in Postgres and removes app lists from JSON. `daily_word_counts` skips the ClickHouse query and omits that array from JSON.
default: []
title: Omit
description: Optional sections to omit for smaller payloads. Repeat the parameter (e.g. omit=apps&omit=daily_word_counts). `apps` skips app ARRAY columns in Postgres and removes app lists from JSON. `daily_word_counts` skips the ClickHouse query and omits that array from JSON.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnterpriseUsageResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/history/stats/enterprise/weekly-ranks:
get:
tags:
- History
summary: Get Enterprise Weekly Ranks
description: 'Return the 4-week historical leaderboard for the caller''s enterprise.
Backed by the same Redis-cached rankings the dashboard already uses; the cache key
rotates after the Sunday 23:45 UTC ``reset_weekly_words`` cron (TTL 8 days). Like
podiums, membership is not part of the key,
so removed or new members may appear in cached data until the entry expires.
Auth + ``hideLeaderboard`` checks run before Redis; on a cache hit the handler skips the
full-roster Postgres query.
Note: Like ``GET /history/stats/enterprise``, this does not enforce subscription tier;
the client is responsible for tier-based gating of leaderboard features.'
operationId: get_enterprise_weekly_ranks
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnterpriseWeeklyRanksResponse'
security:
- ApiKeyHeaderPatched: []
/history/stats/enterprise/podiums:
get:
tags:
- History
summary: Get Enterprise Podiums
description: 'Return the top-6 podiums for every ranked metric for the caller''s enterprise.
Cached in Redis for 5 minutes. Unlike weekly ranks, invalidation is TTL-only (no membership
hash in the key), so removed members can appear until the cache entry expires.
Note: Like ``GET /history/stats/enterprise``, this does not enforce subscription tier;
the client is responsible for tier-based gating of leaderboard features.
Auth + ``hideLeaderboard`` checks run before Redis; on a cache hit the handler skips the
full-roster Postgres query.'
operationId: get_enterprise_podiums
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnterprisePodiumsResponse'
security:
- ApiKeyHeaderPatched: []
/history/mobile-words-this-week:
post:
tags:
- History
summary: Write Mobile Words This Week
description: Write mobile words this week to the database.
operationId: write_mobile_words_this_week
security:
- ApiKeyHeaderPatched: []
parameters:
- name: words_this_week
in: query
required: true
schema:
type: integer
title: Words This Week
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
WeeklyLeaderboard:
properties:
week_start:
type: string
title: Week Start
description: Sunday of the week (UTC), ISO YYYY-MM-DD. Historical closed weeks only; current week is never emitted.
total_users_ranked:
type: integer
title: Total Users Ranked
description: Number of current enterprise members ranked for this week. Equal to team_member_count — independent of pagination (offset/limit/sort_near_user).
top_entries:
items:
$ref: '#/components/schemas/WeeklyLeaderboardEntry'
type: array
title: Top Entries
description: Top min(6, total_users_ranked) rows by rank (ascending). Ranks are unique (ROW_NUMBER-style) with user_id ASC tiebreak.
requesting_user_entry:
anyOf:
- $ref: '#/components/schemas/WeeklyLeaderboardEntry'
- type: 'null'
description: The caller's row when they are outside the top 6; null when the caller is already in top_entries or when total_users_ranked <= 6.
type: object
required:
- week_start
- total_users_ranked
- top_entries
- requesting_user_entry
title: WeeklyLeaderboard
description: Compact leaderboard for one historical completed week.
EnterpriseSortOrder:
type: string
enum:
- asc
- desc
title: EnterpriseSortOrder
description: Sort direction for enterprise leaderboard.
EnterpriseWeeklyRanksResponse:
properties:
weekly_ranks:
items:
$ref: '#/components/schemas/WeeklyLeaderboard'
type: array
title: Weekly Ranks
description: 4 historical completed weeks of ranked leaderboards, newest first (index 0 = most recently closed week). Weeks are Sunday–Saturday UTC; a week is treated as closed after the Sunday 23:45 UTC reset_weekly_words cron. Enterprise-scoped. Current-week totals/rank are on each user's stats (words_this_week, words_this_week_rank).
type: object
required:
- weekly_ranks
title: EnterpriseWeeklyRanksResponse
description: Response model for GET /history/stats/enterprise/weekly-ranks.
AttributionPlatform:
type: string
enum:
- web
- desktop_mac
- desktop_windows
- ios
- android
title: AttributionPlatform
description: 'Valid platforms for attribution event tracking.
Desktop clients must use specific variants (DESKTOP_MAC, DESKTOP_WINDOWS).'
HistoryFeedbackRequest:
properties:
userEmail:
type: string
title: Useremail
transcriptEntityId:
type: string
title: Transcriptentityid
status:
anyOf:
- type: string
- type: 'null'
title: Status
asrText:
anyOf:
- type: string
- type: 'null'
title: Asrtext
formattedText:
anyOf:
- type: string
- type: 'null'
title: Formattedtext
serverFinalizedText:
anyOf:
- type: string
- type: 'null'
title: Serverfinalizedtext
pastedText:
anyOf:
- type: string
- type: 'null'
title: Pastedtext
feedback:
type: string
title: Feedback
audio:
anyOf:
- type: string
contentMediaType: application/octet-stream
- type: 'null'
title: Audio
logs:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
title: Logs
usedFallbackAsr:
anyOf:
- type: boolean
- type: 'null'
title: Usedfallbackasr
usedFallbackFormatting:
anyOf:
- type: boolean
- type: 'null'
title: Usedfallbackformatting
architecture:
type: string
title: Architecture
region:
type: string
title: Region
codec:
$ref: '#/components/schemas/Codec'
default: wav
platform:
$ref: '#/components/schemas/src__common__constants__Platform'
default: desktop
imageData:
anyOf:
- type: string
- type: 'null'
title: Imagedata
imageType:
anyOf:
- $ref: '#/components/schemas/ImageType'
- type: 'null'
appVersion:
anyOf:
- type: string
- type: 'null'
title: Appversion
selectedLanguages:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Selectedlanguages
type: object
required:
- userEmail
- transcriptEntityId
- feedback
title: HistoryFeedbackRequest
WeeklyLeaderboardEntry:
properties:
user_id:
type: string
title: User Id
first_name:
anyOf:
- type: string
- type: 'null'
title: First Name
last_name:
anyOf:
- type: string
- type: 'null'
title: Last Name
rank:
type: integer
title: Rank
description: 1-based rank. Unique, no ties.
total_words:
type: integer
title: Total Words
type: object
required:
- user_id
- first_name
- last_name
- rank
- total_words
title: WeeklyLeaderboardEntry
description: A single user's rank and word total for one historical week.
AllTimePodiums:
properties:
total_words:
$ref: '#/components/schemas/MetricPodium'
desktop_words:
$ref: '#/components/schemas/MetricPodium'
mobile_words:
$ref: '#/components/schemas/MetricPodium'
day_streak:
$ref: '#/components/schemas/MetricPodium'
words_per_minute:
$ref: '#/components/schemas/MetricPodium'
type: object
title: AllTimePodiums
description: Top 6 users (plus the caller) for each all-time leaderboard metric.
EnterprisePodiumsResponse:
properties:
podiums:
$ref: '#/components/schemas/LeaderboardPodiums'
description: Top 6 users for each leaderboard metric plus the caller's entry when they are outside the top 6, grouped by time window (``all_time`` with 5 categories, ``this_week`` with 3).
type: object
required:
- podiums
title: EnterprisePodiumsResponse
description: Response model for GET /history/stats/enterprise/podiums.
LeaderboardPodiums:
properties:
all_time:
$ref: '#/components/schemas/AllTimePodiums'
this_week:
$ref: '#/components/schemas/ThisWeekPodiums'
type: object
title: LeaderboardPodiums
description: Top 6 users per leaderboard category (plus the caller), split by time window.
ImageType:
type: string
enum:
- image/png
- image/jpeg
- image/bmp
- image/webp
title: ImageType
EnterpriseUsageOmit:
type: string
enum:
- apps
- daily_word_counts
title: EnterpriseUsageOmit
description: Optional sections to omit from GET /history/stats/enterprise (smaller payloads).
DailyWordCountData:
properties:
day:
type: string
title: Day
wordcount:
type: integer
title: Wordcount
type: object
required:
- day
- wordcount
title: DailyWordCountData
description: Daily word count data for usage charts
OverwriteHistoryStatsRequest:
properties:
weekStreak:
type: integer
title: Weekstreak
dayStreak:
type: integer
title: Daystreak
totalWords:
type: integer
title: Totalwords
totalDuration:
type: number
title: Totalduration
totalNonEmptyDuration:
type: number
title: Totalnonemptyduration
averageWPM:
type: number
title: Averagewpm
wordsThisWeek:
type: integer
title: Wordsthisweek
lastTranscriptTimestamp:
type: number
title: Lasttranscripttimestamp
totalApps:
items:
type: string
type: array
title: Totalapps
desktopTotalWords:
type: integer
title: Desktoptotalwords
mobileTotalWords:
type: integer
title: Mobiletotalwords
desktopTotalDuration:
type: number
title: Desktoptotalduration
mobileTotalDuration:
type: number
title: Mobiletotalduration
desktopTotalNonEmptyDuration:
type: number
title: Desktoptotalnonemptyduration
mobileTotalNonEmptyDuration:
type: number
title: Mobiletotalnonemptyduration
desktopAverageWPM:
type: number
title: Desktopaveragewpm
mobileAverageWPM:
type: number
title: Mobileaveragewpm
desktopWordsThisWeek:
type: integer
title: Desktopwordsthisweek
mobileWordsThisWeek:
type: integer
title: Mobilewordsthisweek
desktopLastTranscriptTimestamp:
type: number
title: Desktoplasttranscripttimestamp
mobileLastTranscriptTimestamp:
type: number
title: Mobilelasttranscripttimestamp
desktopTotalApps:
items:
type: string
type: array
title: Desktoptotalapps
mobileTotalApps:
items:
type: string
type: array
title: Mobiletotalapps
type: object
required:
- weekStreak
- dayStreak
- totalWords
- totalDuration
- totalNonEmptyDuration
- averageWPM
- wordsThisWeek
- lastTranscriptTimestamp
- totalApps
- desktopTotalWords
- mobileTotalWords
- desktopTotalDuration
- mobileTotalDuration
- desktopTotalNonEmptyDuration
- mobileTotalNonEmptyDuration
- desktopAverageWPM
- mobileAverageWPM
- desktopWordsThisWeek
- mobileWordsThisWeek
- desktopLastTranscriptTimestamp
- mobileLastTranscriptTimestamp
- desktopTotalApps
- mobileTotalApps
title: OverwriteHistoryStatsRequest
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
EnterpriseUsageResponse:
properties:
users:
items:
$ref: '#/components/schemas/EnrichedUserStats'
type: array
title: Users
total_count:
type: integer
title: Total Count
description: Users counted in the ranked leaderboard query (those with stats rows).
default: 0
team_member_count:
type: integer
title: Team Member Count
description: Total members on the enterprise team (roster size).
default: 0
offset:
anyOf:
- type: integer
- type: 'null'
title: Offset
description: Pagination offset when a page size was requested; null for full-roster responses.
limit:
anyOf:
- type: integer
- type: 'null'
title: Limit
description: Page size when paginated; null when the client omitted limit (full roster).
type: object
required:
- users
title: EnterpriseUsageResponse
description: Response model for enterprise usage statistics
PodiumUser:
properties:
user_id:
type: string
title: User Id
email:
anyOf:
- type: string
- type: 'null'
title: Email
first_name:
anyOf:
- type: string
- type: 'null'
title: First Name
last_name:
anyOf:
- type: string
- type: 'null'
title: Last Name
rank:
type: integer
title: Rank
description: 1-based rank within this metric's leaderboard.
value:
anyOf:
- type: integer
- type: number
title: Value
description: The user's value for this metric (e.g. word count, day streak, or words-per-minute). Integer for counts/streaks; float for WPM.
type: object
required:
- user_id
- email
- first_name
- last_name
- rank
- value
title: PodiumUser
description: A single podium entry for a specific leaderboard metric.
EnterpriseSortBy:
type: string
enum:
- total_words
- words_per_minute
- day_streak
- desktop_words
- mobile_words
- words_this_week
- desktop_words_this_week
- mobile_words_this_week
title: EnterpriseSortBy
description: Sortable metrics for enterprise leaderboard pagination.
ContextStatsResponse:
properties:
contexts:
items:
$ref: '#/components/schemas/ContextStatsItem'
type: array
title: Contexts
type: object
required:
- contexts
title: ContextStatsResponse
MetricPodium:
properties:
top_entries:
items:
$ref: '#/components/schemas/PodiumUser'
type: array
title: Top Entries
description: Top min(6, total_users_ranked) PodiumUser rows by rank (ascending).
requesting_user_entry:
anyOf:
- $ref: '#/components/schemas/PodiumUser'
- type: 'null'
description: The caller's row when they are outside the top 6; null when the caller is already in top_entries or is not ranked for this metric.
type: object
title: MetricPodium
description: Top users for one leaderboard metric, plus the caller's entry when outside the top 6.
UserStats:
properties:
total_words:
anyOf:
- type: integer
- type: 'null'
title: Total Words
default: 0
total_duration:
anyOf:
- type: number
- type: 'null'
title: Total Duration
default: 0
total_non_empty_duration:
anyOf:
- type: number
- type: 'null'
title: Total Non Empty Duration
default: 0
words_per_minute:
anyOf:
- type: number
- type: 'null'
title: Words Per Minute
default: 0
week_streak:
anyOf:
- type: integer
- type: 'null'
title: Week Streak
default: 1
day_streak:
anyOf:
- type: integer
- type: 'null'
title: Day Streak
default: 1
words_this_week:
anyOf:
- type: integer
- type: 'null'
title: Words This Week
default: 0
last_transcript_timestamp:
anyOf:
- type: string
- type: 'null'
title: Last Transcript Timestamp
desktop_total_words:
anyOf:
- type: integer
- type: 'null'
title: Desktop Total Words
default: 0
mobile_total_words:
anyOf:
- type: integer
- type: 'null'
title: Mobile Total Words
default: 0
desktop_total_duration:
anyOf:
- type: number
- type: 'null'
title: Desktop Total Duration
default: 0
mobile_total_duration:
anyOf:
- type: number
- type: 'null'
title: Mobile Total Duration
default: 0
desktop_total_non_empty_duration:
anyOf:
- type: number
- type: 'null'
title: Desktop Total Non Empty Duration
default: 0
mobile_total_non_empty_duration:
anyOf:
- type: number
- type: 'null'
title: Mobile Total Non Empty Duration
default: 0
desktop_words_per_minute:
anyOf:
- type: number
- type: 'null'
title: Desktop Words Per Minute
default: 0
mobile_words_per_minute:
anyOf:
- type: number
- type: 'null'
title: Mobile Words Per Minute
default: 0
desktop_day_streak:
anyOf:
- type: integer
- type: 'null'
title: Desktop Day Streak
default: 1
mobile_day_streak:
anyOf:
- type: integer
- type: 'null'
title: Mobile Day Streak
default: 1
desktop_week_streak:
anyOf:
- type: integer
- type: 'null'
title: Desktop Week Streak
default: 1
mobile_week_streak:
anyOf:
- type: integer
- type: 'null'
title: Mobile Week Streak
default: 1
desktop_words_this_week:
anyOf:
- type: integer
- type: 'null'
title: Desktop Words This Week
default: 0
mobile_words_this_week:
anyOf:
- type: integer
- type: 'null'
title: Mobile Words This Week
default: 0
desktop_last_transcript_timestamp:
anyOf:
- type: string
- type: 'null'
title: Desktop Last Transcript Timestamp
mobile_last_transcript_timestamp:
anyOf:
- type: string
- type: 'null'
title: Mobile Last Transcript Timestamp
total_apps:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Total Apps
desktop_total_apps:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Desktop Total Apps
mobile_total_apps:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mobile Total Apps
first_weekly_limit_hit_at:
anyOf:
- type: integer
format: int64
- type: 'null'
title: First Weekly Limit Hit At
description: Unix epoch timestamp of the first time the user crossed the weekly soft cap.
total_words_rank:
anyOf:
- type: integer
- type: 'null'
title: Total Words Rank
desktop_words_rank:
anyOf:
- type: integer
- type: 'null'
title: Desktop Words Rank
mobile_words_rank:
anyOf:
- type: integer
- type: 'null'
title: Mobile Words Rank
words_per_minute_rank:
anyOf:
- type: integer
- type: 'null'
title: Words Per Minute Rank
day_streak_rank:
anyOf:
- type: integer
- type: 'null'
title: Day Streak Rank
words_this_week_rank:
anyOf:
- type: integer
- type: 'null'
title: Words This Week Rank
desktop_words_this_week_rank:
anyOf:
- type: integer
- type: 'null'
title: Desktop Words This Week Rank
mobile_words_this_week_rank:
anyOf:
- type: integer
- type: 'null'
title: Mobile Words This Week Rank
words_this_week_rank_change:
anyOf:
- type: integer
- type: 'null'
title: Words This Week Rank Change
type: object
title: UserStats
src__common__constants__Platform:
type: string
enum:
- desktop
- ios
- android
title: Platform
ContextStatsItem:
properties:
domain:
type: string
title: Domain
total_words:
type: integer
title: Total Words
first_dictation_at:
anyOf:
- type: string
- type: 'null'
title: First Dictation At
last_dictation_at:
anyOf:
- type: string
- type: 'null'
title: Last Dictation At
type: object
required:
- domain
- total_words
title: ContextStatsItem
Record:
properties:
transcriptEntityId:
type: string
title: Transcriptentityid
asrText:
anyOf:
- type: string
- type: 'null'
title: Asrtext
formattedText:
anyOf:
- type: string
- type: 'null'
title: Formattedtext
serverFinalizedText:
anyOf:
- type: string
- type: 'null'
title: Serverfinalizedtext
pastedText:
anyOf:
- type: string
- type: 'null'
title: Pastedtext
formattingDivergenceScore:
anyOf:
- type: number
- type: 'null'
title: Formattingdivergencescore
textboxConte
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wispr-ai/refs/heads/main/openapi/wispr-ai-history-api-openapi.yml