Digital Twins

The expert twin catalogue is not available. The ready-made expert twins this page used to list are gone while LVNG remakes them. Until then the catalogue is empty, so there are no expert twins to browse or add, and the routes that managed them are not listed here.

Your personal twin is a profile of how you write and decide, built from what you have already written in LVNG: call transcripts, chat messages, emails and messages from connected platforms. There is no survey. Preview what LVNG would read, build the twin, then read it back.

Base path: /api/v2/twins

Preview the Sources

GET/api/v2/twins/passive/previewAuthenticated

Counts what LVNG would read to build your twin, without building it. ready is true once there are at least 1,000 characters to read.

Request

cURL
curl -X GET "https://api.lvng.ai/api/v2/twins/passive/preview" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response 200

{
  "success": true,
  "data": {
    "source_counts": {
      "transcript": 3,
      "message": 142,
      "email": 18,
      "platform_message": 0
    },
    "total_chars": 48210,
    "ready": true,
    "sample_excerpts": {
      "transcript": "Let's keep the launch date and cut the second dashboard...",
      "message": "Can we move the review to Thursday?",
      "email": "Thanks for the notes. Two changes before we send it...",
      "platform_message": null
    }
  }
}

Build Your Twin

POST/api/v2/twins/passive/buildAuthenticated

Reads your sources and builds (or rebuilds) your personal twin. The request waits until the twin is built, usually 10 to 30 seconds. With less than 1,000 characters to read it answers 422 and builds nothing.

Body Parameters

namestring

The twin's name (up to 80 characters). Defaults to your name.

workspace_idstring (UUID)

The workspace the twin belongs to. Defaults to the first workspace you joined.

max_transcriptsinteger
Default: 50

Most call transcripts to read (1 to 200).

max_messagesinteger
Default: 500

Most chat messages to read (1 to 2000).

max_emailsinteger
Default: 100

Most emails to read (1 to 500).

max_platform_messagesinteger
Default: 200

Most connected-platform messages to read (1 to 1000).

Request

cURL
curl -X POST "https://api.lvng.ai/api/v2/twins/passive/build" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "workspace_id": "00000000-0000-0000-0000-000000000000",
  "max_transcripts": 0,
  "max_messages": 0,
  "max_emails": 0,
  "max_platform_messages": 0
}'

Response 200

{
  "success": true,
  "data": {
    "id": "e5f6a7b8-c9d0-4e2f-8a4b-5c6d7e8f9012",
    "user_id": "f6a7b8c9-0d1e-4f3a-8b5c-6d7e8f901234",
    "workspace_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
    "name": "Jordan",
    "twin_kind": "self",
    "decision_principles": ["Ship the smallest version that answers the question"],
    "voice_style": "Short, direct sentences; asks a question before deciding."
  },
  "meta": {
    "source_counts": { "transcript": 3, "message": 142, "email": 18, "platform_message": 0 },
    "total_chars": 48210,
    "corpus_chars": 48210,
    "duration_ms": 18450,
    "evidence_strength": "medium"
  }
}

Get Your Twin

GET/api/v2/twins/meAuthenticated

Returns your personal twin, or data: null when you have not built one.

Request

cURL
curl -X GET "https://api.lvng.ai/api/v2/twins/me" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response 200

{
  "success": true,
  "data": {
    "id": "e5f6a7b8-c9d0-4e2f-8a4b-5c6d7e8f9012",
    "user_id": "f6a7b8c9-0d1e-4f3a-8b5c-6d7e8f901234",
    "workspace_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
    "name": "Jordan",
    "twin_kind": "self",
    "decision_principles": ["Ship the smallest version that answers the question"],
    "voice_style": "Short, direct sentences; asks a question before deciding."
  }
}