Noesis / API Reference

GET/v1/detect/sessions

Lists your calls and file analyses, newest first. Filter with call_id to find the session of a provider call (Twilio callSid, Plivo callUuid, taken from the start message) or of your own call id. Page with limit and cursor. 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.

Query parameters

NameTypeDetails
call_idoptionalstring or null

Only sessions of this call id (yours, or Twilio's callSid / Plivo's callUuid).

at most 200 characters

limitoptionalinteger

How many sessions to return (1-100).

1 to 100default 20

cursoroptionalstring or null

next_cursor from the previous page.

at most 256 characters

Response

200 Success.

  • request_idstringrequired
  • objectstringrequired

    always "list"

  • dataarray of objectrequired
    30 fields in data
    • 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 message (same as session_id or an alias of it; 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
  • has_morebooleanrequired
  • next_cursorstring or nullrequired

Example response

JSON
{
  "request_id": "req_8f14e45fceea167a5a36dedd",
  "object": "list",
  "data": [
    {
      "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
    }
  ],
  "has_more": false
}

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.

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" \
  -H "Authorization: Bearer $DETECTIF_API_KEY"