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

# Recommend photos for a property video

> Call this endpoint to choose final photos before automatically creating a property video. It starts a job that uses a large language model (LLM) to recommend unused project photos based on their descriptions. It favors relevant, good-quality views, varied property coverage, and less repetition of existing shots. Recommended photos are returned in a logical walkthrough order. The number of recommendations is limited by the photos you can still add to the project and the available candidates. Poll the returned job to get recommended_asset_ids. This endpoint only recommends photos; it does not create shots or generate a video.



## OpenAPI

````yaml https://backend.tensorpix.ai/api/schema/ post /api/v2/real-estate/projects/{project_id}/jobs/image-recommendation/
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}/jobs/image-recommendation/:
    post:
      tags:
        - real-estate-jobs
      summary: Recommend photos for a property video
      description: >-
        Call this endpoint to choose final photos before automatically creating
        a property video. It starts a job that uses a large language model (LLM)
        to recommend unused project photos based on their descriptions. It
        favors relevant, good-quality views, varied property coverage, and less
        repetition of existing shots. Recommended photos are returned in a
        logical walkthrough order. The number of recommendations is limited by
        the photos you can still add to the project and the available
        candidates. Poll the returned job to get recommended_asset_ids. This
        endpoint only recommends photos; it does not create shots or generate a
        video.
      operationId: real_estate_image_recommendation_job_create_post
      parameters:
        - in: path
          name: project_id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageRecommendationJob'
          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/ImageRecommendationJob'
          description: ''
      security:
        - tokenAuth: []
        - jwtAuth: []
components:
  schemas:
    ImageRecommendationJob:
      type: object
      description: Return job state and recommended photo IDs in walkthrough order.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        project_real_estate:
          type: string
          format: uuid
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/TensorshotsJobStatusEnum'
          readOnly: true
          description: |-
            Current job status.

            * `queued` - Queued
            * `processing` - Processing
            * `expired` - Expired
            * `cancelled` - Cancelled
            * `completed` - Completed
            * `failed` - Failed
        count:
          type: integer
          readOnly: true
        recommended_asset_ids:
          readOnly: true
          description: >-
            Recommended photo asset IDs in walkthrough order. No shots are
            created.
        failures:
          type: array
          items:
            $ref: '#/components/schemas/ImageRecommendationFailure'
          readOnly: true
        is_finished:
          type: boolean
          readOnly: true
        error_message:
          type: string
          readOnly: true
          description: Error details if job failed.
        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.
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
          description: When the job processing successfully finished.
      required:
        - count
        - created_at
        - error_message
        - failures
        - finished_at
        - id
        - is_finished
        - project_real_estate
        - recommended_asset_ids
        - status
        - updated_at
    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
    ImageRecommendationFailure:
      type: object
      description: Identify an image omitted because its description failed.
      properties:
        image_asset_id:
          type: string
          format: uuid
        error:
          type: string
      required:
        - error
        - image_asset_id
  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.