Skip to main content

POST Text API


The Async Text API allows you to process any text payload. This API is useful for when you want to extract Conversation Insights from textual content.

API Endpoint#

POST https://api.symbl.ai/v1/process/text

Example API Call#

Before using the Async Text API you must get the authentication token (AUTH_TOKEN) from our authentication process.

curl --location --request POST 'https://api.symbl.ai/v1/process/text' \
--header "Authorization: Bearer $AUTH_TOKEN" \
# Set your access token here. See https://docs.symbl.ai/docs/developer-tools/authentication
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Business Meeting",
"detectPhrases": "True",
"confidenceThreshold": 0.6,
"messages": [
{
"duration": {
"startTime": "2020-07-21T16:04:19.99Z",
"endTime": "2020-07-21T16:04:20.99Z"
},
"payload": {
"content": "Hello. So this is a live demo that we are trying to give very we are going to show how the platform detects various insights can do transcription in real-time and also the different topics of discussions, which would be generated after the call is over, and they will be an email that will be sent to the inbox. So that is the idea. So I am going to do a quick conversation. I would say where I will demonstrate all of this great catching up. Thanks for calling good to hear. From you. And I would love to hear more about what you have to offer? I will set up a time and appointment probably sometime tomorrow evening where we can go over the documents that you are providing. I love all the plants. I just need to discuss with my family in terms of which one will we go forward with it? It very excited to hear from you and the discount and look forward to talking sharply. I have a quick question though. Is there basically website? Where I can go to and look at all these details myself. It will be very helpful. Can you also share the quotation to me on email so that I can go ahead and talk about it with my other kind of folks in the family? Thanks a lot. Thanks for calling good catching up. Talk soon.",
"contentType": "text/plain"
},
"from": {
"name": "John",
"userId": "john@example.com"
}
}
]
}'

Request Headers#

Header NameRequiredDescription
AuthorizationMandatoryBearer <token> The token you get from our authentication process.
Content-Type Mandatoryapplication/json
x-api-keyOptionalDEPRECATED. The JWT token you get from our authentication process.

Request Body#

{
"name": "Afternoon Business Meeting",
"detectPhrases": true,
"confidenceThreshold": 0.6,
"entities": [
{
"customType": "Company Executives",
"value": "Marketing director",
"text": "Marketing director"
}
],
"detectEntities": true,
"messages": [],
"trackers": [
{
"name": "Promotion Mention",
"vocabulary": [
"We have a special promotion going on if you book this before",
"I can offer you a discount of 10 20 percent you being a new customer for us",
"We have our month special this month",
"We have a sale right now on"
]
}
]
}

Request Body Parameters#

FieldRequiredTypeDescription
nameOptionalStringYour meeting name. Default name set to conversationId.
detectPhrasesOptionalBooleanIt shows Actionable Phrases in each sentence of conversation. These sentences can be found using the Conversation's Messages API. Default value is false.
confidenceThresholdOptionalDoubleMinimum confidence score that you can set for an API to consider it as a valid insight (action items, follow-ups, topics, and questions). It should be in the range <=0.5 to <=1.0 (i.e., greater than or equal to 0.5 and less than or equal to 1.0.). The default value is 0.5.
entitiesOptionalListInput custom entities which can be detected in conversation using Entities API.
detectEntitiesOptionalBooleanDefault value is false. If not set the Entities API will not return any entities from the conversation.
messagesMandatorylistInput Messages to look for insights. See the messages section below for more details.
trackers BETA OptionalListA tracker entity containing name and vocabulary (a list of key words and/or phrases to be tracked). Read more in the Tracker API section.
enableAllTrackers BETA OptionalBooleanDefault value is false. Setting this parameter to true will enable detection of all the Trackers maintained for your account by the Management API. This will allow Symbl to detect all the available Trackers in a specific Conversation. Learn about this parameter here.
enableSummary LABS OptionalBooleanSetting this parameter to true allows you to generate Summaries using Summary API (Labs). Ensure that you use https://api-labs.symbl.ai as the base URL.
webhookUrlOptionalStringWebhook URL on which job updates to be sent. This should be after making the API request. See the Webhook section for more.

messages#

FieldRequiredTypeDescription
payloadYesObjectInput Messages to look for insights. See the payload section below for more details.
fromNoObjectInformation about the User information produced the content of this message.
durationNoObjectDuration object containing startTime and endTime for the transcript.
{
"messages": [{
"payload": {
"content": "Hi Mike, Natalia here. Hope you don’t mind me reaching out. Who would be the best possible person to discuss internships and student recruitment at ABC Corp? Would you mind pointing me toward the right person and the best way to reach them? Thanks in advance for your help, I really appreciate it!"
},
"from": {
"userId": "natalia@example.com",
"name": "Natalia"
},
"duration":{
"startTime":"2020-07-21T16:02:19.01Z",
"endTime":"2020-07-21T16:04:19.99Z"
}
}, {
"payload": {
"content": "Hey Natalia, thanks for reaching out. I am connecting you with Steve who handles recruitements for us."
},
"from": {
"userId": "mike@abccorp.com",
"name": "Mike"
},
"duration":{
"startTime":"2020-07-21T16:04:19.99Z",
"endTime":"2020-07-21T16:04:20.99Z"
}
}]
}

payload#

FieldRequiredTypeDefaultDescription
contentMandatoryStringThe text content that you want the API to parse.
{
"payload": {
"content": "Hi Mike, Natalia here. Hope you don’t mind me reaching out. Who would be the best possible person to discuss internships and student recruitment at ABC Corp? Would you mind pointing me toward the right person and the best way to reach them? Thanks in advance for your help, I really appreciate it!"
}
}

from(user)#

FieldRequiredTypeDescription
nameOptionalStringName of the user.
userIdOptionalStringA unique identifier of the user. E-mail ID is usually a preferred identifier for the user.
{
"from": {
"userId": "mike@abccorp.com",
"name": "Mike"
}
}

duration#

FieldRequiredTypeDescription
startTimeOptionalDateTimeThe start time for the particular text content.
endTimeOptionalDateTimeThe end time for the particular text content.
{
"duration": {
"startTime":"2020-07-21T16:04:19.99Z",
"endTime":"2020-07-21T16:04:20.99Z"
}
}

webhookUrl#

WebhookUrl will be used to send the status of job created. Every time the status of the job changes it will be notified on the WebhookUrl.

{
"jobId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "in_progress"
}
FieldDescription
jobIdID to be used with Job API.
statusCurrent status of the job. Valid statuses: [ scheduled, in_progress, completed ].

Response#

{
"conversationId": "5815170693595136",
"jobId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
}
FieldDescription
conversationIdID to be used with Conversation API.
jobIdID to be used with Job API.

API Limit Error#

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

Here value of X can be found in FAQ.

caution

You must wait for the job to complete processing before you proceed with getting the Conversation Intelligence. If you immediately make a GET request to Conversation API, it is possible that you'll receive incomplete insights. Therefore, ensure that you wait for the job to complete.