> ## 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.

# Create a real estate image edit job

> Create and queue one image edit job for one owned real estate shot.



## OpenAPI

````yaml https://backend.tensorpix.ai/api/schema/ post /api/v2/real-estate/projects/{project_id}/shots/{shot_id}/image-edit-jobs/
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: Create, read, update, and delete real estate projects.
    x-displayName: Projects
    x-group: Real Estate Projects
  - name: real-estate-shots
    description: Create, read, update, and delete real estate project shots.
    x-displayName: Shots
    x-group: Real Estate Shots
  - name: real-estate-assets
    description: Manage image, video, logo, and music assets for real estate projects.
    x-displayName: Assets
    x-group: Real Estate Assets
  - name: real-estate-voiceover
    description: Manage voiceover text, audio, and text limits for real estate projects.
    x-displayName: Voiceover
    x-group: Real Estate Voiceover
  - name: real-estate-jobs
    description: Start, list, read, and cancel jobs for real estate projects and shots.
    x-displayName: Jobs
    x-group: Real Estate Jobs
  - name: real-estate-branding
    description: Manage reusable agents and brand kits for real estate projects.
    x-displayName: Branding
    x-group: Real Estate Branding
  - name: real-estate-templates
    description: List video templates for real estate projects.
    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}/shots/{shot_id}/image-edit-jobs/:
    post:
      tags:
        - real-estate-jobs
      summary: Create a real estate image edit job
      description: Create and queue one image edit job for one owned real estate shot.
      operationId: real_estate_image_edit_job_list_create_post
      parameters:
        - in: path
          name: project_id
          schema:
            type: string
            format: uuid
          required: true
        - in: path
          name: shot_id
          schema:
            type: string
            format: uuid
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRealEstateImageToImageJob'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateRealEstateImageToImageJob'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateRealEstateImageToImageJob'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealEstateImageToImageJob'
          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: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RealEstateImageToImageJob'
          description: ''
      security:
        - tokenAuth: []
        - jwtAuth: []
components:
  schemas:
    CreateRealEstateImageToImageJob:
      type: object
      description: Create one real-estate image edit from the shot's current image.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        error_message:
          type: string
          readOnly: true
          description: Error details if job failed.
        status:
          allOf:
            - $ref: '#/components/schemas/TensorshotsJobStatusEnum'
          readOnly: true
          description: |-
            Current job status.

            * `queued` - Queued
            * `processing` - Processing
            * `expired` - Expired
            * `cancelled` - Cancelled
            * `completed` - Completed
            * `failed` - Failed
        description:
          type: string
          readOnly: true
          description: Human-readable job description.
        started_at:
          type: string
          format: date-time
          readOnly: true
          description: When job processing started.
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
          description: When the job processing successfully finished.
        processing_time_seconds:
          type: number
          format: double
          description: |-
            Calculate job processing time in seconds.
            If the job is still processing, calculate time since started.
            If the job was cancelled, deleted, calculate time until that point.
            if the job is completed, calculate time until finished.
          readOnly: true
        cost_credits:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          readOnly: true
          description: Job cost in 🪙 Credits.
        prompt:
          type: string
          description: Prompt text to generate from.
          maxLength: 80000
        model_name:
          $ref: '#/components/schemas/ImageToImageModelNameEnum'
        model_config:
          description: >-
            Model-specific configuration parameters (temperature, style,
            quality, etc.).
        style_settings:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            Style presets applied to this job (camera, lighting, generation,
            etc.)
        num_requested_images:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of images to generate (1-10).
        reference_images_ids:
          type: array
          items: {}
          readOnly: true
        real_estate_shot:
          type:
            - string
            - 'null'
          format: uuid
      required:
        - cost_credits
        - created_at
        - description
        - error_message
        - finished_at
        - id
        - model_name
        - processing_time_seconds
        - prompt
        - reference_images_ids
        - started_at
        - status
    RealEstateImageToImageJob:
      type: object
      description: Read one real-estate shot image-edit job.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        error_message:
          type: string
          readOnly: true
          description: Error details if job failed.
        status:
          allOf:
            - $ref: '#/components/schemas/TensorshotsJobStatusEnum'
          readOnly: true
          description: |-
            Current job status.

            * `queued` - Queued
            * `processing` - Processing
            * `expired` - Expired
            * `cancelled` - Cancelled
            * `completed` - Completed
            * `failed` - Failed
        description:
          type: string
          readOnly: true
          description: Human-readable job description.
        started_at:
          type: string
          format: date-time
          readOnly: true
          description: When job processing started.
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
          description: When the job processing successfully finished.
        processing_time_seconds:
          type: number
          format: double
          description: |-
            Calculate job processing time in seconds.
            If the job is still processing, calculate time since started.
            If the job was cancelled, deleted, calculate time until that point.
            if the job is completed, calculate time until finished.
          readOnly: true
        cost_credits:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          readOnly: true
          description: Job cost in 🪙 Credits.
        project_real_estate:
          type:
            - string
            - 'null'
          format: uuid
          readOnly: true
          description: Real-estate project this job belongs to (optional).
        real_estate_shot:
          type:
            - string
            - 'null'
          format: uuid
          readOnly: true
          description: Real-estate shot this job belongs to (optional).
        prompt:
          type: string
          readOnly: true
          description: Prompt text to generate from.
        style_settings:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
          description: >-
            Style presets applied to this job (camera, lighting, generation,
            etc.)
        model_name:
          allOf:
            - $ref: '#/components/schemas/TensorshotsModelNameEnum'
          readOnly: true
          description: >-
            AI model used for generation (e.g., 'dall-e-3', 'gpt-4',
            'runway-gen3').


            * `hexal_standard_t2v` - Hexal Standard T2V

            * `hexal_fast_i2v` - Hexal Fast I2V

            * `hexal_ultra_t2v` - Hexal Ultra T2V

            * `hexal_standard_i2v` - Hexal Standard I2V

            * `hexal_standard_nsfw_i2v` - Hexal Standard NSFW I2V

            * `hexal_ultra_i2v` - Hexal Ultra I2V

            * `hexal_ultra_nsfw_i2v` - Hexal Ultra NSFW I2V

            * `atlas_ultra_i2v` - Atlas Ultra I2V

            * `atlas_ultra_nsfw_i2v` - Atlas Ultra NSFW I2V

            * `volta_standard_i2v` - Volta Standard I2V

            * `volta_ultra_i2v` - Volta Ultra I2V

            * `veo_3_1_generate_preview` - Veo 3.1 Generate Preview

            * `veo_3_1_fast_generate_preview` - Veo 3.1 Fast Generate Preview

            * `veo_3_1_fast_generate_preview_v2` - Veo 3.1 Fast Fal

            * `veo_3_1_fast_fal_first_last_frame_i2v` - Veo 3.1 Fast Fal
            First/Last Frame

            * `veo_3_1_fal_i2v` - Veo 3.1 Fal I2V

            * `veo_3_1_fal_first_last_frame_i2v` - Veo 3.1 Fal First/Last Frame

            * `seedance_2_0_i2v` - Seedance 2.0 I2V

            * `seedance_2_0_fast_i2v` - Seedance 2.0 Fast I2V

            * `seedance_2_0_t2v` - Seedance 2.0 T2V

            * `kling_3_0_i2v` - Kling 3.0 I2V

            * `kling_3_0_pro_i2v` - Kling 3.0 Pro I2V

            * `kling_3_0_turbo_standard_i2v` - Kling 3.0 Turbo Standard I2V

            * `kling_3_0_turbo_pro_i2v` - Kling 3.0 Turbo Pro I2V

            * `kling_2_6_pro_i2v` - Kling 2.6 Pro I2V

            * `sora_2_i2v` - Sora 2 I2V

            * `sora_2_pro_i2v` - Sora 2 Pro I2V

            * `radix_i2i` - Radix I2I

            * `radix_t2i` - Radix T2I

            * `nebula_i2i` - Nebula I2I

            * `nebula_nsfw_i2i` - Nebula NSFW I2I

            * `nebula_t2i` - Nebula T2I

            * `nebula_nsfw_t2i` - Nebula NSFW T2I

            * `refina_i2i` - Refina I2I

            * `refina_t2i` - Refina T2I

            * `zephyr_i2i` - Zephyr I2I

            * `zephyr_t2i` - Zephyr T2I

            * `gemini_3_1_flash_i2i` - Gemini 3.1 Flash I2I

            * `gemini_3_1_flash_t2i` - Gemini 3.1 Flash T2I

            * `gpt_image_2_t2i` - GPT Image 2 T2I

            * `gpt_image_2_i2i` - GPT Image 2 I2I

            * `seedream_5_0_pro_t2i` - Seedream 5.0 Pro T2I

            * `seedream_5_0_pro_i2i` - Seedream 5.0 Pro I2I

            * `grok_imagine_image_t2i` - Grok Imagine Image T2I

            * `grok_imagine_image_i2i` - Grok Imagine Image I2I

            * `grok_imagine_image_quality_t2i` - Grok Imagine Image Quality T2I

            * `grok_imagine_image_quality_i2i` - Grok Imagine Image Quality I2I

            * `parallax_t2a` - Parallax T2A

            * `elevenlabs_v3_t2a` - ElevenLabs V3 T2A

            * `happy_horse_1_0_i2v` - Happy Horse 1.0 I2V

            * `grok_imagine_video_i2v` - Grok Imagine Video I2V

            * `grok_imagine_video_1_5_i2v` - Grok Imagine Video 1.5 I2V

            * `gemini_omni_flash_i2v` - Gemini Omni Flash I2V

            * `gemini_omni_flash_1_1_i2v` - Gemini Omni Flash 1.1 I2V

            * `wan_2_7_i2v` - Wan 2.7 I2V

            * `minimax_h3_i2v` - MiniMax H3 I2V

            * `seedance_2_5_i2v` - Seedance 2.5 I2V
        model_config:
          readOnly: true
          description: >-
            Model-specific configuration parameters (temperature, style,
            quality, etc.).
        num_requested_images:
          type: integer
          readOnly: true
          description: Number of images to generate (1-10).
        reference_images:
          type: array
          items:
            $ref: '#/components/schemas/ReferenceImageAssetSummary'
          readOnly: true
      required:
        - cost_credits
        - created_at
        - description
        - error_message
        - finished_at
        - id
        - model_config
        - model_name
        - num_requested_images
        - processing_time_seconds
        - project_real_estate
        - prompt
        - real_estate_shot
        - reference_images
        - started_at
        - status
        - style_settings
    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
    TensorshotsJobStatusEnum:
      enum:
        - queued
        - processing
        - expired
        - cancelled
        - completed
        - failed
      type: string
      description: |-
        * `queued` - Queued
        * `processing` - Processing
        * `expired` - Expired
        * `cancelled` - Cancelled
        * `completed` - Completed
        * `failed` - Failed
    ImageToImageModelNameEnum:
      enum:
        - zephyr_i2i
        - gemini_3_1_flash_i2i
        - gpt_image_2_i2i
        - grok_imagine_image_i2i
        - grok_imagine_image_quality_i2i
        - nebula_i2i
        - nebula_nsfw_i2i
        - seedream_5_0_pro_i2i
      type: string
      description: |-
        * `zephyr_i2i` - zephyr_i2i
        * `gemini_3_1_flash_i2i` - gemini_3_1_flash_i2i
        * `gpt_image_2_i2i` - gpt_image_2_i2i
        * `grok_imagine_image_i2i` - grok_imagine_image_i2i
        * `grok_imagine_image_quality_i2i` - grok_imagine_image_quality_i2i
        * `nebula_i2i` - nebula_i2i
        * `nebula_nsfw_i2i` - nebula_nsfw_i2i
        * `seedream_5_0_pro_i2i` - seedream_5_0_pro_i2i
    TensorshotsModelNameEnum:
      enum:
        - hexal_standard_t2v
        - hexal_fast_i2v
        - hexal_ultra_t2v
        - hexal_standard_i2v
        - hexal_standard_nsfw_i2v
        - hexal_ultra_i2v
        - hexal_ultra_nsfw_i2v
        - atlas_ultra_i2v
        - atlas_ultra_nsfw_i2v
        - volta_standard_i2v
        - volta_ultra_i2v
        - veo_3_1_generate_preview
        - veo_3_1_fast_generate_preview
        - veo_3_1_fast_generate_preview_v2
        - veo_3_1_fast_fal_first_last_frame_i2v
        - veo_3_1_fal_i2v
        - veo_3_1_fal_first_last_frame_i2v
        - seedance_2_0_i2v
        - seedance_2_0_fast_i2v
        - seedance_2_0_t2v
        - kling_3_0_i2v
        - kling_3_0_pro_i2v
        - kling_3_0_turbo_standard_i2v
        - kling_3_0_turbo_pro_i2v
        - kling_2_6_pro_i2v
        - sora_2_i2v
        - sora_2_pro_i2v
        - radix_i2i
        - radix_t2i
        - nebula_i2i
        - nebula_nsfw_i2i
        - nebula_t2i
        - nebula_nsfw_t2i
        - refina_i2i
        - refina_t2i
        - zephyr_i2i
        - zephyr_t2i
        - gemini_3_1_flash_i2i
        - gemini_3_1_flash_t2i
        - gpt_image_2_t2i
        - gpt_image_2_i2i
        - seedream_5_0_pro_t2i
        - seedream_5_0_pro_i2i
        - grok_imagine_image_t2i
        - grok_imagine_image_i2i
        - grok_imagine_image_quality_t2i
        - grok_imagine_image_quality_i2i
        - parallax_t2a
        - elevenlabs_v3_t2a
        - happy_horse_1_0_i2v
        - grok_imagine_video_i2v
        - grok_imagine_video_1_5_i2v
        - gemini_omni_flash_i2v
        - gemini_omni_flash_1_1_i2v
        - wan_2_7_i2v
        - minimax_h3_i2v
        - seedance_2_5_i2v
      type: string
      description: >-
        * `hexal_standard_t2v` - Hexal Standard T2V

        * `hexal_fast_i2v` - Hexal Fast I2V

        * `hexal_ultra_t2v` - Hexal Ultra T2V

        * `hexal_standard_i2v` - Hexal Standard I2V

        * `hexal_standard_nsfw_i2v` - Hexal Standard NSFW I2V

        * `hexal_ultra_i2v` - Hexal Ultra I2V

        * `hexal_ultra_nsfw_i2v` - Hexal Ultra NSFW I2V

        * `atlas_ultra_i2v` - Atlas Ultra I2V

        * `atlas_ultra_nsfw_i2v` - Atlas Ultra NSFW I2V

        * `volta_standard_i2v` - Volta Standard I2V

        * `volta_ultra_i2v` - Volta Ultra I2V

        * `veo_3_1_generate_preview` - Veo 3.1 Generate Preview

        * `veo_3_1_fast_generate_preview` - Veo 3.1 Fast Generate Preview

        * `veo_3_1_fast_generate_preview_v2` - Veo 3.1 Fast Fal

        * `veo_3_1_fast_fal_first_last_frame_i2v` - Veo 3.1 Fast Fal First/Last
        Frame

        * `veo_3_1_fal_i2v` - Veo 3.1 Fal I2V

        * `veo_3_1_fal_first_last_frame_i2v` - Veo 3.1 Fal First/Last Frame

        * `seedance_2_0_i2v` - Seedance 2.0 I2V

        * `seedance_2_0_fast_i2v` - Seedance 2.0 Fast I2V

        * `seedance_2_0_t2v` - Seedance 2.0 T2V

        * `kling_3_0_i2v` - Kling 3.0 I2V

        * `kling_3_0_pro_i2v` - Kling 3.0 Pro I2V

        * `kling_3_0_turbo_standard_i2v` - Kling 3.0 Turbo Standard I2V

        * `kling_3_0_turbo_pro_i2v` - Kling 3.0 Turbo Pro I2V

        * `kling_2_6_pro_i2v` - Kling 2.6 Pro I2V

        * `sora_2_i2v` - Sora 2 I2V

        * `sora_2_pro_i2v` - Sora 2 Pro I2V

        * `radix_i2i` - Radix I2I

        * `radix_t2i` - Radix T2I

        * `nebula_i2i` - Nebula I2I

        * `nebula_nsfw_i2i` - Nebula NSFW I2I

        * `nebula_t2i` - Nebula T2I

        * `nebula_nsfw_t2i` - Nebula NSFW T2I

        * `refina_i2i` - Refina I2I

        * `refina_t2i` - Refina T2I

        * `zephyr_i2i` - Zephyr I2I

        * `zephyr_t2i` - Zephyr T2I

        * `gemini_3_1_flash_i2i` - Gemini 3.1 Flash I2I

        * `gemini_3_1_flash_t2i` - Gemini 3.1 Flash T2I

        * `gpt_image_2_t2i` - GPT Image 2 T2I

        * `gpt_image_2_i2i` - GPT Image 2 I2I

        * `seedream_5_0_pro_t2i` - Seedream 5.0 Pro T2I

        * `seedream_5_0_pro_i2i` - Seedream 5.0 Pro I2I

        * `grok_imagine_image_t2i` - Grok Imagine Image T2I

        * `grok_imagine_image_i2i` - Grok Imagine Image I2I

        * `grok_imagine_image_quality_t2i` - Grok Imagine Image Quality T2I

        * `grok_imagine_image_quality_i2i` - Grok Imagine Image Quality I2I

        * `parallax_t2a` - Parallax T2A

        * `elevenlabs_v3_t2a` - ElevenLabs V3 T2A

        * `happy_horse_1_0_i2v` - Happy Horse 1.0 I2V

        * `grok_imagine_video_i2v` - Grok Imagine Video I2V

        * `grok_imagine_video_1_5_i2v` - Grok Imagine Video 1.5 I2V

        * `gemini_omni_flash_i2v` - Gemini Omni Flash I2V

        * `gemini_omni_flash_1_1_i2v` - Gemini Omni Flash 1.1 I2V

        * `wan_2_7_i2v` - Wan 2.7 I2V

        * `minimax_h3_i2v` - MiniMax H3 I2V

        * `seedance_2_5_i2v` - Seedance 2.5 I2V
    ReferenceImageAssetSummary:
      type: object
      description: Compact image summary used when serializing job reference images.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        project_id:
          type:
            - string
            - 'null'
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        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_]+$
        external_url:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: External URL if image is hosted elsewhere (not on our S3).
        thumbnail:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: Image thumbnail
        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.
      required:
        - external_url
        - file
        - id
        - name
        - name_tag
        - project_id
        - thumbnail
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````