Artificial Intelligence · Beta
Verbit
API integration
Ship Artificial Intelligence features without building the integration. Full Verbit API access via Proxy and 40+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Verbit
Common scenarios for SaaS companies building Verbit integrations for their customers.
Add ADA-compliant captioning to your video platform
Video hosting, LMS, and content platforms can offer end-users native transcription and closed captioning without building an ASR pipeline. Truto handles the Verbit auth and API mechanics so you ship accessibility features in days, not quarters.
Power live-captioned webinars and virtual events
Event and webinar platforms can programmatically book live captioners, stream real-time captions into their player, and extend sessions when broadcasts run long. Give enterprise customers FCC/ADA-ready live events out of the box.
Deliver certified transcripts inside legal case workflows
LegalTech and deposition software can push secure audio to Verbit, request verbatim human-reviewed transcripts, and pull certified PDF/DOCX deliveries back into the case file — all without exposing users to Verbit's UI.
Turn long-form video into AI study guides and chapters
EdTech and corporate learning products can auto-generate summaries, chapters, and keywords from lecture recordings using Verbit's Gen V insights, making every uploaded video searchable and study-ready.
Embed interactive transcript players without frontend work
Media and knowledge-base platforms can drop Verbit's Smart Player into their UI to give users clickable, searchable transcripts synced to playback — offered as a premium tier to their customers.
What You Can Build
Ship these features with Truto + Verbit
Concrete product features your team can ship faster by leveraging Truto’s Verbit integration instead of building from scratch.
Automated post-upload transcription pipeline
When a user uploads media, create a Verbit job, attach the media, trigger transcription, and pull the finished transcript back into your app automatically.
Live captioning session controller
Book live captioning orders, manage upstream feeds, adjust caption placement, extend runtime, and end sessions programmatically from your event scheduler.
Transcription tier selector for end users
Surface Verbit profiles (AI-only, AI + human review, verbatim legal) inside your product so customers can pick accuracy vs. cost per job.
Multi-format transcript export
Let users request deliveries in SRT, VTT, PDF, or DOCX and attach the finished files directly to records in your platform.
Embedded Smart Player with synced transcript
Fetch Verbit's widget code or offline widget for a completed job and render an interactive, searchable transcript player inside your UI.
AI insights and chapter generation
Trigger Gen V insights on completed transcripts to surface auto-generated summaries, keywords, and chapters as a premium content feature.
SuperAI
Verbit AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_verbit_insights
List Verbit AI insights for a specific job, supporting both live sessions and post-production jobs. Returns: uuid, url, fields. One of job_id, job_uuid, or order_id must be provided.
verbit_insights_generate
Generate Verbit AI insights for a job based on the job's insights configuration. Returns: ErrorType, ErrorComment. Required: insights. One of job_id, job_uuid, or order_id must be provided.
list_all_verbit_orders
List Verbit orders filtered by various criteria including search text, order type, status, recurrence, and dates. Returns: id, category_id, short_id, name, client_transaction_id, status, internal_status, last_updated_at, input, output, po_number, cost_center, service_type, settings, contact_details, request_origin, attachments, created_by, container, groups, created_at, verbitext_group_id,…
create_a_verbit_order
Create a new live order in Verbit. Returns the created order including id, name, status, internal_status, input, output, and created_at. Required: name, client_transaction_id, input, output. Start time must be in the future.
get_single_verbit_order_by_id
Get a single Verbit order by id. Returns: id, created_at, uuid, url, fields. Required: id.
update_a_verbit_order_by_id
Update an existing Verbit order by id, modifying fields such as name, status, input, settings, contact details, and attachments. Returns the updated order object including id, name, status, internal_status, input, output, and created_at. Required: id.
verbit_orders_get_transcript
Get the transcript for a specific Verbit order. Returns: link, is_verbitext_available, series_link, audio_recording_link, uuid, url, fields. Required: order_id.
verbit_orders_update_status
Update the status of a Verbit order — primarily used to cancel an order. Returns the updated order object including id, name, status, and created_at. Required: order_id, name. Status can only be updated to canceled; cancellations only affect orders in created, pending_approval, pending_execution, ready_to_connect, or execution_error status.
verbit_orders_bulk_update
Bulk update multiple Verbit orders by sending a JSON array of order objects. Returns: orders, uuid, url, fields. Required: client_transaction_id per order. Status can only be updated to canceled; updates must be made at least 5 hours (Captivate) or 24 hours (Human tier) before event start.
update_a_verbit_recurrence_by_id
Update a Verbit recurrence order by id, modifying details such as name, input, settings, and contact information. Returns the updated order including id, name, status, internal_status, input, output, settings, contact_details, groups, and created_at. Required: id. The recurrence parameter defaults to 'future', which requires order_id.
verbit_recurrences_cancel
Cancel orders in a Verbit recurring event series by recurrence id. Returns the order object including id, name, status, internal_status, created_at, input, output, and groups with recurrence rules. Required: recurrence_id. Orders can only be canceled in created, pending_approval, pending_execution, ready_to_connect, or execution_error status.
create_a_verbit_delivery
Create a download request for Verbit captioning/transcription files. Returns the delivery object including its id, order_ids, formats, status, and download url. Required: order_ids, formats. The delivery status is automatically set to pending on creation.
get_single_verbit_delivery_by_id
Get a Verbit download delivery by id. Returns the delivery object including its id, order_ids, formats, languages, status, and download url. Required: id.
verbit_deliveries_get_status
Get the status of a Verbit download delivery by delivery_id. Returns: status, uuid, url, fields. Required: delivery_id.
verbit_uploads_get_presigned_url
Get a presigned URL for uploading attachments to Verbit. Returns: uuid, url, fields. Required: file_name.
list_all_verbit_jobs
List Verbit jobs with optional filtering by external_id, profile, job_name, language, label, and permission. Returns: id, category_id, short_id, name, client_transaction_id, status, internal_status, last_updated_at, input, output, po_number, cost_center, service_type, settings, contact_details, request_origin, attachments, created_by, container, groups, created_at, verbitext_group_id, editor_ids,…
create_a_verbit_job
Create a new transcription job in Verbit by specifying an API version and a transcription profile. Returns a 201 success response. Required: v, profile. Optional parameters include job_name, language, dynamic_dictionary, permissions, labels, job_metadata, translation settings, and order_details.
verbit_jobs_add_asset
Add an asset file to a Verbit transcription job. Returns a 200 success response. Required: v, job_id.
verbit_jobs_add_media
Add media to a Verbit transcription job via a direct media URL or previously uploaded asset IDs. Returns a 200 success response. Required: v, job_id, media_url. Media URLs must be GET-accessible for at least 24 hours; merge_assets requires at least two asset_ids.
verbit_jobs_add_backup_record
Add a backup record to a Verbit job by linking a previously uploaded asset to an existing transcription job. Returns a 200 success response. Required: v, job_id, asset_id.
verbit_jobs_add_notes_attachments
Add notes or attachments to a Verbit transcription job by URL or asset ID. Returns an empty 200 response on success. Required: v, job_id. One of notes_attachment_url or asset_ids must be provided (mutually exclusive).
verbit_jobs_add_transcription
Add existing transcription text or a transcription URL to a Verbit job. Returns an empty 200 response on success. Required: v, job_id. One of transcription_text or transcription_url must be provided (mutually exclusive).
verbit_jobs_perform_transcription
Start transcription processing for a Verbit job, initiating ASR and human review. Returns an empty 200 response on success. Required: v, job_id.
verbit_jobs_get_info
Get information and status for a specific Verbit job. Returns: job_id, external_id, status, draft_ready. Required: v, job_id.
verbit_jobs_get_draft
Download the draft transcription for a Verbit job in the requested caption format. Returns the draft content as a file (srt, web_vtt, sami, txt, docx, or pdf). Required: v, job_id.
verbit_jobs_get_caption
Download a transcription or caption file for a Verbit job. Returns: caption. Required: v, job_id.
verbit_jobs_get_keywords
Get keywords associated with a Verbit job. Returns: keywords. Required: v, job_id.
verbit_jobs_get_widget_code
Get embeddable HTML widget code for a Verbit job's transcription viewer, synced with a media player. Returns: widget_code. Required: v, job_id. Either player_id or media_url must be provided, but not both.
verbit_jobs_get_offline_widget
Get the offline widget for a Verbit transcription job by job_id. Returns: widget. Required: v, job_id.
verbit_jobs_request_review
Request a review for a Verbit transcription job by job_id. Returns: status, ErrorType, ErrorComment. Required: v, job_id.
verbit_jobs_request_upload_url
Request a direct upload URL for a media file associated with a Verbit job. Returns a 200 success response with no documented response body fields. Required: v, job_id, file_name.
verbit_jobs_create_smart_player
Create a Smart Player for a Verbit job. Returns a 200 success response with no documented response body fields. Required: v, job_id, video_url, title.
verbit_jobs_get_smart_player
Get the Smart Player configuration for a Verbit job. Returns: job_id, video_url, title, description, credits, thumbnail_url, favicon. Required: v, job_id.
verbit_jobs_bulk_update
Update the Smart Player configuration for a Verbit job. Returns: job_id, video_url, title, description, credits, thumbnail_url, favicon. Required: v, job_id, video_url, title.
list_all_verbit_profiles
List Verbit profiles available for transcription job configuration. Profiles are referenced by name when creating or filtering jobs. Returns: id, name. Required: v.
list_all_verbit_users
List users in Verbit. Returns a collection of user objects including id and email.
get_single_verbit_user_by_id
Get a single Verbit user by id. Returns the user object including id and email. Required: id.
verbit_users_find_by_email
Find a Verbit user by email address. Returns the matching user object including id and email. Required: email.
get_single_verbit_session_by_id
Get details for a specific Verbit live session by id. Returns the full session order object including id, name, status, internal_status, input, output, contact_details, settings, and created_at. Required: id.
verbit_sessions_set_upstream
Set the upstream state for a Verbit live session, controlling whether the audio/video source is blocked or passed through. Returns an empty 200 response on success. Required: order_id, upstream.
verbit_sessions_set_caption_placement
Set the caption placement position for a Verbit live session. Returns an empty 200 response on success. Required: order_id, caption_placement.
verbit_sessions_end
End a Verbit live session immediately by order id. Returns an empty 200 response on success. Required: order_id.
verbit_sessions_get_max_extend_time
Get the maximum extend time available for a Verbit live session by order id. Returns the session order object including id, name, status, input, output, and created_at. Required: order_id.
verbit_sessions_extend
Extend a Verbit realtime session's duration to a specified end time. Returns: ErrorType, ErrorComment. Required: order_id (UUID), end_time (ISO 8601 UTC).
verbit_sessions_change_connection_plan
Change the connection plan template for a Verbit realtime session. Returns: ErrorType, ErrorComment. Required: order_id, connection_plan_id.
create_a_verbit_auth_token
Acquire a JWT bearer token for authenticating Verbit API calls by submitting the integration's configured API key. Returns: token, ErrorType, ErrorComment. The bearer token expires 24 hours after creation.
Why Truto
Why use Truto’s MCP server for Verbit
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Verbit in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Verbit account
Use Truto’s frontend SDK to connect your customer’s Verbit account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Verbit
Truto’s Proxy API is a 1-to-1 mapping of the Verbit API. You call us, we call Verbit, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Verbit’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Verbit on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How is authentication handled with Verbit through Truto?
Truto manages Verbit API credentials on behalf of your end users through Integrated Accounts. Your users connect their Verbit account once, and Truto handles token storage, refresh, and injection into every request — you never touch raw credentials.
Can we upload large media files directly to Verbit?
Yes. Use verbit_uploads_get_presigned_url or verbit_jobs_request_upload_url to obtain a signed URL, then stream the file directly to Verbit's storage without proxying bytes through your backend.
Does the integration support both asynchronous transcription and live captioning?
Yes. Asynchronous workflows use Jobs (create_a_verbit_job, verbit_jobs_perform_transcription), while live captioning uses Orders and Sessions (create_a_verbit_order, verbit_sessions_extend, verbit_sessions_end) for real-time control.
How do we know when a transcript is ready?
You can poll job status with verbit_jobs_get_info or check delivery status with verbit_deliveries_get_status. For push-based updates, Truto can also relay Verbit webhooks to your endpoints where supported.
What transcript output formats are supported?
Through create_a_verbit_delivery, you can request transcripts in SRT, VTT, PDF, and DOCX. You can also fetch drafts, captions, and keywords directly via verbit_jobs_get_draft, verbit_jobs_get_caption, and verbit_jobs_get_keywords.
Can end users choose different accuracy tiers?
Yes. Use list_all_verbit_profiles to fetch the transcription profiles enabled on the connected Verbit account (e.g., AI-only, AI + human review, verbatim legal) and pass the selected profile when creating a job or order.
Can we bulk-update jobs or orders?
Yes. verbit_jobs_bulk_update and verbit_orders_bulk_update let you modify multiple records in a single call, which is useful for reassigning profiles, updating metadata, or changing status across a batch.
From the Blog
Verbit integration guides
Deep dives, architecture guides, and practical tutorials for building Verbit integrations.
Verbit
Get Verbit integrated into your app
Our team understands what it takes to make a Verbit integration successful. A short, crisp 30 minute call with folks who understand the problem.