> This page is for Referencia de la API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://signalcore.ai/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://signalcore.ai/docs/_mcp/server.

# Raw

GET https://signalcore.ai/v1/conversations/{conversation_id}/raw

The conversation as it was stored, for its technical view: each message's blocks, the
model's usage on each reply, when each came, and how its last turn ended.

Reference: https://signalcore.ai/docs/referencia/conversaciones/raw

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `conversation_id` (string, required)

## Response

### 200

Successful Response

- `id` (string, required)
- `agent_id` (string, required)
- `trigger_id` (string, required, nullable)
- `handled_by` (enum, required)
  - Allowed values: `agent`, `person`, `nobody`
- `pending` (boolean, required)
- `test` (boolean, required)
- `created_at` (datetime, required)
- `outcome` (enum, required, nullable)
  - Allowed values: `done`, `failed`
- `error` (string, required, nullable)
- `last_at` (datetime, required)
- `messages` (list of RawMessageOut, required)
- `run_id` (string, optional, nullable)
- `handover` (HandoverOut, optional, nullable) — A change of who answers a conversation: to whom, why, who set it and when.
- `title` (string, optional, nullable)
- `channel` (ChannelGlance, optional, nullable) — The channel a conversation is on, as a list draws it.
- `contact` (ContactGlance, optional, nullable) — The person a conversation on a channel is with, or a person of a host's page (on no channel).
- `reply_due_at` (datetime, optional, nullable)
- `last_inbound_at` (datetime, optional, nullable)
- `call` (CallGlance, optional, nullable) — The call a conversation is (VOICE.md): the owner's in the browser or a phone call, when the worker took it and when it ended, why and how long.
- `person` (PersonOut, optional, nullable) — Who a conversation is with (`people`).

## Errors

### 422 Conversations Raw Request Unprocessable Entity Error

Validation Error

- `detail` (list of ValidationError, optional)

## Types

### RawMessageOut

A message as it was stored: its blocks as the model saw or said them (a file's bytes and a thinking block's signature left out), and what the model reported the reply cost.

- `id` (string, required)
- `seq` (integer, required)
- `role` (enum, required)
  - Allowed values: `user`, `assistant`
- `content` (list of map from string to any, required)
- `usage` (map from string to any, required, nullable)
- `created_at` (datetime, required)

### HandoverOut

A change of who answers a conversation: to whom, why, who set it and when.

- `holder` (enum, required)
  - Allowed values: `agent`, `person`, `nobody`
- `reason` (string, required)
- `by` (string, required)
- `title` (string, required, nullable)
- `at` (datetime, required)

### ChannelGlance

The channel a conversation is on, as a list draws it.

- `id` (string, required)
- `kind` (string, required)
- `name` (string, required)

### ContactGlance

The person a conversation on a channel is with, or a person of a host's page (on no channel).

- `id` (string, required)
- `name` (string, required, nullable)
- `address` (string, required)
- `muted` (boolean, optional, default: false)

### CallGlance

The call a conversation is (VOICE.md): the owner's in the browser or a phone call, when the worker took it and when it ended, why and how long.

- `id` (string, required)
- `kind` (enum, required)
  - Allowed values: `browser`, `phone`
- `reason` (string, required, nullable)
- `seconds` (integer, required, nullable)
- `started_at` (datetime, required, nullable)
- `ended_at` (datetime, required, nullable)
- `recording` (boolean, optional, default: false)

### PersonOut

Who a conversation is with (`people`).

- `kind` (enum, required)
  - Allowed values: `host_person`, `visitor`, `contact`, `owner`
- `external_id` (string, required)
- `name` (string, required, nullable)
- `email` (string, required, nullable)

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)
- `input` (any, optional)
- `ctx` (map from string to any, optional)

### ValidationErrorLocItem

## Examples

**Response**

```json
{
  "id": "id",
  "agent_id": "agent_id",
  "trigger_id": "trigger_id",
  "handled_by": "agent",
  "pending": true,
  "test": true,
  "created_at": "2024-01-15T09:30:00Z",
  "outcome": "done",
  "error": "error",
  "last_at": "2024-01-15T09:30:00Z",
  "messages": [
    {
      "id": "id",
      "seq": 1,
      "role": "user",
      "content": [
        {
          "key": "value"
        }
      ],
      "usage": {
        "key": "value"
      },
      "created_at": "2024-01-15T09:30:00Z"
    }
  ],
  "run_id": "run_id",
  "handover": {
    "holder": "agent",
    "reason": "reason",
    "by": "by",
    "title": "title",
    "at": "2024-01-15T09:30:00Z"
  },
  "title": "title",
  "channel": {
    "id": "id",
    "kind": "kind",
    "name": "name"
  },
  "contact": {
    "id": "id",
    "name": "name",
    "address": "address",
    "muted": true
  },
  "reply_due_at": "2024-01-15T09:30:00Z",
  "last_inbound_at": "2024-01-15T09:30:00Z",
  "call": {
    "id": "id",
    "kind": "browser",
    "reason": "reason",
    "seconds": 1,
    "started_at": "2024-01-15T09:30:00Z",
    "ended_at": "2024-01-15T09:30:00Z",
    "recording": true
  },
  "person": {
    "kind": "host_person",
    "external_id": "external_id",
    "name": "name",
    "email": "email"
  }
}
```

**SDK Code**

```python
import requests

url = "https://signalcore.ai/v1/conversations/conversation_id/raw"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```