order_id you got when you triggered the call.
curl https://app.scalysis.com/api/v1/orders/1368642/outcome \
-H "Authorization: Bearer YOUR_API_KEY"
{
"success": true,
"orderId": 1368642,
"orderNumber": "ORD-1001",
"callStatus": "completed",
"callDurationSec": 87,
"callOutcome": "Order confirmed",
"totalCallCost": 2.9,
"summary": "Customer confirmed the order for Friday delivery.",
"transcript": [
{ "speaker": "agent", "text": "Hi Rahul, calling about order ORD-1001." },
{ "speaker": "customer", "text": "Yes, please send it." }
],
"recordingUrl": "https://app.scalysis.com/api/v1/orders/1368642/recording?callId=440905&t=..."
}
Not ready yet?
A404 with Call is still in progress means the call has not ended or is still being analysed. Wait, then retry:
async function getResult(orderId) {
for (let i = 0; i < 20; i++) {
const res = await fetch(`https://app.scalysis.com/api/v1/orders/${orderId}/outcome`, {
headers: { Authorization: `Bearer ${process.env.SCALYSIS_API_KEY}` },
});
if (res.ok) return res.json();
if (res.status !== 404) throw new Error(`HTTP ${res.status}`);
await new Promise((r) => setTimeout(r, 15000));
}
}
Polling many calls? Use the agent webhook instead. Results come to you as soon as each call ends.

