Skip to main content
GET
/
v1
/
analyses
/
{id}
Retrieve Analysis
curl --request GET \
  --url https://api.kallglot.com/v1/analyses/{id} \
  --header 'Authorization: Bearer <token>'
{
  "id": "anl_01HDEF456789012",
  "object": "analysis",
  "session_id": "sess_01HXYZ123456789",
  "call_id": null,
  "profile": "default",
  "status": "completed",
  "summary": "Customer checked order status; agent confirmed the new ship date.",
  "sentiment": {
    "customer": "Neutral, slightly anxious early; satisfied after confirmation.",
    "agent": "Calm and solution-oriented throughout."
  },
  "compliance": {
    "status": "ok",
    "flags": []
  },
  "performance": {
    "score": 0.86
  },
  "error": null,
  "created_at": "2026-03-26T11:10:00Z",
  "completed_at": "2026-03-26T11:10:22Z"
}

Documentation Index

Fetch the complete documentation index at: https://developer.kallglot.com/llms.txt

Use this file to discover all available pages before exploring further.

Retrieve a queued or completed analysis by ID. Paths use the plural /v1/analyses segment.

Path Parameters

id
string
required
The analysis identifier returned from POST /v1/sessions/{session_id}/analysis (prefix anl_).

Response

id
string
Analysis identifier.
object
string
Always analysis.
session_id
string
Session analyzed.
call_id
string
Linked call id when available.
profile
string
Analysis profile supplied at creation (default default).
status
string
processing, completed, or failed.
summary
string
Natural-language summary when analysis finished successfully.
sentiment
object
Optional condensed sentiment summaries.
compliance
object
Optional compliance rollup.
performance
object
Optional quality summary.
error
string
Plain-text failure explanation when status is failed.
created_at
string
Creation time (ISO 8601).
completed_at
string
Completion time (ISO 8601) once finished.

Request Examples

cURL
curl https://api.kallglot.com/v1/analyses/anl_01HDEF456789012 \
  -H "Authorization: Bearer sk_live_your_api_key"
Node.js
const response = await fetch('https://api.kallglot.com/v1/analyses/anl_01HDEF456789012', {
  headers: { Authorization: 'Bearer sk_live_your_api_key' }
});

const analysis = await response.json();

if (analysis.status === 'completed') {
  console.log(analysis.summary);
  console.log(analysis.sentiment);
}
Python
import requests

response = requests.get(
    'https://api.kallglot.com/v1/analyses/anl_01HDEF456789012',
    headers={'Authorization': 'Bearer sk_live_your_api_key'},
)
analysis = response.json()

if analysis['status'] == 'completed':
    print(analysis.get('summary'))
    print(analysis.get('sentiment'))

Response Examples

{
  "id": "anl_01HDEF456789012",
  "object": "analysis",
  "session_id": "sess_01HXYZ123456789",
  "call_id": null,
  "profile": "default",
  "status": "completed",
  "summary": "Customer checked order status; agent confirmed the new ship date.",
  "sentiment": {
    "customer": "Neutral, slightly anxious early; satisfied after confirmation.",
    "agent": "Calm and solution-oriented throughout."
  },
  "compliance": {
    "status": "ok",
    "flags": []
  },
  "performance": {
    "score": 0.86
  },
  "error": null,
  "created_at": "2026-03-26T11:10:00Z",
  "completed_at": "2026-03-26T11:10:22Z"
}

Polling

Poll GET /v1/analyses/{id} until status moves to completed or failed:
async function waitForAnalysis(analysisId, maxWaitMs = 120000) {
  const deadline = Date.now() + maxWaitMs;

  while (Date.now() < deadline) {
    const response = await fetch(`https://api.kallglot.com/v1/analyses/${analysisId}`, {
      headers: { Authorization: 'Bearer sk_live_your_api_key' }
    });
    const analysis = await response.json();

    if (analysis.status === 'completed') {
      return analysis;
    }
    if (analysis.status === 'failed') {
      throw new Error(analysis.error || 'Analysis failed');
    }
    await new Promise(resolve => setTimeout(resolve, 2000));
  }

  throw new Error('Analysis polling timed out');
}

Retention

Poll only until the object reaches a terminal state, then persist anything you need in your systems. Long-lived storage is your responsibility; use webhooks when you want push delivery.