Cognitive Search API

Cognitive Search API makes it possible for the system to read, infer meaning, and deliver precise answers from large sets of documents with high accuracy.

Uploading Q&A and Documents

Please sign up and sign in to the Alli dashboard first. You must select 'Cognitive Search' for the Project Type when you sign up. Go to the Q&A tab on the dashboard to upload question-answer pairs. If you want to upload unstructured text data such as Word, PDF, Powerpoint, and Excel file, go to the Documents tab in the dashboard and upload the documents.

If you want to automatically sync with your data source, such as MS OneDrive, please go to the Source tab. Uploading the document via API is in the Upload Document section in this page.

Getting the API KEY

Please provide your API key in the request header API-KEY. Your API key can be found in your dashboard Settings menu, under the General tab.

Providing Agent or User Information

For certain endpoints, you can add agent or user information in the request header to specify who makes the call.

Agent information can be provided in the request header AGENT-EMAIL. You can find your agents' email information in your dashboard Settings > Agent menu. Below is an example.

-H 'AGENT-EMAIL: [email protected]'

A user ID can be provided in the request header OWN-USER-ID. The user ID can be either a new one or an existing one, and if a new user ID is provided, Alli will create a new user with that ID. Any future API calls with the same OWN-USER-ID header will be considered as they're from the same user.

If you want to update the user's email address at the same time, you can provide the email address in the request header USER-EMAIL. Below is an example.

-H 'OWN-USER-ID: 5f1234567a409876c082487z' \
-H 'USER-EMAIL: [email protected]'

You cannot use non-ASCII characters for OWN-USER-ID. If the user ID includes any non-ASCII characters, you can encode the ID to base64 and use base64:CONVERTED_ID.

You can find saved user ID and email information in your Alli dashboard Customers menu.

Error Messages

Please read the error message you get if you don't get the response that you expected. For example, if you don't use the right HTTP method for the API, you'll get this type of error as response:

{“error”: “Method Not Allowed POST: /webapi/faq_feedbacks”}

post
Search from Q&A

https://backend.alli.ai/webapi/faq
This API lets you find the most relevant question and answer pairs from your Q&A knowledge base.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
OWN-USER-ID
optional
string
If you want to specify a user who makes this API call, you can provide the user's ID here. It can be a new one or be found in the Conversations menu in your dashboard.
USER-EMAIL
optional
string
If you want to update the user's email when using OWN-USER-ID, you can provide the new email address here.
Body Parameters
autoRegisterCandidates
optional
boolean
The default value is true. When this option has set false, it'll not automatically register the query to candidates when there was no answer for the given query.
hashtagsOperator
optional
string
Either AND or OR. Choose AND if you want each returned result to contain all hashtags. Choose OR if you want each returned result to contain at least one of the hashtags.
hashtags
optional
array
An array of all the hashtags that you would like to appear.
maxResults
optional
integer
The maximum number of results to be returned.
query
required
string
This is a query string.
format
optional
string
html or text. If it's text, the return value will be in plain text. If it's html, it will return html. If your answer contains styled html, such as different font size and color, you can use html. If you simply want to get an answer as a text, you can use the text. The default value is html.
Response
200: OK
The API will find the most relevant question and answers from your Q&A database. confidence: It shows the confidence value from AI model. Shown as a number value between 0 and 1. effectiveConfidence: When you provide feedback to the query result, it automatically trains the AI model. Effective confidence is the adjusted score with these users' and agents' feedback. Shown as a number value between 0 and 1. question: This is the question part of the selected Q&A pair. answer: This is the answer part of the selected Q&A pair. id: This is used to identify the result to give or cancel feedback. hashtags: Hashtags registered for the Q&A. lastUpdatedDate: The date when the Q&A is last updated. agentFeedback: The feedback from agents (through dashboard and REST calls) about this Q&A. userFeedback: The feedback from users (through conversation) about this Q&A. count: The number of suggested Q&As. hashId: This hash id is being used when you call select_answer later. The number of search results and the threshold follows your dashboard setting. Please check your settings in Q&A > Settings.
{"result":
[
{
"confidence": CONFIDENCE_VALUE,
"effectiveConfidence": EFFECTIVE_CONFIDENCE_VALUE,
"question": "QUESTION_1",
"answer": "ANSWER_1",
"id": "ID_1",
"hashtags": [],
"lastUpdatedDate": "DATE",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}, ...
],
"count": 3,
"hashId": "HASH_ID"
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section.

curl -d '{
"query": "How much is it?",
"maxResults": 3,
"hashtags": ["wiki", "knowledge"],
"hashtagsOperator": "OR",
"format": "text"}' \
-H 'API-KEY: YOUR API KEY' \
-H 'Content-Type: application/json' \
https://backend.alli.ai/webapi/faq

Response Example

{"result":
[
{
"confidence": 0.8371959004827834,
"effectiveConfidence": 0.9698303406362148,
"question": "How is the product priced?",
"answer": "We have a pricing table that includes a free plan.",
"id": "ClMVIjCoNDAiZDLyNWZhM1O3YTUIIKZjPPRcER==",
"hashtags": [],
"lastUpdatedDate": "2020-11-19",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
},
{
"confidence": 0.6119840535714456,
"effectiveConfidence": 0.7738889000171243,
"question": "Do you have a pricing table?",
"answer": "Yes we do. Please check out our website",
"id": "RkFROjVmNDAwZDMyNWZhM2Y4YTA1ZDZjNWUwMQ==",
"hashtags": [],
"lastUpdatedDate": "2020-11-20",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
],
"count": 2,
"hashId": "d4ca12d4e64766er0c2b45f4aa5463a4"
}

post
Search from Documents

https://backend.alli.ai/webapi/mrc
Documents API finds an answer from your unstructured text documents and even from complex tables.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
OWN-USER-ID
optional
string
If you want to specify a user who makes this API call, you can provide the user's ID here. It can be a new one or be found in the Conversations menu in your dashboard.
USER-EMAIL
optional
string
If you want to update the user's email when using OWN-USER-ID, you can provide the new email address here.
Body Parameters
returnPreview
optional
boolean
If true, the html body and css will be returned for each search result. The default value is false.
autoRegisterCandidates
optional
boolean
The default value is true. When this option has set false, it'll not automatically register the query to candidates when there was no answer for the given query.
hashtagsOperator
optional
string
Either AND or OR. Choose AND if you want each returned result's document to have all of the specified hashtags. Choose OR if you want each returned result's document to have at least one of the specified hashtag.
maxResults
optional
integer
Number of results to see
query
required
string
This is a query string.
hashtags
optional
array
Documents you uploaded to the dashboard have hashtags. You can set the search scope to these hash-tagged documents.
format
optional
string
It can be 'html' or 'text'. If it's text, the return value will be in plain text. If it's html, it will return html. If your answer contains styled html, such as different font size and color, you can use html. If you simply want to get an answer as a text, you can use the text.
Response
200: OK
You will get the result as the following JSON format. answer: It's the answer extracted from uploaded documents in the dashboard. answerHash: This is used to identify the answer to give or cancel feedback. confidence: It shows the confidence value from AI model. Shown as a number value between 0 and 1. effectiveConfidence: When you provide feedback to the query result, it automatically trains the AI model. Effective confidence is the adjusted score with these users' and agents' feedback. Shown as a number value between 0 and 1. documentId: The document's ID where the answer is extracted from. documentName: The document's name where the answer is extracted from. hashtags: The hashtags attached to the document. pageNo: The page number in the document where the answer was derived. agentFeedback: createdDate: The date when the document was uploaded. agentFeedback: The feedback from agents (through dashboard and REST calls) about this document userFeedback: The feedback from users about this document The number of search results and the threshold follows your dashboard setting. Please check your setting in Documents > Settings. body: If returnPreview is true in the request, the html body of the document search preview is displayed. css: If returnPreview is true in the request, the css of the document search preview is displayed.
{
"result": [
{
"answer": "ANSWER_1",
"answerHash": "ANSWER_HASH_1",
"confidence": CONFIDENCE_1,
"effectiveConfidence": EFFECTIVE_CONFIDENCE_1,
"documentId": "DOCUMENT_ID_1",
"documentName": "DOCUMENT_NAME_1",
"hashtags": [],
"pageNo": PAGE_NUMBER,
"createdDate": "DATE",
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"body": "PREVIEW_HTML_BODY",
"css": "PREVIEW_CSS"
}
]
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section.

curl -d '{
"query": "can I disclose the composite ratings?",
"maxResults": 3,
"hashtags": ["wiki", "knowledge"],
"hashtagsOperator": "OR",
"format": "text",
"returnPreview: true}' \
-H 'API-KEY: YOUR API KEY' \
-H 'Content-Type: application/json' \
https://backend.alli.ai/webapi/mrc

Response Example

{
"count": 2,
"result": [
{
"answer": "an institution’s board of directors and senior management",
"answerHash": "8430cf3b9af628abc1bb063802db39be",
"confidence": 0.9998937845230103,
"effectiveConfidence": 1,
"documentId": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
"documentName": "Policy document 1.docx",
"hashtags": [
"hashtag1",
"hashtag2"
],
"pageNo": 5,
"createdDate": "2020-11-18",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"body": "PREVIEW_HTML_BODY1",
"css": "PREVIEW_CSS1"
},
{
"answer": "banks cannot, except in very limited circumstances",
"answerHash": "d849a49662a4f21df51de24d06196547",
"confidence": 0.9998629689216614,
"effectiveConfidence": 0.9998629689216614,
"documentId": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
"documentName": "Bank policy 2020.pdf",
"hashtags": [
"hashtag1",
"hashtag2"
],
"pageNo": 220,
"createdDate": "2020-11-18",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"body": "PREVIEW_HTML_BODY2",
"css": "PREVIEW_CSS2"
}
]
}

get
Get Single Q&A

https://backend.alli.ai/webapi/single_faq
This is the method to get all the details of a single Q&A.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
id
required
string
The id of the FAQ you are looking for.
format
optional
string
The format of the answer value for this FAQ. Default is HTML.
Response
200: OK
Includes fields: question: The question associated with the Q&A. answer : The answer to the question. id: The id of this Q&A. userFeedback: The feedback from users (through conversation) about this Q&A. agentFeedback: The feedback from agents (through dashboard and REST calls) about this Q&A. lastUpdatedDate, createdDate: The date when the Q&A was updated / first created. hashtags: All hashtags associated with this question.
{
"result": {
"question": "Who is there?",
"answer": "Elmo",
"id": "RkFROjYwMmY2ZTQ0YWZmMWQ5YmQ0NmM5Y2VkNw==",
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 1
},
"lastUpdatedDate": "2021-02-19",
"createdDate": "2021-02-19",
"hashtags": []
}
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section to get the api key.

curl -X GET \
-d '{"id": "iuHjHBhjHGbhjm==", "format": "text"}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/single_faq

Response Example

{
"result": {
"question": "Who is there?",
"answer": "Elmo",
"id": "RkFROjYwMmY2ZTQ0YWZmMWQ5YmQ0NmM5Y2VkNw==",
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 1
},
"lastUpdatedDate": "2021-02-19",
"createdDate": "2021-02-19",
"hashtags": []
}
}

get
Get Single Document

https://backend.alli.ai/webapi/single_document
This is the method to get all details of a single document.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
id
required
string
The id of the document.
Response
200: OK
You will get the result as the following JSON format. id: The Document's ID. documentName: The document's file name. createdDate: The date when the document was uploaded. hashtags: Hashtags registered for the document. agentFeedback : Counts of positive and negative ratings by employees. userFeedback: The feedback from users about this document{"result": {
"id": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
"documentName": "Policy document 1.docx",
"createdDate": "2020-11-12",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"hashtags" : ["hashtag1", "hashtag2"]
}
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section to get the api key.

curl -X GET \
-d '{"id": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U="}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/single_document

Response Example

{"result": {
"id": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
"documentName": "Policy document 1.docx",
"createdDate": "2020-11-12",
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
},
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"hashtags" : ["hashtag1", "hashtag2"]
}
}

get
Q&A Feedbacks

https://backend.alli.ai/webapi/faq_feedbacks
This API lets you get the list of feedbacks given to Q&A pairs for each search query.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to only see feedbacks given by a specific agent, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
OWN-USER-ID
optional
string
If you want to only see feedbacks given by a specific user, you can provide the user's ID here. It can be found in the Conversations menu in your dashboard.
Body Parameters
offset
optional
integer
offset allows you to specify the ranking number of the first item on the page.
limit
optional
integer
limit allows you to set the number of objects returned on one page. The maximum value is 100.
Response
200: OK
You will get the result as the following JSON format. query: It's the search query that has feedback for Q&A search results. feedbacks: It contains detailed feedback information for the query, faqId and postive. faqId: The Q&A pair's ID that has the feedback information. positive: true or false. true indicates that the Q&A pair has positive feedback upon the search, and false indicates negative feedback. count: The total number of feedbacks listed.
{
"result": [
{
"query": "QUERY_1",
"feedbacks": [
{
"faqId": "FAQ_ID_1_1",
"positive": true or false
}, ...
]
}, ...
],
"count": COUNT_1
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section to get the api key.

curl -X GET \
-d '{"offset": 0, "limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/faq_feedbacks

Response Example

{
"result": [
{
"query": "where is the office?",
"feedbacks": [
{
"faqId": "RkFROjVmNDA1MWVkMTFmOWJjMTJjOGUwMTg5YQ==",
"positive": true
},
{
"faqId": "RkFROjVmNDA1MWVkMTFmOWJjMTJjOGUwMThhNA==",
"positive": false
},
{
"faqId": "RkFROjVmNDA1MWVjMTFmOWJjMTJjOGUwMTgyYw==",
"positive": true
}
]
},
{
"query": "Are you funded?",
"feedbacks": [
{
"faqId": "RkFROjVmNDA1MWVjMTFmOWJjMTJjOGUwMTgyNw==",
"positive": true
}
]
}
],
"count": 4
}

post
Q&A Feedback

https://backend.alli.ai/webapi/faq_feedback
This API lets you give or cancel feedback given to a Q&A pair for a search query.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Body Parameters
query
required
string
The query you want to give or cancel feedback for, toward the Q&A.
id
required
string
The ID for the Q&A you want to give or cancel feedback for the query. It is created whenever a Q&A search happens and bound to the query and the Q&A pair. It can be retrieved using the Q&A API above.
isPositive
required
boolean
When the value is true, positive feedback is given to the Q&A for the query. When it's false, negative feedback is given. When it's null, it cancels the feedback.
Response
200: OK
You will get the result as the following JSON format. id: The ID for the Q&A you want to give or cancel feedback for the query. It's the same one you used for the request. positiveCount: The total number of positive feedbacks after the request is processed. negativeCount: The total number of negative feedbacks after the request is processed.
{
"result": {
"faqTrainSearchResult": {
"faq": {
"id": "ID"
},
"agentFeedback": {
"positiveCount": NUMBER,
"negativeCount": NUMBER
}
}
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. Please see getting-api-key section to get the api key.

Please replace Q&A_ID accordingly. About getting Q&A_ID, please take a look at Search from Q&A or Q&A Feedbacks section. It's id in Response Example of Search from Q&A section, or faq_id in Response Example of Q&A Feedbacks.

curl https://backend.alli.ai/webapi/faq_feedback \
-d '{"query": "What do I do if I didn't get a receipt?",
"id": "Q&A_ID",
"isPositive": true}' \
-H "API-KEY: YOUR API KEY" \
-H "Content-Type: application/json"

Response Example

{
"result": {
"faqTrainSearchResult": {
"faq": {
"id": "RkFROjVlOTc5MWExMjM5NjFiNzYzOTcxMWI1Mg=="
},
"agentFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}
},
"errors": null
}

post
Q&A User Feedback

https://backend.alli.ai/webapi/faq/user_feedback
The feedback registered with the above API will be submitted as user feedback. This API registers user feedback (user feedback is what the users who use the Alli chatbot and approve or disprove of answers submit).
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
OWN-USER-ID
optional
string
If you want to specify a user who makes this API call, you can provide the user's ID here. It can be a new one or be found in the Conversations menu in your dashboard.
USER-EMAIL
optional
string
If you want to update the user's email when using OWN-USER-ID, you can provide the new email address here.
Body Parameters
prev
optional
boolean
A boolean as to the previous feedback you'd assigned this query (only should be used to modify previous feedback)
positive
required
boolean
A boolean as to whether the feedback is positive or negative
query
required
string
The query that you made, that you're providing feedback for
id
required
string
The ID of the Q&A object you want to provide feedback (can be found in the "faq" field of the /webapi/faq response).
Response
200: OK
Returns the current user feedback for this FAQ, both the positiveCount and negativeCount.
{
"result": {
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}
}

Request Example

curl https://backend.alli.ai/webapi/faq/user_feedback \
-H 'API-KEY: YOUR_API_KEY' \
-H "Content-Type: application/json" \
-d '{
"query": "QUERY",
"prev": PREVIOUSLY_ASSIGNED_FEEDBACK,
"id": "FAQ_ID",
"positive": true
}'

Response Example

{
"result": {
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}
}

post
Upload Q&As

https://backend.alli.ai/webapi/upload_faq_file
You can upload multiple Q&As in the tsv, csv, xlsx, and zip format using this API.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Body Parameters
file
required
string
Your local Q&A file location. xlsx, tsv, csv, and zip files are supported.
Response
200: OK
result: success if the file upload is successful. notUploaded: If any of the questions are not uploaded or updates existing Q&A, the details will be listed here. question: The question part of not-uploaded or updated Q&A. state: dup if the Q&A is not uploaded due to duplication in 'similar questions' content. up if the Q&A updated an existing one due to the same question content.
{
"result": "success",
"notUploaded": [
{
"question": "QUESTION_1",
"state": "dup"
},
{
"question": "QUESTION_2",
"state": "up"
}
]
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -F '[email protected]/location/to/your_file' \
-H 'API-KEY: YOUR_API_KEY'
https://backend.alli.ai/webapi/upload_faq_file

Response Example

{
"result": "success",
"notUploaded": [
{
"question": "How to teach AI",
"state": "dup"
},
{
"question": "I'd like to schedule a meeting or a demo.",
"state": "up"
}
]
}

post
Add Q&A

https://backend.alli.ai/webapi/register_faq
You can add a new Q&A or update an existing Q&A using this API.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Body Parameters
status
optional
string
ON or OFF. When on, registered Q&A will be turned on for Q&A search.
question
required
string
The question part of the Q&A.
similarQuestions
optional
array
Similar questions that has the same answer. You can add multiple similar questions.
answer
required
string
The answer part of the Q&A. If the same question exists in the database, this answer will replace the existing one.
hashtags
optional
array
Hashtags added to the Q&A. You can add multiple hashtags.
memo
optional
string
Memo on the Q&A to share with agents.
Response
200: OK
status: The status of the registered Q&A. 'created' means the Q&A is newly created. 'updated' means an existing Q&A is updated with a new answer. id: The registered Q&A's ID.
{
"result": {
"status": "created",
"id": "Q&A_ID"
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl 'https://backend.alli.ai/webapi/register_faq' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"status": "ON",
"question": "Where is the office?",
"similarQuestions": ["Office location?", "Office address?"],
"answer": "We have offices in Oakland(US), Seoul(Korea), and Tokyo(Japan)",
"hashtags": ["office", "location"],
"memo": "Added by api"
}'

Response Example

{
"result": {
"status": "created",
"id": "RkFROkYwYRQxYzIzMDcxYWM5M3JlOWR5Y2EeOQ=="
},
"errors": null
}

post
Delete Q&A

https://backend.alli.ai/webapi/delete_faq
You can delete a Q&A using this API.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
id
required
string
The ID of the Q&A you want to delete.
Response
200: OK
status: 'deleted' if the Q&A is successfully deleted.
{
"result": {
"status": "deleted"
},
"errors": null
}
404: Not Found
When there's no Q&A with the ID, this error will be returned.
{
"errors": "The record doesn't exist."
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl 'https://backend.alli.ai/webapi/delete_faq' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d {
"id": "RkFROkYwYRQxYzIzMDcxYWM5M3JlOWR5Y2EeOQ=="
}

Response Example

{
"result": {
"status": "deleted"
},
"errors": null
}

get
List Q&As

https://backend.alli.ai/webapi/faqs
You can list Q&As in the Knowledge Base using this API.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
searchTerm
optional
string
Keyword search query to filter the list. You can use operators to run advanced searches. "TERM1 TERM2" for AND, "TERM1 OR TERM2" for OR, and "\"TERM\"" for exact match.
isUsed
optional
boolean
If true, only turned-on Q&As will be listed, If false, only turned-off Q&As will.
hashtags
optional
array
Hashtags to filter the list. You can add multiple hashtags.
hashtagsOperator
optional
string
and or or. If it's and, hashtags filter for multiple hashtags works with AND logic. If or, OR logic.
createdByAgent
optional
boolean
If true, the list will only include Q&As created by agents. If false, only the other Q&As will be included. Please note that createdByAgent, answeredByMrc, autoGenerated, editedByAgent filters are mutually exclusive, and OR logic is applied if two or more of them are used.
answeredByMrc
optional
boolean
If true, the list will only include Q&As that are the answers are automatically extracted from uploaded Documents. If false, only the other Q&As will be included.
autoGenerated
optional
boolean
If true, the list will only include auto-generated Q&As. If false, only the other Q&As will be included.
editedByAgent
optional
boolean
If true, the list will only include Q&A's edited by any agent after registered. If false, only the other Q&As will be included.
format
optional
string
html or text. If your answers contain styled html, such as different font size or color, you can use html to get answers in html format. If you simply want to get answers as a text, you can use the text. The default value is html.
offset
optional
integer
offset allows you to specify the ranking number of the first item on the page.
limit
optional
integer
limit allows you to set the number of objects returned on one page. The maximum and the default value is 1000.
Response
200: OK
offset: The same offset value with the offset request parameter. count: Total number of Q&As listed after limit is applied. totalCount: Total number of Q&As as the result of applied filters. id: The ID of the Q&A. question: The question part of the Q&A. answer: The answer part of the Q&A. hashtags: The hashtags added on the Q&A. userFeedback: Number of positive and negative user feedbacks. User feedbacks affects the search result for future queries. agentFeedback: Number of positive and negative agent feedbacks. Agent feedbacks affects the search result for future queries. lastUpdatedDate: The date when the Q&A is last updated. createdDate: The date when the Q&A is created.
{
"offset": 0,
"count": 10,
"totalCount": 12,
"results": [
{
"id": "Q&A_ID_1",
"question": "QUESTION_1",
"answer": "ANSWER_1",
"hashtags": [
"HASHTAG_1",
"HASHTAG_2"
],
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"lastUpdatedDate": "2021-05-04",
"createdDate": "2021-02-23"
},
{
"id": "Q&A_ID_2",
"question": "QUESTION_2",
"answer": "ANSWER_2",
"hashtags": [
"HASHTAG_1",
"HASHTAG_3"
],
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"lastUpdatedDate": "2021-05-04",
"createdDate": "2021-02-23"
}, ...
]
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -X GET 'https://backend.alli.ai/webapi/faqs' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"searchTerm": "Allganize",
"isUsed": true,
"hashtags": ["company", "Alli"],
"hashtagsOperator": "OR",
"createdByAgent": true,
"answeredByMrc": true,
"autoGenerated": false,
"editedByAgent": false,
"format": "text",
"offset": 0,
"limit": 10
}'

Response Example

{
"offset": 0,
"count": 2,
"totalCount": 2,
"results": [
{
"id": "RkRODjYwUIr2YTUzYTc0MjNmMDgxOTFkZTRlNA==",
"question": "How many people work at Allganize?",
"answer": "Currently (Nov 2019), we have 16 employees working at three different locations.",
"hashtags": [
"company",
"actual"
],
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"lastUpdatedDate": "2021-05-04",
"createdDate": "2021-02-23"
},
{
"id": "RkFROjYwIdU4YTUzYTc0MjNmUR2wOTFkZTU1OA==",
"question": "Do you have any references or case studies?",
"answer": "We do! Check out our recent case studies and other articles on our blog: https://blog.allganize.ai/",
"hashtags": [
"company",
"actual"
],
"userFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 0
},
"lastUpdatedDate": "2021-05-04",
"createdDate": "2021-02-23"
}
]
}

get
Q&A Candidates

https://backend.alli.ai/webapi/faq_candidates
Using this API, you can get the list of unanswered questions from customers. They're called Candidates.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
hashtags
optional
array
Hashtag array if you want to limit the search scope to the given hashtags
searchTerm
optional
string
Search query to filter the candidates to see. You can use operators to run advanced searches. "TERM1 TERM2" for AND, "TERM1 OR TERM2" for OR, and "\"TERM\"" for exact match.
order
optional
string
How to order the candidates. You can use ATTRIBUTE_[DESC or ASC] format. ATTRIBUTE can be FREQUENCY or CREATED_AT.
state
optional
string
Status of the candidates to see. It can be ALL or ACTIVE or ARCHIVED.
offset
optional
integer
offset allows you to specify the ranking number of the first item on the page.
limit
optional
integer
limit allows you to set the number of objects returned on one page. The maximum value is 100.
Response
200: OK
You will get the result as the following JSON format. count: The total number of candidates. id: The ID of the extracted answer to the unanswered question. Whenever there is a new unanswered question registered, Alli tries to extract and add an answer from uploaded documents automatically. frequency: Sum of all the frequency numbers under the questions. textAnswer: The answer extracted from the uploaded documents for the question. state: The status of the candidate. ACTIVE if the candidate is not added to the Q&A database yet. ARCHIVED if the candidate is added to the Q&A database. createdAt: The timestamp of when the candidate was created. questions: Multiple similar questions can have the same answer. Information about all the questions for the answer is under here. id (under questions): The ID of the unanswered question from customers. question (under questions): The unanswered question from customers. frequency (under questions): How many times the question was asked by customers. id (under history): The ID of the history information of the unanswered question. The history is the customers' log when the question was asked.
{
"result": {
"faqCandidates": [
{
"id": "ID_ANSWER_1",
"frequency": 1,
"textAnswer": "ANSWER_1",
"state": "ACTIVE",
"createdAt": NUMBER,
"questions": [{
"id": "ID_QUESTION_1",
"question": "QUESTION_1",
"frequency": 1,
"history": {
"id": "ID_HISTORY_1"
}
}]
},
],
"count": 1
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -X GET \
-d '{ "hashtags": ["wiki"],
"searchTerm": "user",
"order": "FREQUENCY_DESC",
"state": "ALL",
"offset": 0,
"limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/faq_candidates

Response Example

{
"result": {
"faqCandidates": [
{
"id": "RkFRQ2FuZGlkYXRlOjVlYjA3OGU5MGFmZmMyM2QxZjc4ZTMzMQ==",
"frequency": 1,
"textAnswer": "This is how to use it, A from Z.\n— From User Guide.pdf",
"state": "ACTIVE",
"createdAt": 1588623593321,
"questions": [{
"id": "RkFRQ2FuZGlkYXRlUXVlc3Rpb246NWViMDc4ZTkwYWZmYzIzZDFmNzhlMzMw",
"question": "User manual?",
"frequency": 1,
"history": {
"id": "Q29udmVyc2F0aW9uOjVlYjA3OGI2NWUyMTJlMTMzZDM4NDAzOA=="
}
}]
},
{
"id": "RkFRQ2FuZGlkYXRlOjVlOWEzZWI2MmZlOTFkMzIwYjE2YWQyOQ==",
"frequency": 1,
"textAnswer": "You can cancel the policy in 15 days\n— From UserPolicy.pdf",
"state": "ACTIVE",
"createdAt": 1587166902114,
"questions": [{
"id": "RkFRQ2FuZGlkYXRlUXVlc3Rpb246NWU5YTNlYjYyZmU5MWQzMjBiMTZhZDI4",
"question": "Can I cancel?",
"frequency": 1,
"history": {
"id": "Q29udmVyc2F0aW9uOjVlOWEzZDliNjU5YmM2NTEyMTk5MDQ3Ng=="
}
}]
}
],
"count": 1
},
"errors": null
}

post
Q&A Candidates

https://backend.alli.ai/webapi/add_faq_candidates
Registers a new Q&A Candidate with the system.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
OWN-USER-ID
optional
string
If you want to specify a user who makes this API call, you can provide the user's ID here. It can be a new one or be found in the Conversations menu in your dashboard.
USER-EMAIL
optional
string
If you want to update the user's email when using OWN-USER-ID, you can provide the new email address here.
Body Parameters
queries
required
string
The list of all queries you would like to register
Response
200: OK
You will get the result as the following JSON format. id: The id of the candidate registered.
{
"result": {
"candidates": [
{
"id": "CANDIDATE_ID_1"
},
{
"id": "CANDIDATE_ID_2"
}
]
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl https://backend.alli.ai/webapi/add_faq_candidates \
-d '{"queries": ["what is that processor", "how much does the processor cost"]}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
"result": {
"candidates": [
{
"id": "RkFRQ2FuZGlkYXRlOjVmOGE1ZDA0ODgxNzc0OWNjMWUwMzRiNg=="
},
{
"id": "iGBiuGIGIugBIGBIugBIuBGiHBiJUhbhIBgIbKHJBJCYUBLHKGJfBJbIb=="
}
]
},
"errors": null
}

get
Documents Feedbacks

https://backend.alli.ai/webapi/mrc_feedbacks
This API lets you get the list of feedbacks given to Document search results (AI-extracted answers from uploaded documents) for each search query.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to only see feedbacks given by a specific agent, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
OWN-USER-ID
optional
string
If you want to only see feedbacks given by a specific user, you can provide the user's ID here. It can be found in the Conversations menu in your dashboard.
Body Parameters
offset
optional
integer
offset allows you to specify the ranking number of the first item on the page.
limit
optional
integer
limit allows you to set the number of objects returned on one page. The maximum value is 100.
Response
200: OK
You will get the result as the following JSON format. query: The search query for the extracted answer. documentId: The ID of the document where the answer was extracted from. answer: The answer part extracted from the document for the query. answerHash: The ID for the answer part extracted from the document for the query. It is created whenever a Documents search happens and bound to the query and the answer pair. It's the same value from the POST Documents API above. positive: true or false. true indicates that the extracted answer has positive feedback upon the search, and false indicates negative feedback. count: The total number of feedbacks listed.
{
"result": [
{
"query": "QUERY_1",
"feedbacks": [
{
"documentId": "DOCUMENT_ID_1",
"answer": "ANSWER_1",
"answerHash": "ANSWER_HASH_1",
"positive": true or false
}, ...
]
}
],
"count": NUMBER
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -X GET \
-d '{"offset": 0, "limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/mrc_feedbacks

Response Example

{
"result": [
{
"query": "cancel the policy",
"feedbacks": [
{
"documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
"answer": "You can cancel the policy in 30 days.",
"answerHash": "44094c4a281484daadf28e67a4745747",
"positive": true
},
{
"documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
"answer": "This is how you enroll the policy.",
"answerHash": "296ffa9691166c583b00365fb6839a06",
"positive": false
},
{
"documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
"answer": "You cannot get refunded upon cancelation after 30 days.",
"answerHash": "48e5273910c913dbf0fc08482f7cd22c",
"positive": true
}
]
}
],
"count": 3
}

post
Documents Search Feedback

https://backend.alli.ai/webapi/mrc_feedback
This API lets you give or cancel feedback given to a Document search result for a search query.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Body Parameters
query
required
string
The query you want to give or cancel feedback for, toward the extracted search result.
id
required
string
The ID for the document where the answer was extracted from.
answerHash
required
string
The ID of the Document search result you want to give or cancel feedback for the query. It is created whenever a Documents search happens and bound to the query and the answer pair. It can be retrieved using the Documents API above.
isPositive
required
boolean
When the value is true, positive feedback is given to the extracted answer for the query. When it's false, negative feedback is given. When it's null, it cancels the feedback.
Response
200: OK
You will get the result as the following JSON format. positiveCount: The total number of positive feedbacks after the request is processed. negativeCount: The total number of negative feedbacks after the request is processed.
{
"result": {
"mrcFeedbackSearchResult": {
"agentFeedback": {
"positiveCount": NUMBER,
"negativeCount": NUMBER
}
}
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID and ANSWER_HASH accordingly. About getting document id and answer hash, please take a look at Search from Documents or Documents Feedbacks section.

curl https://backend.alli.ai/webapi/mrc_feedback \
-d '{"query": "what is that processor",
"id": "DOCUMENT_ID",
"answerHash": "ANSWER_HASH",
"isPositive": false}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
"result": {
"mrcFeedbackSearchResult": {
"agentFeedback": {
"positiveCount": 0,
"negativeCount": 1
}
}
},
"errors": null
}

post
Documents Search User Feedback

https://backend.alli.ai/webapi/mrc/user_feedback
Provide user feedback to the Documents search result.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
OWN-USER-ID
optional
string
If you want to specify a user who makes this API call, you can provide the user's ID here. It can be a new one or be found in the Conversations menu in your dashboard.
USER-EMAIL
optional
string
If you want to update the user's email when using OWN-USER-ID, you can provide the new email address here.
Body Parameters
answerHash
required
string
The ID of the Document search result you want to give or cancel feedback for the query. It is created whenever a Documents search happens and bound to the query and the answer pair. It can be retrieved using the Documents API above.
answer
required
string
The answer that you received to your query from this document.
id
required
string
The ID for the document where the answer was extracted from.
positive
required
boolean
When the value is true, positive feedback is given to the extracted answer for the query. When it's false, negative feedback is given. When it's null, it cancels the feedback.
query
required
string
The query you want to give or cancel feedback for, toward the extracted search result.
Response
200: OK
Returns the positiveCount and negativeCount of the user feedback after the change.
{
"result": {
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}
}

Request Example

curl -request POST 'https://backend.alli.ai/webapi/mrc/user_feedback' \
--header 'API-KEY: YOUR_API_KEY' \
-d '{
"query": "QUERY",
"answer": "RECEIVED_ANSWER",
"answerHash": "RESULT_ID",
"id": "DOCUMENT_ID",
"positive": true
}'

Response Example

{
"result": {
"userFeedback": {
"positiveCount": 1,
"negativeCount": 0
}
}
}

post
Upload Documents

https://backend.alli.ai/webapi/upload_file
This API method allows you to upload documents for Cognitive Search. Available file formats for the upload: PDF, TXT, MS Word, PowerPoint, Excel, HTM and HTML. To upload a HTML file with linked resources, please compress in a ZIP file along with any relative linked resources before uploading.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Form Data Parameters
file
required
string
Your local file location
hashtags
optional
array
Hashtags for the uploading file
footerTitle
optional
string
You can type in the source of the answer as a footer for search results from the uploaded file. The footer text will appear next to 'From' in search results.
footerUrl
optional
string
You can put the URL you want to link to the footerTitle.
Response
200: OK
You will get the result in the following JSON format. id: The ID of the uploaded document. fileName: The filename of the uploaded document. hashtags: The array of hashtags added to the uploaded document. footer: The footer (source) info added to the uploaded document. It can be the default one or the one specified by footerTitle and footerUrl parameters.
{
"result": {
"id": "DOCUMENT_ID",
"fileName": "YOUR_FILE_NAME",
"hashtags": [
"HASHTAG_1",
"HASHTAG_2"
],
"footer": "FOOTER_IN_HTML"
}
}

Request Example

Please replace [email protected]/location/to/your_file with the location and the name of the file you are uploading, and YOUR_HASH_TAG with the hashtag you want to add to the file. Also, please replace YOUR_API_KEY with your actual API key. To get the api key, please see getting-api-key section.

curl -F '[email protected]"/location/to/your_file"' \
-F 'hashtags="[\"api1\", \"api2\"]"' \
-F 'footerUrl="www.allganize.ai"' \
-F 'footerTitle="Allganize website"' \
-H 'API-KEY: YOUR_API_KEY' https://backend.alli.ai/webapi/upload_file

Response Example

{
"result": {
"id": "S25vd2xlZGdlQmA23To2MGJjIsjA1YjM1Nz9iRc1YWIzYjA1ODk=",
"fileName": "policy.docx",
"hashtags": [
"api1",
"api2"
],
"footer": "{\"blocks\": [{\"key\": \"oio7\", \"text\": \"— From ocr_en.png\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 17, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 10, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamUiddDo1ZGMxYmI1qwe0ZTk0YWNmMmY5MjRlMzU=/S12vd2xlZGdlQmFzZTo2MGJijef1YjM1Nzc4NTc1YWIzYjA1ODk=\"}}}}"
}
}                                                                                                           

post
Upload Documents from S3

https://backend.alli.ai/webapi/upload_from_s3
This API lets you transfer documents stored in S3 into Cognitive Search. They will appear as Knowledge Base documents in the dashboard. Available file formats are same in the section of Upload Documents.
Request
Response
Request
Headers
API-KEY
required
string
Your API KEY can be found in your dashboard settings menu under the General Tab. Please keep in mind that you need to have a Cognitive Search API Key.
AGENT-EMAIL
optional
string
If you want to specify an agent who makes this API call, you can provide the agent's email address here. It can be found under Settings > Agents in your dashboard.
Body Parameters
footerTitle
optional
string
You can type in the source of the answer as a footer for search results from the uploaded file. The footer text will appear next to 'From' in search results.
footerUrl
optional
string
You can put the URL you want to link to the footerTitle.
hashtags
optional
array
Hashtags for the document.
path
required
string
S3 path of the file. It should end with the file name. Don't include the bucket name
secretKey
optional
string
Your S3 Secret Key.
accessKey
optional
string
Your S3 Access Key.
bucket
optional
string
Name of S3 bucket containing your file.
Response
200: OK
You will get the result in the following JSON format: id: The id for the transferred document. fileName: The filename of the transferred document. hashtags: The array of hashtags added to the uploaded document. footer: The footer (source) info added to the uploaded document. It can be the default one or the one specified by footerTitle and footerUrl parameters.
{
"result": {
"id": "DOCUMENT_ID",
"fileName": "YOUR_FILE_NAME",
"hashtags": [
"HASHTAG_1",
"HASHTAG_2"
],
"footer": "FOOTER_IN_HTML"
}
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl https://backend.alli.ai/webapi/upload_from_s3 -d '{
"path": "s3://YOUR_S3_FILE_PATH",
"secretKey": "YOUR_SECRET_KEY",
"accessKey": “YOUR_ACCESS_KEY",
"bucket": "YOUR_BUCKET_NAME",
"hashtags": ["HASHTAG_1", "HASHTAG_2"],
"footerTitle": "Allganize API documentation",
"footerUrl": "docs.allganize.ai"}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
"result": {
"id": "S25vd2xlZGdlQmA23To2MGJjIsjA1YjM1Nz9iRc1YWIzYjA1ODk=",
"fileName": "policy.docx",
"hashtags": [
"api1",
"api2"
],
"footer": "{\"blocks\": [{\"key\": \"oio7\", \"text\": \"— From ocr_en.png\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 17, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 10, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamUiddDo1ZGMxYmI1qwe0ZTk0YWNmMmY5MjRlMzU=/S12vd2xlZGdlQmFzZTo2MGJijef1YjM1Nzc4NTc1YWIzYjA1ODk=\"}}}}"
}
}

get
Check Document Status

https://backend.alli.ai/webapi/check_file_status
Once you upload documents through API, it is converted, parsed, and embedded as vectors. This API shows the status of the process for a document being uploaded.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
id
required
string
The document id to check the status
Response
200: OK
You will get the result in the following JSON format. id: The ID of the document being checked. status: Status of the document. Please see Response Example below for possible values.
{"result":
{"id": "YOUR DOCUMENT ID",
"status": "initializing"}}

Request Example

Please replace YOUR_API_KEY to your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID accordingly as well. About getting document id, please take a look at Search from Documents or the Documents Feedbacks section.

curl -X GET https://backend.alli.ai/webapi/check_file_status \
-d '{"id": "DOCUMENT_ID"}' \
-H "API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json"

Response Example

{"result":
{"id": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM",
"status": "initializing"}}

Status contains one of the following values.

'initializing : preparing for the processing or waiting
'converting': converting the files
'conversion_complete'
'conversion_fail'
'parsing': parsing for retrievers
'parsing_fail'
'completed': parsing and embedding are done

post
Delete Documents

https://backend.alli.ai/webapi/delete_file
This API lets you delete uploaded files.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
ids
required
array
The document IDs that you want to delete in the array format
Response
200: OK
You will get the result in the following JSON format. ok: true if the deletion completes successfully. If the deletion fails, the result will be false and errors will contain an error message.
{
"result": {
"ok": BOOLEAN
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID accordingly as well. About getting document id, please take a look at Search from Documents or Documents Feedbacks section.

curl -d '{"ids": ["DOCUMENT_ID"]}' \
-H "API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
https://backend.alli.ai/webapi/delete_file

Response Example

{
"result": {
"ok": true,
},
"errors": null
}

get
List Documents

https://backend.alli.ai/webapi/knowledge_bases
This API lets you list out the uploaded documents.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Query Parameters
hashtagsSearchOperator
optional
string
Either AND or OR, logical operator used to match multiple hashtags. Defaults to OR.
status
optional
boolean
The on/off status of the document to filter the list.
searchTerm
optional
string
Keyword search query to filter the list. You can use operators to run advanced searches. "TERM1 TERM2" for AND, "TERM1 OR TERM2" for OR, and "\"TERM\"" for exact match.
hashtags
optional
array
Hashtag information to filter the list.
order
optional
string
The order type of the list. Please see Request Example below to find possible order types.
offset
optional
integer
offset allows you to specify the ranking number of the first item on the page.
limit
optional
integer
limit allows you to set the number of objects returned on one page. The maximum value is 100.
Response
200: OK
You will get the result in the following JSON format. id: The ID of the listed document. fileName: The filename of the list document. hashtags: The hashtags added on the document. autoHashtags : The automatically generated hashtags added to the document.
{
"result": {
"items": [
{
"id": "DOCUMENT_ID",
"fileName": "FILENAME",
"hashtag": ["HASHTAG_1", "HASHTAG_2"],
"autoHashtag": ["AUTOHASHTAG_1"]
}
]
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -X GET -d '{"status": true,
"offset": 0,
"limit": 10,
"order": "FILE_NAME_ASC",
"searchTerm": "term1 OR term2"
"hashtags": ["policy", "insurance"],
"hashtagsSearchOperator": "OR"}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/knowledge_bases

You can use one of the following values for the order parameter.

Value

Description

FILE_NAME_ASC

Ascending order by file name.

FILE_NAME_DESC

Descending order by file name.

TYPE_ASC

Ascending order by file type.

TYPE_DESC

Descending order by file type.

STATUS_ASC

Ascending order by on/off status.

STATUS_DESC

Descending order by on/off status.

CREATED_AT_ASC

Ascending order by uploaded date&time.

CREATED_AT_DESC

Descending order by uploaded date&time.

Response Example

{
"result": {
"items": [
{
"id": "S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
"fileName": "policy1.docx",
"hashtags": ["policy"]
},
{
"id": "S75vd2elZGdlQmFzZTo1ZmFlMjdhYmMx22E3MWM1MzA0NDI3ZWQ=",
"fileName": "insurance_policy.pdf",
"hashtags": ["policy", "insurance"]
}
]
},
"errors": null
}

post
Rename Documents (Knowledge Base)

https://backend.alli.ai/webapi/update_kb_name
This API lets you update the name for an uploaded document.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
filename
required
string
The new name for the specified document.
id
required
string
The document ID that you want to rename.
Response
200: OK
You will get the result in the following JSON format: id: The Document id for the file who's name was changed. filename: The Document's new name.
{
"result": {
"id": "DOCUMENT_ID",
"filename": "FILENAME"
}
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID accordingly as well. About getting document id, please take a look at Search from Documents or Documents Feedbacks section.

curl -L -X POST 'https://backend.alli.ai/webapi/update_kb_name' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
--data-raw '{"id": "DOCUMENT_ID", "filename": "FILENAME"}'

Response Example

{
"result": {
"id": "DOCUMENT_ID",
"filename": "policy.docx"
}
}

post
Update Documents

https://backend.alli.ai/webapi/update_document
This API lets you update hashtags, footer title, and footer title link for a document.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
footerTitle
optional
string
You can type in the source of the answer as a footer for search results from the uploaded file. The footer text will appear next to 'From' in search results.
footerUrl
optional
string
You can put the URL you want to link to the footerTitle.
hashtags
optional
array
List of string hashtags you want to add to the document
id
required
string
The id of the document you want to update
Response
200: OK
You will get the result in the following JSON format. id: The id of the document to which the hashtags correspond hashtags: Hashtags attached to the document after update footer: The footer (source) info added to the uploaded document. It can be the default one or the one specified by footerTitle and footerUrl parameters.
{
"result": {
"knowledgeBase": {
"id": "DOCUMENT_ID",
"hashtags": [
"HASHTAG_1",
"HASHTAG_2"
],
"footer": "FOOTER_IN_HTML"
}
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID accordingly as well. About getting document id, please take a look at Search from Documents or Documents Feedbacks section.

curl -L -X POST 'https://backend.alli.ai/webapi/update_document' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
-d '{
"hashtags": ["hashtag1", "hashtag2"],
"id": "DOCUMENT_ID",
"footerTitle": "Allganize API documentation",
"footerUrl": "docs.allganize.ai"
}'

Response Example

{
"result": {
"knowledgeBase": {
"id": "S25vd1iuRGdlQmFzZTo2MGJhYjQzERHjYTNiNWE0PLD3MDk1YTg=",
"hashtags": [
"hashtag1",
"hashtag2"
],
"footer": "{\"blocks\": [{\"key\": \"qn8p\", \"text\": \"— From Allganize API documentation\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [{\"offset\": 7, \"length\": 27, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"docs.allganize.ai\"}}}}"
}
},
"errors": null
}

post
Knowledge Base Toggle Status

https://backend.alli.ai/webapi/toggle_documents
This API lets you change the status of many documents (AKA knowledge bases) at once
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu under the General tab
Body Parameters
use
required
boolean
Whether to turn all the status of all the knowledge bases to on (True) or off (False)
ids
required
array
This is a list of the ids of the knowledge bases that you want to toggle.
Response
200: OK
You will get the result in the following JSON format: knowledgeBases : a list of ONLY the knowledge bases whose status were toggled id: id of knowledge base status: new status of knowledge base (boolean). true meaning status is now on.
{
"result": {
"knowledgeBases": [
{
"id": "YOUR_FIRST_DOCUMENT_ID",
"status": true or false
},
{
"id": "YOUR_SECOND_DOCUMENT_ID",
"status": true or false
}
]
},
"errors": null
}

Request Example

curl -X 'POST'
-H 'API-KEY: YOUR_API_KEY'
-d '{
"ids":[YOUR_FIRST_DOCUMENT_ID,
YOUR_SECOND_DOCUMENT_ID, ETC],
"use": true
}'
https://backend.alli.ai/webapi/toggle_documents

Response Example

{
"result": {
"knowledgeBases": [
{
"id": "YOUR_FIRST_DOCUMENT_ID",
"status": true
},
{
"id": "YOUR_SECOND_DOCUMENT_ID",
"status": false
}
]
},
"errors": null
}

post
Knowledge Base Auto Hashtag (Classification)

https://backend.alli.ai/webapi/kb_auto_hashtag
This API lets you get the hashtag list with classification keywords for the documents.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
ids
required
array
The document ids you want to retrieve auto hashtags for
Response
200: OK
You will get the result in the following JSON format. updated -> id : The id of the Document to which the hashtags correspond. autoHashtags: Array of JSON objects, containing the list of hashtags auto-generated for the Document. state: Status of hashtag, depending on if agent has confirmed this auto-generated hashtag. Will be one of: "SUGGESTED", "APPROVED", "DECLINED". bestConfidence: Numerical confidence of this auto-generated hashtag from 0 to 1. autoHashtags -> id: The id of the hashtag. hashtag: String value of hashtag (displayed in Dashboard).
{
"result": {
"updated": [
{
"id": "DOCUMENT_ID",
"autoHashtags": [
{
"id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID",
"state": "STATE",
"bestConfidence": NUMBER,
"autoHashtag": {
"hashtag": "HASHTAG_VALUE"
}
}
]
}
]
},
"errors": null
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace DOCUMENT_ID accordingly as well. About getting document id, please take a look at Search from Documents or Documents Feedbacks section.

curl -X POST -d '{"ids": ["DOCUMENT_ID"]}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/kb_auto_hashtag

Response Example

{
"result": {
"updated": [
{
"id": "S25vd2xlZGdlQmFzZTo1ZmY3Y2U0YzZiNzk4MjM0YTAwNGRkNGE=",
"autoHashtags": [
{
"id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZmRmMDg5ZmMzYjUwNjJlY2ZlZWIzOA==",
"state": "SUGGESTED",
"bestConfidence": 0.9866862297058105,
"autoHashtag": {
"hashtag": "CLASSIFICATION_RESULT"
}
},
{
"id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZmUwMWFmZTcwZGYzMGUwYzQ2NTQ3Yg==",
"state": "SUGGESTED",
"bestConfidence": 0.9445914626121521,
"autoHashtag": {
"hashtag": "CLASSIFICATION_RESULT"
}
}
]
}
]
},
"errors": null
}

post
Knowledge Base Auto Hashtag Feedback (Classification)

https://backend.alli.ai/webapi/kb_auto_hashtag_feedback
This API lets you approve or decline classification hashtags for documents
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
autoHashtagFeedbacks
required
array
List of JSON objects containing hashtag id/state pairs. 'state' can be one of: 'accepted', 'declined', 'suggested'
Response
200: OK
You will get the result in the following JSON format: result: Array of JSON objects, each corresponding to a auto-hashtag id: The id of the hashtag state: The hashtag's feedback from agent. Will be one of: "suggested", "approved", "declined"
{
"result": [
{
"id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID",
"state": "STATE"
},
{
"id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID_2",
"state": "STATE"
}
]
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace HASHTAG_ID accordingly as well. About getting hashtag ids, please take a look at Knowledge Base Auto Hashtag (Classification) section.

curl -X POST -d '{
"autoHashtagFeedbacks": [
{"id": "HASHTAG_ID_1", "state": "approved"},
{"id": "HASHTAG_ID_2", "state": "declined"}
]
}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/kb_auto_hashtag_feedback

Response Example

{
"result": [
{
"id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZjhmZmJlYzJkNmUyNjJkOTVlZTQyYg==",
"state": "approved"
},
{
"id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZjhmZTdmYzJkNmUyNjJkOTVlZTI5OQ==",
"state": "declined"
}
]
}

post
Select Answer

https://backend.alli.ai/webapi/faq/select_answer
This method should be used to simulate a user looking up a specific FAQ
Request
Response
Request
Path Parameters
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
hashId
required
string
The id of the Q&A search return result
id
required
string
The id of the FAQ that you would like to select.
Response
200: OK
You will get the result in the following JSON format: In case of success
{"result": "Success"}
404: Not Found
In case you provide an invalid FAQ
{"result": [], "error": "Record does not exist."}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section. Please replace FAQ_ID accordingly as well. About getting FAQ ids, please take a look at Search from Q&A section.

curl -X POST -d '{
"id": "FAQ_ID",
"hashId": "Hash ID from Q&A search result"
}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq/select_answer

Response Example

{
"result": "Success"
}

post
Agent Management

https://backend.alli.ai/webapi/agent_management
Used to create and delete agents from the project.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Body Parameters
locale
optional
string
The language setting of the account being created. Use a two-letter ISO 639-1 code.
password
required
string
Required when creating a new agent. Password must be valid (contain 3 out 4 following characters: lowercase, uppercase, numeric, non-alphanumeric)
deleteFlag
required
boolean
True if you want to delete an agent, False if you want to create
email
required
string
The email of the agent you want to create or delete
Response
200: OK
id: ID of agent that was deleted/created status: What happened (either "deleted" or "created")
{
"result": {
"id" : "QWdlbnQ6NWZkMmFjMzIwODQ4MzY1ZDI4NWFjMGUw",
"status": "deleted"
},
"errors": null
}
400: Bad Request
If the agent you try to create already has an email registered.
{
"result": [],
"errors": "Agent with provided email already exists."
}
404: Not Found
If you try to delete an agent that doesn't exist.
{
"result": [],
"errors": "The record does not exist."
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl https://backend.alli.ai/webapi/agent_management \
-d '{"email": "[email protected]",
"deleteFlag": true,
"password": "Password_4321",
"locale": "en"}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
"result": {
"id" : "QWdlbnQ6NWZkMmFjMzIwODQ4MzY1ZDI4NWFjMGUw",
"status": "created"
},
"errors": null
}

get
Get All Hashtags

https://backend.alli.ai/webapi/hashtags
Gets all hashtags from both FAQs and MRCs
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Response
200: OK
Returns each hashtag with its count of uses
{
"result": {
"sample_tag1": 2,
"sample_tag2": 1,
}
}

Request Example

Please replace YOUR_API_KEY with your one in the example below. To get the api key, please see getting-api-key section.

curl -X GET \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/hashtags

Response Example

{
"result": {
"sample_tag1": 2,
"sample_tag2": 1,
}
}

get
Q&A Query History

https://backend.alli.ai/webapi/faq_histories
Returns the past Q&A Searches that have been done, both through the REST API and the Alli dashboard.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Query Parameters
limit
optional
integer
A limit on the number of results to show (used for pagination)
offset
optional
integer
In the list of all results, the index from which to start listing results (used for pagination)
endDate
optional
string
The latest date from which you want to get history (dates should be in the form YYYY-MM-DD)
startDate
optional
string
The earliest date from which you want to get history (dates should be in the form YYYY-MM-DD)
order
optional
string
Can either be DESC (meaning latest queries come first), or ASC (meaning earliest queries come first)
searchTerm
optional
string
The term that should have appeared in the query
Response
200: OK
Each query will have the following attributes: agent: an object which contains the id of the agent who made the query. question: The question actually asked in the query answers: All answers provided by the system to the query. Each answer has the Q&A that was referred to, and the confidence, effective confidence. There is also a count of how many queries were returned in a count field.
{
"result": {
"histories": [
{
"agent": {
"id": "QWdlbnQ6NjA0NmMyNWJmNTFjMmVlYjc4Mjg3Zjcy"
},
"question": "What is life?",
"answers": [
{
"faq": {
"id": "RkFROjYwNDZjMmUxM2MzYmQ5MjVmMzgxMGNkOQ=="
},
"effectiveConfidence": 0.9999999999999927,
"confidence": 0.9999999999999927
}
]
}
],
"count": 1
},
"errors": null
}

Request Example

curl -X GET \
-d { "startDate":"2021-02-19","endDate":"2021-02-23", \
"order": "DESC","searchTerm":"life", "limit": 1, "offset": 0 } \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq_histories

Response Example

{
"result": {
"histories": [
{
"agent": {
"id": "QWdlbnQ6NjA0NmMyNWJmNTFjMmVlYjc4Mjg3Zjcy"
},
"question": "What is life?",
"answers": [
{
"faq": {
"id": "RkFROjYwNDZjMmUxM2MzYmQ5MjVmMzgxMGNkOQ=="
},
"effectiveConfidence": 0.9999999999999927,
"confidence": 0.9999999999999927
}
]
}
],
"count": 1
},
"errors": null
}

get
Documents Query History

https://backend.alli.ai/webapi/mrc_histories
Returns the past Documents Searches that have been done, both through the REST API and the Alli dashboard.
Request
Response
Request
Headers
API-KEY
required
string
Your API key can be found in your dashboard Settings menu, under the General tab.
Query Parameters
searchTerm
optional
string
The term that should have appeared in the query
order
optional
string
Can either be DESC (meaning latest queries come first), or ASC (meaning earliest queries come first)
endDate
optional
string
The latest date from which you want to get history (dates should be in the form YYYY-MM-DD)
startDate
optional
string
The earliest date from which you want to get history (dates should be in the form YYYY-MM-DD)
limit
optional
integer
A limit on the number of results to show (used for pagination)
offset
optional
integer
In the list of all results, the index from which to start listing results (used for pagination)
Response
200: OK
Each query history will have the following attributes: agent: The id of the agent who made the request. question: The actual question asked. answers: A list of all possible answers provided. Each answer has the knowledgeBase used to source that answer (both the filename and the id), the actual answer itself, the answerFormat, the hashtags associated with the knowledgeBase that was retrieved, and whether feedbackAvailable for this specific answer.
{
"result": {
"histories": [
{
"agent": {
"id": "QWdlbnQ6NWZiNzc5MGIwZjE3Zjc5ZmNiNzVlYzFh"
},
"question": "program memory of c004",
"answers": [
{
"knowledgeBase": {
"id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
"fileName": "specification_en.pdf"
},
"answer": "{\"blocks\": [{\"key\": \"kn13\", \"type\": \"unstyled\", \"text\": \"Type capacity program memory program memory - C004, B04KR: 80KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"2vjf\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"45cb\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
"answerHash": "6648c76e9be27864557f84ab7822cde8",
"answerFormat": "DRAFTJS",
"hashtags": [],
"feedbackAvailable": true,
"columnFilterValues": []
},
...
{
"knowledgeBase": {
"id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
"fileName": "specification_en.pdf"
},
"answer": "{\"blocks\": [{\"key\": \"87us\", \"type\": \"unstyled\", \"text\": \"Type capacity reload memory reload memory - C004, B04KR: 2048KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"p0wr\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"qpau\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
"answerHash": "9537b6560701930d079f39ced8be1b3e",
"answerFormat": "DRAFTJS",
"hashtags": [],
"feedbackAvailable": true,
"columnFilterValues": []
}
]
}
],
"count": 1
},
"errors": null
}

Request Example

curl -X GET \
-d { "startDate":"2021-02-19","endDate":"2021-02-23", \
"order": "DESC","searchTerm":"life", "limit": 1, "offset": 0 } \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/mrc_histories

Response Example

{
"result": {
"histories": [
{
"agent": {
"id": "QWdlbnQ6NWZiNzc5MGIwZjE3Zjc5ZmNiNzVlYzFh"
},
"question": "program memory of c004",
"answers": [
{
"knowledgeBase": {
"id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
"fileName": "specification_en.pdf"
},
"answer": "{\"blocks\": [{\"key\": \"kn13\", \"type\": \"unstyled\", \"text\": \"Type capacity program memory program memory - C004, B04KR: 80KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"2vjf\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"45cb\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
"answerHash": "6648c76e9be27864557f84ab7822cde8",
"answerFormat": "DRAFTJS",
"hashtags": [],
"feedbackAvailable": true,
"columnFilterValues": []
},
...
{
"knowledgeBase": {
"id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
"fileName": "specification_en.pdf"
},
"answer": "{\"blocks\": [{\"key\": \"87us\", \"type\": \"unstyled\", \"text\": \"Type capacity reload memory reload memory - C004, B04KR: 2048KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"p0wr\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"qpau\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
"answerHash": "9537b6560701930d079f39ced8be1b3e",
"answerFormat": "DRAFTJS",
"hashtags": [],
"feedbackAvailable": true,
"columnFilterValues": []
}
]
}
],
"count": 1
},
"errors": null
}