> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akapulu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Render take video

> Start talking-avatar video for a take that is ready_to_render. Locks phonemes and video instructions. show_ai_label and show_logo default to true. show_logo false requires Starter or higher.

Start talking-avatar video for a take that is `ready_to_render` with `audio_url` set.

This locks phonemes and video instructions. Credits are charged when the job starts. If there are not enough credits, the request fails and the take is unchanged.

Optional body (both default `true`):

* `show_ai_label` — overlay **This is AI**. Can be `false` on any plan.
* `show_logo` — overlay **Made by** plus the Akapulu Labs logo. `false` requires [Starter](https://akapulu.com/pricing) or higher.

Recommend leaving `show_ai_label` on. Invisible watermarks and Content Credentials still go on the files. Details: [AI content disclosure](/guides/clips/ai-content-disclosure).

Poll [Get take](/api-reference/takes/get) until `status` is `complete`, then download `video_url`.


## OpenAPI

````yaml openapi/akapulu.json POST /clips/{clip_id}/takes/{take_id}/render
openapi: 3.1.0
info:
  title: Akapulu Labs API
  version: 1.0.0
  description: Public Akapulu Labs API reference.
servers:
  - url: https://akapulu.com/api
security:
  - bearerAuth: []
paths:
  /clips/{clip_id}/takes/{take_id}/render:
    post:
      summary: Render take video
      description: >-
        Start talking-avatar video for a take that is ready_to_render. Locks
        phonemes and video instructions. show_ai_label and show_logo default to
        true. show_logo false requires Starter or higher.
      parameters:
        - name: clip_id
          in: path
          required: true
          description: Clip ID.
          schema:
            type: string
            format: uuid
        - name: take_id
          in: path
          required: true
          description: Take ID.
          schema:
            type: string
            format: uuid
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenderTakeRequest'
            examples:
              default:
                value:
                  show_ai_label: true
                  show_logo: true
      responses:
        '200':
          description: Video job started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Take'
              examples:
                success:
                  value:
                    id: 22222222-3333-4444-5555-666666666666
                    clip_id: 11111111-2222-3333-4444-555555555555
                    name: Take 1
                    status: starting_video
                    avatar_id: 66666666-7777-8888-9999-000000000000
                    error: null
                    audio_url: https://example.s3.amazonaws.com/audio?X-Amz-Expires=3600
                    video_url: null
                    created_at: '2026-08-25T20:00:00+00:00'
                    updated_at: '2026-08-25T20:00:12+00:00'
                    text: Welcome to Acme. Thanks for watching.
                    phonemes: wˈɛlkəm tə ˈækmi
                    chunk_prompts:
                      - index: 0
                        start: 0
                        end: 2.92
                        text: Welcome to Acme.
                        face_prompt: >-
                          A lady is talking with animated facial expressions,
                          frequently raising and arching the eyebrows for
                          emphasis. Only the foreground is moving, the
                          background remains static.
                        upper_body_prompt: >-
                          A lady is talking to the camera with natural movements
                          while speaking. The torso and shoulders stay steady.
                          Only the foreground person is moving, the background
                          remains static.
                    show_ai_label: true
                    show_logo: true
                    estimated_seconds: 210
                    credits_charged: 4
                    credits_used: 4.25
                    credits_remaining: 20.75
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                default:
                  value:
                    error: show_ai_label must be a boolean
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                default:
                  value:
                    error: Invalid API key
        '403':
          description: Not enough credits, or show_logo false on the Free plan
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                not_enough_credits:
                  value:
                    error: You don't have enough credits on your current plan
                    credits_needed: 4
                    credits_remaining: 1
                logo_plan:
                  value:
                    error: >-
                      The Akapulu Labs logo cannot be turned off on the Free
                      plan. Upgrade to Starter or higher to pass show_logo:
                      false.
        '404':
          description: Take not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                default:
                  value:
                    error: Take not found
        '409':
          description: Take is not ready to render
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                default:
                  value:
                    error: Take has no synthesized audio
components:
  schemas:
    RenderTakeRequest:
      type: object
      properties:
        show_ai_label:
          type: boolean
          default: true
          description: Overlay This is AI. Allowed false on every plan.
        show_logo:
          type: boolean
          default: true
          description: >-
            Overlay Made by plus the Akapulu Labs logo. false requires Starter
            or higher.
    Take:
      allOf:
        - $ref: '#/components/schemas/TakeSummary'
        - type: object
          properties:
            text:
              type: string
            phonemes:
              type: string
            chunk_prompts:
              type: array
              items:
                $ref: '#/components/schemas/ChunkPrompt'
            show_ai_label:
              type: boolean
            show_logo:
              type: boolean
            estimated_seconds:
              type: number
              description: Approximate seconds left in the current job.
            credits_charged:
              description: Credits charged for this request, when a job was billed.
            credits_used: {}
            credits_remaining: {}
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message.
    TakeSummary:
      type: object
      required:
        - id
        - clip_id
        - name
        - status
        - avatar_id
        - error
        - audio_url
        - video_url
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        clip_id:
          type: string
          format: uuid
        name:
          type: string
        status:
          type: string
          enum:
            - starting_tts
            - generating_audio
            - generating_motion_instructions
            - ready_to_render
            - starting_video
            - preparing_video
            - generating_face_video
            - generating_avatar_gestures
            - compositing
            - applying_labels
            - watermarking
            - signing
            - complete
            - failed
          description: >-
            Current landmark. Poll until ready_to_render for audio, complete for
            video.
        avatar_id:
          type: string
          format: uuid
        error:
          type:
            - string
            - 'null'
        audio_url:
          type:
            - string
            - 'null'
          description: Hour-long download URL once audio exists.
        video_url:
          type:
            - string
            - 'null'
          description: Hour-long download URL once video exists.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    ChunkPrompt:
      type: object
      properties:
        index:
          type: integer
        start:
          type: number
          description: Chunk start in seconds.
        end:
          type: number
          description: Chunk end in seconds.
        text:
          type: string
          description: Spoken words in this chunk.
        face_prompt:
          type: string
        upper_body_prompt:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````