Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
curl --request GET \
--url 'https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}' \
--header 'API-Access-Key: <api-key>'import requests
url = "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}"
headers = {"API-Access-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Access-Key': '<api-key>'}};
fetch('https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Access-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Access-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}")
.header("API-Access-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Access-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"project_id": 1,
"item_set_id": 1,
"created_at": "2025-01-01T10:10:10",
"insights": [
{
"criterion_name": "Уточнение удобства разговора",
"score": 1,
"reasons": "Менеджер уточнил, удобно ли клиенту разговаривать, что соответствует критерию. Рекомендация: продолжать спрашивать об удобстве разговора в начале звонка.",
"quotes": "00:00:04.773 - Продавец: \"Удобно сейчас пообщаться?\""
},
{
"criterion_name": "Уточнение удобства разговора",
"score": 0,
"reasons": "Менеджер не уточнил, удобно ли клиенту разговаривать. Это важный момент для проявления заботы о клиенте и повышения лояльности. Рекомендация: всегда в начале разговора спрашивать, удобно ли сейчас общаться.",
"quotes": ""
},
{
"criterion_name": "Уточнение потребностей клиента",
"score": "",
"reasons": "Менеджер частично выявил потребности, конкретных тегов не удалось определить.",
"quotes": ""
},
{
"criterion_name": "Talk ratio Продавца",
"score": "67%",
"reasons": "Диалог длился примерно 2100 секунд (с 00:00:02 до 00:35:21). Продавец говорил около 1400 секунд, Клиент — около 700 секунд. У Продавца — примерно 90 реплик, у Клиента — около 60. Соотношение: 1400 / 2100 = 67%.",
"quotes": ""
},
{
"criterion_name": "Звучание, тон и корректность Продавца",
"score": "Позитив",
"reasons": "Тональность Продавца: Позитив — доброжелательный, поддерживающий, эмоционально включённый стиль (\"Спасибо большое\", \"Если будут вопросы — обязательно пишите\"). Тональность Клиента: Нейтрально/Позитив — спокойная, местами заинтересованная, иногда с сомнениями, но без негатива (\"Мне все откликнулось\", \"Спасибо вам большое за информацию, что позвонили очень быстро\"). Итоговая оценка: Позитив, так как Продавец был позитивен и поддерживал доброжелательный стиль вне зависимости от реакции Клиента.",
"quotes": ""
}
]
}{
"detail": "id_project is required"
}{
"detail": "Invalid auth"
}{
"detail": "Invalid input data"
}Получение аналитики (insights) по item_set внутри проекта. Требуется авторизация.
curl --request GET \
--url 'https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}' \
--header 'API-Access-Key: <api-key>'import requests
url = "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}"
headers = {"API-Access-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Access-Key': '<api-key>'}};
fetch('https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Access-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Access-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}")
.header("API-Access-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spellit.ai/api/insights?id_project={id_project}&id_item_set={id_item_set}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Access-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"project_id": 1,
"item_set_id": 1,
"created_at": "2025-01-01T10:10:10",
"insights": [
{
"criterion_name": "Уточнение удобства разговора",
"score": 1,
"reasons": "Менеджер уточнил, удобно ли клиенту разговаривать, что соответствует критерию. Рекомендация: продолжать спрашивать об удобстве разговора в начале звонка.",
"quotes": "00:00:04.773 - Продавец: \"Удобно сейчас пообщаться?\""
},
{
"criterion_name": "Уточнение удобства разговора",
"score": 0,
"reasons": "Менеджер не уточнил, удобно ли клиенту разговаривать. Это важный момент для проявления заботы о клиенте и повышения лояльности. Рекомендация: всегда в начале разговора спрашивать, удобно ли сейчас общаться.",
"quotes": ""
},
{
"criterion_name": "Уточнение потребностей клиента",
"score": "",
"reasons": "Менеджер частично выявил потребности, конкретных тегов не удалось определить.",
"quotes": ""
},
{
"criterion_name": "Talk ratio Продавца",
"score": "67%",
"reasons": "Диалог длился примерно 2100 секунд (с 00:00:02 до 00:35:21). Продавец говорил около 1400 секунд, Клиент — около 700 секунд. У Продавца — примерно 90 реплик, у Клиента — около 60. Соотношение: 1400 / 2100 = 67%.",
"quotes": ""
},
{
"criterion_name": "Звучание, тон и корректность Продавца",
"score": "Позитив",
"reasons": "Тональность Продавца: Позитив — доброжелательный, поддерживающий, эмоционально включённый стиль (\"Спасибо большое\", \"Если будут вопросы — обязательно пишите\"). Тональность Клиента: Нейтрально/Позитив — спокойная, местами заинтересованная, иногда с сомнениями, но без негатива (\"Мне все откликнулось\", \"Спасибо вам большое за информацию, что позвонили очень быстро\"). Итоговая оценка: Позитив, так как Продавец был позитивен и поддерживал доброжелательный стиль вне зависимости от реакции Клиента.",
"quotes": ""
}
]
}{
"detail": "id_project is required"
}{
"detail": "Invalid auth"
}{
"detail": "Invalid input data"
}API-ключ для доступа к эндпоинтам