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

# Apply a real estate agent

> Copy the selected agent name, phone, email, and profile photo into the project outro template. The route keeps other outro values. It selects the default outro template when the project has no outro template. Later agent changes do not update the project until the agent is applied again.



## OpenAPI

````yaml https://backend.tensorpix.ai/api/schema/ post /api/v2/real-estate/projects/{project_id}/apply-agent/
openapi: 3.1.0
info:
  title: TensorPix OpenAPI Documentation
  version: 1.1.0
  termsOfService: https://tensorpix.ai/terms-conditions
  contact:
    name: TensorPix Dev Team
    email: devs@tensorpix.ai
servers:
  - url: https://backend.tensorpix.ai
security: []
tags:
  - name: tensorshots-projects
    description: Create, read, update, and delete TensorShots projects.
    x-displayName: Projects
    x-group: TensorShots Projects
  - name: tensorshots-shots
    description: Manage TensorShots project shots and shot voiceovers.
    x-displayName: Shots
    x-group: TensorShots Shots
  - name: tensorshots-assets
    description: Manage TensorShots audio, image, video, and shared assets.
    x-displayName: Assets
    x-group: TensorShots Assets
  - name: tensorshots-jobs
    description: Start, list, read, and delete TensorShots generation and render jobs.
    x-displayName: Jobs
    x-group: TensorShots Jobs
  - name: tensorshots-settings
    description: Manage TensorShots styles, music, voices, and prompt templates.
    x-displayName: Settings
    x-group: TensorShots Settings
  - name: real-estate-projects
    description: >-
      Manage real estate projects, property data, render settings, previews, and
      cost estimates.
    x-displayName: Projects
    x-group: Real Estate Projects
  - name: real-estate-shots
    description: >-
      Manage ordered project shots, first frames, generation prompts, crops,
      timing, speed, and transitions.
    x-displayName: Shots
    x-group: Real Estate Shots
  - name: real-estate-assets
    description: >-
      Manage project image assets, video assets, logos, and uploaded background
      music.
    x-displayName: Assets
    x-group: Real Estate Assets
  - name: real-estate-voiceover
    description: >-
      Manage project voiceover text, generated audio, caption timing, and text
      limits.
    x-displayName: Voiceover
    x-group: Real Estate Voiceover
  - name: real-estate-jobs
    description: >-
      Start, list, read, and poll property import, image edit, shot video, full
      video, and render jobs.
    x-displayName: Jobs
    x-group: Real Estate Jobs
  - name: real-estate-branding
    description: >-
      Manage reusable agent profiles and brand kits, then copy them into
      projects.
    x-displayName: Branding
    x-group: Real Estate Branding
  - name: real-estate-templates
    description: List intro and outro templates and manage project template images.
    x-displayName: Templates
    x-group: Real Estate Templates
externalDocs:
  url: https://docs.tensorpix.ai
  description: Check out the full TensorPix documentation.
paths:
  /api/v2/real-estate/projects/{project_id}/apply-agent/:
    post:
      tags:
        - real-estate-branding
      summary: Apply a real estate agent
      description: >-
        Copy the selected agent name, phone, email, and profile photo into the
        project outro template. The route keeps other outro values. It selects
        the default outro template when the project has no outro template. Later
        agent changes do not update the project until the agent is applied
        again.
      operationId: real_estate_project_apply_agent_post
      parameters:
        - in: path
          name: project_id
          schema:
            type: string
            format: uuid
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyRealEstateAgent'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ApplyRealEstateAgent'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ApplyRealEstateAgent'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectRealEstate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail: {}
                  error_id:
                    type: string
                    format: uuid
                additionalProperties: true
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: ''
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
          description: ''
      security:
        - tokenAuth: []
        - jwtAuth: []
components:
  schemas:
    ApplyRealEstateAgent:
      type: object
      description: Require the agent to apply to an owned real-estate project.
      properties:
        agent_id:
          type: string
          format: uuid
      required:
        - agent_id
    ProjectRealEstate:
      type: object
      description: Serializer for real estate project detail responses.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Project title
        description:
          type: string
          readOnly: true
          description: Project description
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was last updated.
        background_music:
          $ref: '#/components/schemas/AudioAsset'
        background_music_volume:
          type: number
          format: double
          readOnly: true
          description: Background music volume from 0.0 to 1.0.
        logo_asset:
          $ref: '#/components/schemas/ImageAsset'
        speaker_voice:
          $ref: '#/components/schemas/SpeakerVoiceSettings'
        is_voiceover_enabled:
          type: boolean
          readOnly: true
          description: Whether this real-estate project uses project-level voiceover.
        is_captions_enabled:
          type: boolean
          readOnly: true
          description: Whether this real-estate project renders captions on the video.
        ai_generated_text:
          type:
            - string
            - 'null'
          readOnly: true
          description: Optional text shown in the bottom-left corner of the final video.
        video_style:
          readOnly: true
          description: |-
            Style of the real estate video.

            * `just_listed` - Just Listed
            * `just_sold` - Just Sold
            * `coming_soon` - Coming Soon
            * `for_rent` - For Rent
            * `price_drop` - Price Drop
          oneOf:
            - $ref: '#/components/schemas/VideoStyleEnum'
            - $ref: '#/components/schemas/NullEnum'
        video_format:
          allOf:
            - $ref: '#/components/schemas/VideoFormatEnum'
          readOnly: true
          description: |-
            Video aspect ratio format.

            * `9:16` - 9:16
            * `4:5` - 4:5
            * `1:1` - 1:1
            * `16:9` - 16:9
        model_code_name:
          allOf:
            - $ref: '#/components/schemas/ModelCodeNameEnum'
          readOnly: true
          description: |-
            Public model code used for real-estate video generation.

            * `medium` - Medium
            * `high` - High
            * `extra_high` - Extra high
            * `ultra` - Ultra
        requested_output_width:
          type: integer
          readOnly: true
        requested_output_height:
          type: integer
          readOnly: true
        requested_video_aspect_ratio:
          type: string
          description: Aspect ratio computed from the requested output width and height.
          readOnly: true
        duration_s:
          type: number
          format: double
          description: Final timeline duration after shot speed and transition overlap.
          readOnly: true
        requested_duration_s:
          type: number
          format: double
          description: Legacy read only alias for duration_s.
          readOnly: true
        street_address:
          type: string
          readOnly: true
        suburb:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        country_name:
          type: string
          readOnly: true
        city_name:
          type: string
          readOnly: true
        num_bedrooms:
          type:
            - number
            - 'null'
          format: double
          readOnly: true
        num_bathrooms:
          type:
            - number
            - 'null'
          format: double
          readOnly: true
        num_car_parking_spots:
          type:
            - integer
            - 'null'
          readOnly: true
        num_floors:
          type:
            - integer
            - 'null'
          readOnly: true
        price_display:
          type: string
          readOnly: true
        land_size_value:
          type:
            - number
            - 'null'
          format: double
          readOnly: true
        land_size_unit:
          allOf:
            - $ref: '#/components/schemas/LandSizeUnitEnum'
          readOnly: true
        real_estate_type:
          allOf:
            - $ref: '#/components/schemas/RealEstateTypeEnum'
          readOnly: true
        additional_information:
          type: string
          readOnly: true
        intro_template_key:
          type: string
          readOnly: true
        outro_template_key:
          type: string
          readOnly: true
        intro_template_overrides:
          type: object
          additionalProperties: {}
          description: >-
            Validated intro template values with image IDs expanded to image
            assets.
          readOnly: true
        outro_template_overrides:
          type: object
          additionalProperties: {}
          description: >-
            Validated outro template values with image IDs expanded to image
            assets.
          readOnly: true
        shot_count:
          type: integer
          readOnly: true
          description: Number of ordered shots in the project.
        num_full_rendered_videos:
          type: integer
          readOnly: true
          description: Number of saved final project renders.
        ready_for_generation:
          type: boolean
          description: Whether the project has the media required for a full video job.
          readOnly: true
        ready_for_render:
          type: boolean
          description: >-
            Whether each shot has a selected video or first frame and no render
            job is active.
          readOnly: true
        voiceover:
          allOf:
            - $ref: '#/components/schemas/VoiceoverAsset'
          readOnly: true
          description: >-
            Saved voiceover text, audio, captions, and metadata for this
            project.
      required:
        - additional_information
        - ai_generated_text
        - background_music
        - background_music_volume
        - city_name
        - country_name
        - created_at
        - description
        - duration_s
        - id
        - intro_template_key
        - intro_template_overrides
        - is_captions_enabled
        - is_voiceover_enabled
        - land_size_unit
        - land_size_value
        - logo_asset
        - model_code_name
        - name
        - num_bathrooms
        - num_bedrooms
        - num_car_parking_spots
        - num_floors
        - num_full_rendered_videos
        - outro_template_key
        - outro_template_overrides
        - price_display
        - ready_for_generation
        - ready_for_render
        - real_estate_type
        - requested_duration_s
        - requested_output_height
        - requested_output_width
        - requested_video_aspect_ratio
        - shot_count
        - speaker_voice
        - state
        - street_address
        - suburb
        - updated_at
        - video_format
        - video_style
        - voiceover
    UnauthenticatedError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    ForbiddenError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    NotFoundError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    RateLimitError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    ServerError:
      type: object
      description: Describe errors created by the global exception handler.
      properties:
        error:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - error
        - error_id
    AudioAsset:
      type: object
      description: Serializer for AudioAsset with basic fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        file:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: >-
            Audio file stored on S3. Pre-signed URL may expire. To generate a
            new URL, call the endpoint again. If the field is `null`, the audio
            hasn't been completely uploaded.
        duration_s:
          type: number
          format: double
          readOnly: true
          description: Audio duration in seconds.
        file_size:
          type: integer
          readOnly: true
          description: File size in bytes.
        bitrate:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Audio bitrate in bits per second.
        sample_rate:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Audio sample rate in Hz (e.g., 44100, 48000).
        channels:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Number of audio channels (1=mono, 2=stereo, etc.).
      required:
        - bitrate
        - channels
        - created_at
        - duration_s
        - file
        - file_size
        - id
        - name
        - sample_rate
    ImageAsset:
      type: object
      description: Serializer for ImageAsset with basic fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        file:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: >-
            Image file stored on S3. Pre-signed URL may expire. To generate a
            new URL, call the endpoint again. If the field is `null`, the image
            hasn't been completely uploaded.
        thumbnail:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: Image thumbnail
        external_url:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: External URL if image is hosted elsewhere (not on our S3).
        width:
          type: integer
          readOnly: true
          description: Image width in pixels.
        height:
          type: integer
          readOnly: true
          description: Image height in pixels.
        file_size:
          type: integer
          readOnly: true
          description: File size in bytes. Null for text-based images.
        tags:
          type: array
          items:
            type: string
          readOnly: true
        name_tag:
          type: string
          readOnly: true
          description: >-
            Tag identifier for the asset that's based on asset's name. Used on
            frontend to reference the asset '@Parrot-1')
          pattern: ^[-a-zA-Z0-9_]+$
      required:
        - created_at
        - external_url
        - file
        - file_size
        - height
        - id
        - name
        - name_tag
        - tags
        - thumbnail
        - width
    SpeakerVoiceSettings:
      type: object
      description: |-
        Serializer for SpeakerVoiceSettings (read-only for users).

        Users can view and select from available voices.
        Voice management is restricted to admins via Django admin.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        name:
          type: string
          readOnly: true
        language_code:
          type: string
          readOnly: true
          description: DEPRECATED in favor of `language`.
        language:
          type: string
          readOnly: true
          description: Language shorthand for this voice (e.g., 'en' for English).
        accent:
          type: string
          readOnly: true
        gender:
          type: string
          readOnly: true
        use_case:
          type: string
          readOnly: true
          description: >-
            Optional field to indicate the intended use case for this voice
            (e.g., narration, character dialogue).
        descriptive:
          type: string
          readOnly: true
          description: The descriptive of the voice, e.g. calm
        cloned_by_count:
          type: integer
          readOnly: true
          description: >-
            Number of times this voice has been cloned or used as a base for
            derivative voices. Can be used to identify popular voices and
            prioritize them in the UI.
        description:
          type:
            - string
            - 'null'
          readOnly: true
          description: Description of the speaker voice setting
        avatar_image_url:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: URL to an S3-hosted avatar image representing the voice.
        audio_preview_url:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: URL to an S3-hosted audio preview demonstrating the voice.
        supported_languages:
          type: array
          items:
            $ref: '#/components/schemas/SpeakerVoiceLanguage'
          readOnly: true
      required:
        - accent
        - audio_preview_url
        - avatar_image_url
        - cloned_by_count
        - created_at
        - description
        - descriptive
        - gender
        - id
        - language
        - language_code
        - name
        - supported_languages
        - use_case
    VideoStyleEnum:
      enum:
        - just_listed
        - just_sold
        - coming_soon
        - for_rent
        - price_drop
      type: string
      description: |-
        * `just_listed` - Just Listed
        * `just_sold` - Just Sold
        * `coming_soon` - Coming Soon
        * `for_rent` - For Rent
        * `price_drop` - Price Drop
    NullEnum:
      type: 'null'
    VideoFormatEnum:
      enum:
        - '9:16'
        - '4:5'
        - '1:1'
        - '16:9'
      type: string
      description: |-
        * `9:16` - 9:16
        * `4:5` - 4:5
        * `1:1` - 1:1
        * `16:9` - 16:9
    ModelCodeNameEnum:
      enum:
        - medium
        - high
        - extra_high
        - ultra
      type: string
      description: |-
        * `medium` - Medium
        * `high` - High
        * `extra_high` - Extra high
        * `ultra` - Ultra
    LandSizeUnitEnum:
      enum:
        - sqm
        - sqft
        - hectares
        - acres
      type: string
      description: |-
        * `sqm` - m²
        * `sqft` - sqft
        * `hectares` - ha
        * `acres` - ac
    RealEstateTypeEnum:
      enum:
        - house
        - townhome
        - apartment
        - condo
        - villa
        - land
        - commercial
        - other
      type: string
      description: |-
        * `house` - House
        * `townhome` - Townhome
        * `apartment` - Apartment
        * `condo` - Condo
        * `villa` - Villa
        * `land` - Land
        * `commercial` - Commercial
        * `other` - Other
    VoiceoverAsset:
      type: object
      description: Serializer for VoiceoverAsset with nested audio and text.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        audio_asset:
          allOf:
            - $ref: '#/components/schemas/AudioAsset'
          readOnly: true
        caption_asset:
          allOf:
            - $ref: '#/components/schemas/CaptionAsset'
          readOnly: true
        text_asset:
          allOf:
            - $ref: '#/components/schemas/TextAsset'
          readOnly: true
        metadata:
          readOnly: true
          description: Voiceover - e.g. extra description fields
      required:
        - audio_asset
        - caption_asset
        - created_at
        - id
        - metadata
        - text_asset
    SpeakerVoiceLanguage:
      type: object
      description: Serializer for supported language variants of a voice.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        locale:
          type:
            - string
            - 'null'
          readOnly: true
          description: Unique lowercase BCP-47 language code (e.g., en-US).
        language:
          type: string
          readOnly: true
          description: Display name for this language (e.g., en).
        accent:
          type:
            - string
            - 'null'
          readOnly: true
          description: >-
            Optional accent or dialect information (e.g., Southern US,
            Castilian).
        preview_url:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: URL to an S3-hosted audio preview demonstrating the language.
      required:
        - accent
        - id
        - language
        - locale
        - preview_url
    CaptionAsset:
      type: object
      description: Serialize one generated caption asset.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        file:
          type: string
          format: uri
          readOnly: true
      required:
        - created_at
        - file
        - id
        - name
    TextAsset:
      type: object
      description: Serializer for TextAsset with basic fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        text:
          type: string
          readOnly: true
          description: Generated text content.
      required:
        - created_at
        - id
        - text
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.