cURL
curl --request GET \
--url https://client-api.salesfinity.co/v1/scored-calls/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://client-api.salesfinity.co/v1/scored-calls/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://client-api.salesfinity.co/v1/scored-calls/{id}', 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://client-api.salesfinity.co/v1/scored-calls/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-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://client-api.salesfinity.co/v1/scored-calls/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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://client-api.salesfinity.co/v1/scored-calls/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v1/scored-calls/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"_id": "<string>",
"insight": {
"total_score": 123,
"lead": {
"function": "<string>",
"tech_stack_mentioned": [
"<string>"
],
"current_vendor": "<string>",
"fit_score": 123,
"is_decision_maker": true,
"is_correct_persona": true,
"pain_point_resonated": true,
"is_qualified_meeting": true,
"is_likely_to_buy": true,
"prospect_lifecycle_stage": [
"<string>"
]
},
"messaging": {
"value_prop_resonated": [
"<string>"
],
"objection_outcome": [
"<string>"
],
"emotional_triggers": [
"<string>"
],
"recommendation_to_nail_messaging": "<string>"
},
"targeting_feedback": {
"persona_fit": "<string>",
"industry_fit": "<string>",
"persona_seniority": "<string>",
"title_relevance": "<string>",
"data_quality_issue": [
"<string>"
],
"future_follow_up_needed": true,
"follow_up_reason": [
"<string>"
]
},
"metadata": {
"duration_sec": 123,
"asr_confidence_avg": 123,
"audio_features_available": true,
"talk_listen_ratio_rep": 123,
"total_questions": 123,
"open_question_ratio": 123,
"interruptions_by_rep": 123,
"core_pitch_duration_sec": 123,
"estimated_wpm_rep": 123,
"objections_detected": [
"<string>"
]
},
"facets": {
"intro": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"discovery": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"pitch": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"tonality": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"objection_handling": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"cta": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
}
},
"gaps": {
"skill": 123,
"playbook": 123,
"rationale": "<string>"
},
"coaching": {
"top_wins": [
"<string>"
],
"top_opportunities": [
"<string>"
],
"suggested_drills": [
{
"facet": "<string>",
"assignment": "<string>"
}
]
}
},
"type": "call",
"call_log": {
"_id": "<string>",
"contact": {},
"recording_url": "<string>",
"duration": 123
},
"user": {
"_id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"error": 123,
"message": "<string>"
}Scored Calls
Get Scored Call by ID
Retrieves a single scored call by its ID with full AI-generated insight.
GET
/
v1
/
scored-calls
/
{id}
cURL
curl --request GET \
--url https://client-api.salesfinity.co/v1/scored-calls/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://client-api.salesfinity.co/v1/scored-calls/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://client-api.salesfinity.co/v1/scored-calls/{id}', 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://client-api.salesfinity.co/v1/scored-calls/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-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://client-api.salesfinity.co/v1/scored-calls/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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://client-api.salesfinity.co/v1/scored-calls/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v1/scored-calls/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"_id": "<string>",
"insight": {
"total_score": 123,
"lead": {
"function": "<string>",
"tech_stack_mentioned": [
"<string>"
],
"current_vendor": "<string>",
"fit_score": 123,
"is_decision_maker": true,
"is_correct_persona": true,
"pain_point_resonated": true,
"is_qualified_meeting": true,
"is_likely_to_buy": true,
"prospect_lifecycle_stage": [
"<string>"
]
},
"messaging": {
"value_prop_resonated": [
"<string>"
],
"objection_outcome": [
"<string>"
],
"emotional_triggers": [
"<string>"
],
"recommendation_to_nail_messaging": "<string>"
},
"targeting_feedback": {
"persona_fit": "<string>",
"industry_fit": "<string>",
"persona_seniority": "<string>",
"title_relevance": "<string>",
"data_quality_issue": [
"<string>"
],
"future_follow_up_needed": true,
"follow_up_reason": [
"<string>"
]
},
"metadata": {
"duration_sec": 123,
"asr_confidence_avg": 123,
"audio_features_available": true,
"talk_listen_ratio_rep": 123,
"total_questions": 123,
"open_question_ratio": 123,
"interruptions_by_rep": 123,
"core_pitch_duration_sec": 123,
"estimated_wpm_rep": 123,
"objections_detected": [
"<string>"
]
},
"facets": {
"intro": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"discovery": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"pitch": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"tonality": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"objection_handling": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
},
"cta": {
"score": 123,
"weight_pct": 123,
"explanation": "<string>",
"insufficient_evidence": true,
"evidence": [
{
"start_sec": 123,
"end_sec": 123,
"text": "<string>"
}
]
}
},
"gaps": {
"skill": 123,
"playbook": 123,
"rationale": "<string>"
},
"coaching": {
"top_wins": [
"<string>"
],
"top_opportunities": [
"<string>"
],
"suggested_drills": [
{
"facet": "<string>",
"assignment": "<string>"
}
]
}
},
"type": "call",
"call_log": {
"_id": "<string>",
"contact": {},
"recording_url": "<string>",
"duration": 123
},
"user": {
"_id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"error": 123,
"message": "<string>"
}Retrieves a single scored call by its ID, including the full AI-generated insight with scoring facets, lead qualification, and coaching recommendations.
Path Parameters
- id (required, string): Scored call ID
Response
Returns the scored call object matching the given ID, or 404 if not found.{
"data": {
"_id": "507f1f77bcf86cd799439011",
"insight": {
"total_score": 78,
"lead": {
"function": "Sales",
"tech_stack_mentioned": ["Salesforce", "Outreach"],
"current_vendor": "Competitor Inc",
"fit_score": 85,
"is_decision_maker": true,
"is_correct_persona": true,
"pain_point_resonated": true,
"is_qualified_meeting": true,
"is_likely_to_buy": false,
"prospect_lifecycle_stage": ["solution_aware"]
},
"messaging": {
"value_prop_resonated": ["efficiency", "time_savings"],
"objection_outcome": ["handled"],
"emotional_triggers": ["frustration_with_current_tool"],
"recommendation_to_nail_messaging": "Lead with ROI data specific to their industry"
},
"targeting_feedback": {
"persona_fit": "excellent",
"industry_fit": "good",
"persona_seniority": "vp",
"title_relevance": "good",
"data_quality_issue": [],
"future_follow_up_needed": true,
"follow_up_reason": ["renewal"]
},
"metadata": {
"duration_sec": 245,
"asr_confidence_avg": 0.92,
"audio_features_available": true,
"talk_listen_ratio_rep": 0.45,
"total_questions": 8,
"open_question_ratio": 0.625,
"interruptions_by_rep": 1,
"core_pitch_duration_sec": 35,
"estimated_wpm_rep": 155,
"objections_detected": ["budget"]
},
"facets": {
"intro": {
"score": 85,
"weight_pct": 10,
"explanation": "Strong permission-based opener",
"insufficient_evidence": false,
"checks": {
"permission_opener_used": true,
"opener_length_sec": 12,
"time_to_opener_sec": 3,
"improvement_recommendation": "Consider a more personalized opener"
}
},
"discovery": {
"score": 72,
"weight_pct": 25,
"explanation": "Good question quality but missed timing topic",
"insufficient_evidence": false,
"metrics": {
"total_questions": 8,
"open_question_ratio": 0.625,
"improvement_recommendation": "Ask about timeline and decision process",
"topic_coverage": ["pain", "current_tools"]
}
},
"pitch": {
"score": 80,
"weight_pct": 20,
"explanation": "Well-tailored pitch to discovery findings",
"insufficient_evidence": false,
"metrics": {
"core_pitch_duration_sec": 35,
"tailored_to_discovery": true,
"improvement_recommendation": "Include a customer success story",
"outcome_keywords": ["efficiency", "save_time"]
}
},
"tonality": {
"score": 75,
"weight_pct": 15,
"explanation": "Good pace, minor filler word usage",
"insufficient_evidence": false,
"metrics": {
"estimated_wpm": 155,
"interruptions_by_rep": 1,
"filler_density_per_min": 2.1,
"improvement_recommendation": "Reduce filler words"
}
},
"objection_handling": {
"score": 70,
"weight_pct": 15,
"explanation": "Addressed budget objection but no follow-up probe",
"insufficient_evidence": false,
"metrics": {
"objections_detected": ["budget"],
"followup_probe_present": false,
"resolution_check_present": true,
"improvement_recommendation": "Add a follow-up question after handling objections"
}
},
"cta": {
"score": 82,
"weight_pct": 15,
"explanation": "Clear CTA with specific time offered",
"insufficient_evidence": false,
"metrics": {
"cta_attempted": true,
"cta_type": "meeting",
"specific_time_offered": true,
"improvement_recommendation": "Confirm next steps via email",
"outcome": "accepted"
}
}
},
"gaps": {
"skill": 25,
"playbook": 15,
"rationale": "Discovery needs more depth on timing and decision process"
},
"coaching": {
"top_wins": ["Strong opener", "Good pitch tailoring"],
"top_opportunities": ["Deeper discovery", "Objection follow-up probes"],
"suggested_drills": [
{
"facet": "discovery",
"assignment": "Practice SPIN questions for uncovering timeline"
}
]
}
},
"call_log": {
"_id": "507f1f77bcf86cd799439022",
"contact": {
"first_name": "John",
"last_name": "Doe",
"company": "Acme Corp"
},
"recording_url": "https://recordings.example.com/call_abc123.mp3",
"duration": 245
},
"user": {
"_id": "507f1f77bcf86cd799439033",
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]"
},
"type": "call",
"createdAt": "2024-01-15T14:33:00.000Z",
"updatedAt": "2024-01-15T14:33:00.000Z"
}
}
⌘I