Skip to main content

The Digital Human API

Get your API key

One click: get your API key. Sign in and the key is created and shown right away.

The Digital Human API lets you create a digital human — an avatar with a face, a voice, and a personality — and bring it into a live, two-way conversation. You onboard an identity once, then stream it into realtime sessions your users can talk to, with sub-second latency over LiveKit.

Base URL​

https://api.lookalike.com

Every endpoint lives under /v1.

Authentication​

Every request is authenticated with an API key. Get one in the console, keep it on your server, and send it as a bearer token (or the X-API-Key header):

curl https://api.lookalike.com/v1/identities \
-H "Authorization: Bearer $LOOKALIKE_API_KEY"

Keys start with lk_. Treat them like passwords — keep them server-side, never in client code. A missing or invalid key returns 401.

The building blocks​

The API is built around two objects:

  • An identity is the avatar — its face, voice, and personality bundled into one identity_id. You create it once and reuse it everywhere.
  • A session is a live conversation that brings an identity to life over LiveKit.

That's the whole model. See Core concepts for the details.

The journey, end to end​

From zero to a live conversation is four steps.

1. Get an API key​

Get your API key: sign in and the key is created for you. This is also where you buy credits and watch usage.

2. Create an identity​

One call uploads your reference media and trains the avatar. When you include a photo it comes back ready to use — no separate training step to wait on.

curl -sS -X POST https://api.lookalike.com/v1/identities \
-H "Authorization: Bearer $LOOKALIKE_API_KEY" \
-F "name=Ada" \
-F "prompt=You are Ada, a warm and concise product guide." \
-F "image=@ada.jpg;type=image/jpeg" \
-F "audio=@ada.wav;type=audio/wav"
# -> { "identity_id": "id_...", "status": "ready" }

Full field list: Create an Identity.

3. Start a session​

Pass the identity_id and get back everything needed to join a LiveKit room — a room name, an access token, and the server URL.

curl -sS -X POST https://api.lookalike.com/v1/sessions/start \
-H "Authorization: Bearer $LOOKALIKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "identity_id": "id_..." }'
# -> { "room_name": "...", "token": "...", "livekit_url": "wss://..." }

4. Join and talk​

Connect with any LiveKit client using livekit_url and token. The token is minted server-side, so your browser never sees your API key. The avatar listens and responds in real time, handling turns and interruptions on its own. To end the session, either disconnect from the room or call POST /v1/sessions/{session_id}/end explicitly.

import { Room } from 'livekit-client';

const room = new Room();
await room.connect(livekitUrl, token);
await room.localParticipant.setMicrophoneEnabled(true); // so the avatar can hear you

Full request, response, and client examples: Realtime API.

Billing​

Usage is metered in credits from a single balance: onboarding an identity is a one-time charge, and a realtime session is charged per minute while the avatar is streaming. Buy credits and track usage in the Console. See Billing & credits for rates.

Next steps​