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.

Authentication​

Before using this API, you must generate your authentication token (AUTH_TOKEN). To learn how to get the authentication token, see the Authentication page.

API Endpoint​

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

Example API Call​

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​

ParameterDescription
nameString, optional

Your meeting name. Default name set to conversationId.

Example: name: "Sales call", name: "Customer call".
detectPhrasesBoolean, optional

It shows Actionable Phrases in each sentence of conversation. These sentences can be found using the Conversation's Messages API. Default value is false.

Example: "detectPhrases": true
confidenceThresholdDouble, optional

Minimum 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.

Example: "confidenceThreshold": 0.6
entitiesObject, optional

Input custom entities which can be detected in conversation using Entities API.

Example: "entities": "customType": "Company Executives", "value": "Marketing director", "text": "Marketing director"
detectEntitiesBoolean, optional

Default value is false. If not set the Entities API will not return any entities from the conversation.

Example: "detectEntities": true
messagesList, mandatory

Input Messages to look for insights. See the messages section below for more details.

Example: "messages": "payload": "content": "Hi Mike, Natalia here..."
trackers BETA List, optional

A tracker entity containing name and vocabulary (a list of key words and/or phrases to be tracked). Read more in the Tracker API section.

Example: "trackers": "name": "Promotion Mention", "vocabulary": "We have a special promotion going on if you book this before"
enableAllTrackers BETA Boolean, optional

Default 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.

Example: "enableAllTrackers": true
enableSummary ALPHA Boolean, optional

Setting this parameter to true allows you to generate Summaries using Summary API. Ensure that you use https://api.symbl.ai/ as the base URL.

Example: "enableSummary": true
webhookUrlString, optional

The URL where Symbl sends an HTTP request to your application when the job status is updated. See the Webhook section for more.

Example: """jobId"": ""9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"", ""status"": ""in_progress"""

messages​

FieldDescription
payloadObject, mandatory

Input Messages to look for insights. See the payload section below for more details.
fromObject, optional

Information about the User information produced the content of this message.
durationObject, optional

Duration 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 recruitments 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​

FieldDescription
contentString, mandatory

The 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)​

FieldDescription
nameString, optional

Name of the user.
userIdString, optional

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

duration​

FieldDescription
startTimeDateTime, optional

The start time for the particular text content.
endTimeDateTime, optional

The 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, failed ])

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.