Skip to main content
POST
Creates a family: a reusable cast of AI-generated people. Once ready, reference the family’s id as the selected_family_id parameter on Create Living Property Video to keep the same cast consistent across every scene of a video, instead of AI casting different people scene to scene. Creating a family is free: it always charges 0 credits, regardless of how many members you request.
Family creation requires a Pro, Max, or Enterprise plan.

Request Body

string
required
Display name for the family.Length: 1-80 characters
object[]
required
The members that make up the family’s cast.Length: 1-6 members. Requests outside this range are rejected with FAMILY_MEMBER_LIMIT_EXCEEDED.
boolean
default:"true"
Whether to start AI avatar generation immediately.
  • true (default): generation starts right away. The family is created with status generating and a task_id you can poll or receive a webhook for.
  • false: the family is created with status pending_avatars and no generation is triggered. A pending family cannot be selected for video generation until it has portraits, and there is no separate endpoint to trigger generation later, so most integrations should keep the default.
string
HTTPS URL to receive a webhook notification when avatar generation completes. Only used when generate_avatars is true.See Webhooks for payload format and verification details.
Webhook URLs must use HTTPS and cannot point to private/internal networks (SSRF protection).
string
Optional idempotency key. Retrying a request with the same key returns the original result instead of creating a duplicate family.

Response

With generate_avatars: true (default), returns a 202 Accepted response with a task to poll:
string
required
Unique identifier for the newly created family.
string
required
Unique identifier for the avatar generation task. Poll it via Get Task, or use webhook_url for a notification instead.
string
required
Initial family status. Always generating for this response shape.
boolean
required
true for live (vpk_live_) requests; false for test-mode (vpk_test_) requests. See Test Mode.
HATEOAS links for navigation.
  • self: URL to fetch the family (/v1/families/{family_id})
  • task: URL to poll for the avatar generation task (/v1/tasks/{task_id})
With generate_avatars: false, returns a 201 Created response instead, with no generation task:
string
required
Unique identifier for the newly created family.
string
required
Always pending_avatars for this response shape.

Polling for Completion

Poll the returned task_id via Get Task. Once status is completed, the task’s result contains the generated family assets:
You can also fetch the family directly with Get Family at any point to check its status.
Generation runs one portrait at a time and then composes the group card, so expect roughly 1-3 minutes per member. Poll every 10-15 seconds, or use webhook_url and skip polling entirely.

Error Codes

See Error Handling for more details.

Credits

This endpoint always charges 0 credits.

Next Steps

  1. Poll for status: Use Get Task (or Get Family) to check generation progress
  2. Wait for webhook: If configured, receive a task.completed notification when the avatars are ready
  3. Use in a video: Pass the family’s id as selected_family_id on Create Living Property Video