The Async Video URL API allows you to process a mp4 video and return the full text transcript along with conversational insights.

It can be utilized for any use case where you have access to recorded video stored publicly as URL and want to extract insights and other conversational attributes supported by Symbl's Conversation API.


The URL provided must be a publicly available URL. Currently we do not any support any redirected links, shortened links (e.g., YouTube, Vimeo, or links from any audio/video platforms.


This API supports only mp4 file formats video. If you have any other type of file, you need to first convert the file to the supported format in order to use the API.



Example API call#

curl --location --request POST '<your_webhook_url>&entities= [{"customType": "Custom_Entity_Type", "text": "Custom Entity to be searched in transcript"}]' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <generated_valid_token>' \
--data-raw '{
"url": "",
"confidenceThreshold": 0.6,
"timezoneOffset": 0

Request Headers#

Header NameRequiredValue
Content-TypeYesAccepted value application/json

Request Body#

urlYesA valid url string. The URL must be a publicly accessible url.
customVocabularyNoContains a list of words and phrases that provide hints to the speech recognition task.
confidenceThresholdNoMinimum required confidence for the insight to be recognized. The range is from 0.0 to 1.0 . Default value 0.5 .
detectPhrasesNoIt shows Actionable Phrases in each sentence of conversation. These sentences can be found using the Conversation's Messages API. Accepts true or false.
nameNoYour meeting name. Default name set to conversationId.
webhookUrlNoWebhook url on which job updates to be sent. (This should be post API)
entitiesNoInput custom entities which can be detected in your conversation using Entities' API. For example, check the sample code on right.
languageCodeNoWe accept different languages. Please check language Code as per your requirement.

webhookUrl will be used to send the status of job created for uploaded video url. Every time the status of the job changes it will be notified on the WebhookUrl

Webhook Payload#

jobIdID to be used with Job API.
statusCurrent status of the job. (Valid statuses - [ scheduled, in_progress, completed, failed ])


"conversationId": "5815170693595136",
"jobId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"

Response Object#

conversationIdID to be used with Conversation API
jobIdID to be used with Job API.

Response on reaching limit#

Payload{ "message" : "This API has a limit of maximum of 5 number of concurrent jobs per account. If you are looking to scale, and need more concurrent jobs than this limit, please contact us at" }
Header{ "statusCode" : 429 }