GET/v1/detect/sessions/{session_id}

Product: Noesis (call intelligence). URL: https://api.noesis.detectif.ai/v1/detect/sessions/{session_id}.

Returns one of your calls or file analyses by session id (from the stream token or the socket's ready message). During a call: status active, the latest classification (latest), the audio seconds received so far and the timestamps. After it: the final answer (label, category, confidence, decided, timeline). A token's session not started yet is waiting. Sessions of other accounts return 404. Details are kept for 30 days; after that the session keeps its times, seconds and final answer only. Requires scope noesis:read.

Authentication

Send your API key as Authorization: Bearer <your API key>.

Headers

NameTypeDetails
Authorizationrequiredstring

Bearer <your API key>. Keys are created in the dashboard; see Authentication.

Path parameters

NameTypeDetails
session_idrequiredstring

The session id (32 lowercase hexadecimal characters) from the stream token, the socket's ready or usage event, or a recording's result.

Response

200 Success.

  • request_idstring or null
  • typestring

    default "session"always "session"

  • objectstring

    default "noesis.session"always "noesis.session"

  • session_idstringrequired
  • stream_session_idstring or null

    The session id in the socket's ready event (the id the analysis gave the call). session_id is the call's id in your account (the one a stream token returns and the usage event carries). Both work for lookups.

  • operation_idstring or null
  • statusstringrequired

    waiting: the stream token was created but not used yet; active: the call is running; completed / interrupted / failed: the call ended.

    One of: waiting, expired, active, completed, interrupted, failed

  • closedbooleanrequired
  • call_idstring or null

    Your call id, or the provider's (Twilio callSid, Plivo callUuid).

  • transportstring or null

    One of: websocket, file

  • orchestrationstring or null

    binary, json, twilio, plivo or file.

  • encodingstring or null
  • sample_rateinteger or null
  • channelsinteger or null
  • recordbooleanrequired
  • started_atstring or null
  • ready_atstring or null
  • ended_atstring or null
  • end_reasonstring or null
  • audio_secondsnumberrequired

    Seconds of the called person's audio received so far.

  • billed_secondsnumber or null
  • credits_chargedinteger or null
  • latestobject or null

    The latest classification event (live during the call).

  • eventsarray of object

    Classification events, oldest first.

  • errorstring or null
  • labelstring or null

    The answer: the final one after the call, the latest during it.

  • categorystring or null
  • confidencenumber or null
  • decidedboolean or null
  • timelinearray of object or null

Example response

JSON
{
  "request_id": "req_8f14e45fceea167a5a36dedd",
  "type": "session",
  "object": "noesis.session",
  "session_id": "5b2f0c9e8d7a4b6c9e1f2a3b4c5d6e7f",
  "stream_session_id": "5b2f0c9e8d7a4b6c9e1f2a3b4c5d6e7f",
  "operation_id": "op_6f1ed002ab5595859014ebf0951522d9",
  "status": "completed",
  "closed": true,
  "call_id": "CA0123456789abcdef0123456789abcdef",
  "transport": "websocket",
  "orchestration": "twilio",
  "encoding": "mulaw",
  "sample_rate": 8000,
  "channels": 1,
  "record": true,
  "started_at": "2026-10-19T09:30:00Z",
  "ready_at": "2026-10-19T09:30:00Z",
  "ended_at": "2026-10-19T09:31:12Z",
  "end_reason": "client_end",
  "audio_seconds": 71.4,
  "billed_seconds": 71.4,
  "latest": {
    "type": "classification",
    "seq": 1,
    "version": 1,
    "t": 4.2,
    "label": "human",
    "category": "human",
    "confidence": 0.93,
    "change": "initial",
    "trigger": "speech",
    "reason": "A person answered and greeted the caller."
  },
  "events": [
    {
      "type": "classification",
      "seq": 1,
      "version": 1,
      "t": 4.2,
      "label": "human",
      "category": "human",
      "confidence": 0.93,
      "change": "initial",
      "trigger": "speech",
      "reason": "A person answered and greeted the caller."
    }
  ],
  "label": "human",
  "category": "human",
  "confidence": 0.93,
  "decided": true,
  "timeline": [
    {
      "type": "classification",
      "seq": 1,
      "version": 1,
      "t": 4.2,
      "label": "human",
      "category": "human",
      "confidence": 0.93,
      "change": "initial",
      "trigger": "speech",
      "reason": "A person answered and greeted the caller."
    }
  ]
}

Errors

StatusMeaning
400

The request is invalid, for example an API key in the URL or an unsupported parameter.

401

The API key is missing, invalid or revoked.

403

The key lacks the required scope, the e-mail address is not verified, or the account is suspended.

404

No session with this id exists in your account.

429

Too many requests, or too many calls and file analyses at the same time. Wait for Retry-After seconds.

500

Something went wrong on our side.

Error bodies share one shape with a stable error.code; see Errors for every code and how to fix it.

Code samples

cURL
curl "https://api.noesis.detectif.ai/v1/detect/sessions/5b2f0c9e8d7a4b6c9e1f2a3b4c5d6e7f" \
  -H "Authorization: Bearer $DETECTIF_API_KEY"