---
title: "Retrieve a conversation"
method: GET
path: "/conversations/{id}"
tags: ["Conversations"]
---

# Retrieve a conversation

`GET /conversations/{id}`

## Request

- Base URL: `https://api.meetdarwin.ai/v1`
- URL: `https://api.meetdarwin.ai/v1/conversations/{id}`
- Auth: HTTP bearer

Requires the `conversations:read` scope.

## Path parameters

- `id` string, required

## Query parameters

- `expand[]` string

## Response `200`

OK

- Conversation
  - `id` string, required
  - `object` 'conversation', required
  - `created_at` string, date-time, nullable, required
  - `updated_at` string, date-time, nullable, required
  - `page_url` string, nullable, required
  - `page_path` string, nullable, required
  - `outcome` 'meeting' | 'lead' | 'handoff' | 'none', required
  - `message_count` integer, required
  - `preview` string, nullable, required: The visitor's first message, up to 160 characters.
  - `contact` string, nullable, required: The contact's id. Needs contacts:read.
  - `lead` object, required
    - `first_name` string, nullable, required
    - `last_name` string, nullable, required
    - `email` string, nullable, required
    - `captured_at` string, date-time, nullable, required
  - `booking` object, required
    - `started_at` string, date-time, nullable, required
    - `booked_at` string, date-time, nullable, required
    - `booker_email` string, nullable, required
  - `handoff` object, nullable, required
    - `requested_at` string, date-time, nullable, required
    - `reason` string, nullable, required
  - `visitor` object, required
    - `device` string, nullable, required
    - `country` string, nullable, required
    - `region` string, nullable, required
    - `city` string, nullable, required
    - `referrer` string, nullable, required
    - `source` string, nullable, required
    - `utm` object, required
    - `ai_referred` boolean, required: Arrived from an AI assistant (ChatGPT, Perplexity, Claude, Gemini, Copilot…).
    - `returning` boolean, nullable, required
    - `first_seen_at` string, date-time, nullable, required
    - `last_seen_at` string, date-time, nullable, required
  - `opening` object, nullable, required
    - `experiment` string, required
    - `variant` string, nullable, required
  - `evaluation` object, nullable, required: Darwin's grading, once the conversation has gone quiet.
    - `intent` string, nullable, required
    - `buying_stage` string, nullable, required
    - `qualification_score` number, nullable, required: 0 to 10.
    - `meeting_intent` number, nullable, required: 0 to 10.
    - `understood` boolean, nullable, required
    - `failure_category` string, nullable, required
    - `abandonment_reason` string, nullable, required
    - `recommended_improvement` string, nullable, required
    - `evaluated_at` string, date-time, nullable, required
  - `test` boolean, required
  - `admin_url` string, required: This conversation in the Darwin admin, for a link in Slack or a CRM note.
  - `messages` object[]: With expand[]=messages.
    - `id` string, required
    - `role` 'user' | 'assistant' | 'system', required
    - `text` string, nullable, required
    - `created_at` string, date-time, nullable, required
    - `tools` string[], required: What the agent did in this turn, in words (searched the website, offered a meeting…).

## Other responses

- `400`: Invalid request (`invalid_request`, `unsupported_version`).
- `401`: Missing or invalid key (`authentication_required`, `invalid_api_key`).
- `402`: The workspace must add a card before the API can be used (`payment_required`).
- `403`: The key lacks the scope (`insufficient_scope`), the feature is off (`feature_disabled`), or the workspace's plan doesn't include it (`plan_required`, with `required_plan`).
- `404`: No such object in this workspace (`not_found`).
- `409`: Conflicts with the current state (`conflict`, `idempotency_key_in_use`), or the change would leave a live agent with no calendar or live form (`goal_required`).
- `422`: Refused by a rule (`unprocessable`, `idempotency_key_reused`).
- `429`: Rate limited (`rate_limited`) or a monthly allowance used (`quota_exceeded`); see Retry-After.

## Changes

- **2026-10-20** `f93b0bcb454a`: 24 info
  - added the optional property `feature` to the response with the `400` status
  - added the optional property `feature` to the response with the `401` status
  - added the optional property `feature` to the response with the `402` status
  - added the optional property `feature` to the response with the `403` status
  - …20 more

[Operation history](https://skmtc.dev/meetdarwin/apis/darwin-api/changes/conversations/:id/get.md)

---

[API](https://skmtc.dev/meetdarwin/apis/darwin-api.md) · [All operations](https://skmtc.dev/meetdarwin/apis/darwin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meetdarwin/apis/darwin-api/revisions/f93b0bcb454a?raw)
