---
title: "POST /api/personas_v2/"
method: POST
path: "/api/personas_v2/"
tags: ["personas_v2"]
---

# POST /api/personas_v2/

`POST /api/personas_v2/`

Mixin to provide a reusable `list` method for filtering and paginating queryset results.

## Request body

- PersonaCreateSerializerV2
  - `id` string, uuid, required
  - `gender` 'm' | 'f' | 'nb', required — * `m` - Male * `f` - Female * `nb` - Non-Binary
  - `creator_name` string, required — Name of the persona, used to identify the real person, not for display
  - `video_scene` string, nullable — A word to describe the background setting. API user rely on this
  - `keywords` string, nullable — keywords (comma separated)
  - `lipsync_input` string, uri
  - `gdown_url` string, uri
  - `consent_video` string, uri, nullable, required — The URL of the consent video
  - `lipsync_input_url` string, required
  - `labels` string[]
  - `matching_voice_non_null` string, required
  - `original_voice_provider` 'elevenlabs' | 'minimax' | 'fishaudio' — * `elevenlabs` - ElevenLabs * `minimax` - MiniMax * `fishaudio` - FishAudio
  - `process_status` 'pending' | 'processing' | 'voice_creating' | 'video_validating' | 'crop_and_matte' | 'reviewing' | 'done' | 'failed' | 'rejected', required — * `pending` - Pending * `processing` - Processing * `voice_creating` - Voice Creating * `video_validating` - Video Validating * `crop_and_matte` - Crop And Matte * `reviewing` - Reviewing * `done` - Done * `failed` - Failed * `rejected` - Rejected
  - `failed_reason` string, nullable, required — The reason why the creator creation failed, if not failed, it should be empty
  - `webhook_url` string, uri, nullable — Webhook url, when the creator is created, we will send a webhook to the url(only for api user)
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Response `201`

- PersonaCreateSerializerV2
  - `id` string, uuid, required
  - `gender` 'm' | 'f' | 'nb', required — * `m` - Male * `f` - Female * `nb` - Non-Binary
  - `creator_name` string, required — Name of the persona, used to identify the real person, not for display
  - `video_scene` string, nullable — A word to describe the background setting. API user rely on this
  - `keywords` string, nullable — keywords (comma separated)
  - `lipsync_input` string, uri
  - `gdown_url` string, uri
  - `consent_video` string, uri, nullable, required — The URL of the consent video
  - `lipsync_input_url` string, required
  - `labels` string[]
  - `matching_voice_non_null` string, required
  - `original_voice_provider` 'elevenlabs' | 'minimax' | 'fishaudio' — * `elevenlabs` - ElevenLabs * `minimax` - MiniMax * `fishaudio` - FishAudio
  - `process_status` 'pending' | 'processing' | 'voice_creating' | 'video_validating' | 'crop_and_matte' | 'reviewing' | 'done' | 'failed' | 'rejected', required — * `pending` - Pending * `processing` - Processing * `voice_creating` - Voice Creating * `video_validating` - Video Validating * `crop_and_matte` - Crop And Matte * `reviewing` - Reviewing * `done` - Done * `failed` - Failed * `rejected` - Rejected
  - `failed_reason` string, nullable, required — The reason why the creator creation failed, if not failed, it should be empty
  - `webhook_url` string, uri, nullable — Webhook url, when the creator is created, we will send a webhook to the url(only for api user)
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

---

[API](https://skmtc.dev/creatify/apis/creatify-ai-api.md) · [All operations](https://skmtc.dev/creatify/apis/creatify-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/creatify/creatify-ai-api/revisions/7ca3bf8077ba/schema)
