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

# Post apiv2tensorshotsprojects jobsimage to video

> Create a new image-to-video job.



## OpenAPI

````yaml https://backend.tensorpix.ai/api/schema/ post /api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/
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: []
externalDocs:
  url: https://docs.tensorpix.ai
  description: Check out the full TensorPix documentation.
paths:
  /api/v2/tensorshots/projects/{project_pk}/jobs/image-to-video/:
    post:
      tags:
        - v2
      description: Create a new image-to-video job.
      operationId: v2_tensorshots_projects_jobs_image_to_video_create
      parameters:
        - in: path
          name: project_pk
          schema:
            type: string
            format: uuid
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateImageToVideoJob'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateImageToVideoJob'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateImageToVideoJob'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateImageToVideoJob'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          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: ''
      security:
        - tokenAuth: []
components:
  schemas:
    CreateImageToVideoJob:
      type: object
      description: Serializer for creating image-to-video jobs.
      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/CreateImageToVideoJobModelNameEnum'
        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.)
        start_frame:
          type:
            - string
            - 'null'
          format: uuid
          description: Optional image to use as the starting frame of the video.
        last_frame:
          type:
            - string
            - 'null'
          format: uuid
          description: Optional image to use as the ending frame of the video.
        requested_resolution:
          type: string
          description: Requested video resolution (e.g. 480p).
          maxLength: 20
        requested_video_duration:
          type: number
          format: double
          minimum: 1
          description: Requested video duration in seconds.
      required:
        - cost_credits
        - created_at
        - description
        - error_message
        - finished_at
        - id
        - model_name
        - processing_time_seconds
        - prompt
        - requested_resolution
        - requested_video_duration
        - started_at
        - status
    ValidationError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        non_field_errors:
          type: array
          items:
            type: string
      required:
        - errors
        - non_field_errors
    UnauthenticatedError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
      required:
        - detail
    ForbiddenError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
      required:
        - detail
    NotFoundError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
      required:
        - detail
    RateLimitError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
      required:
        - detail
    TensorshotsJobStatusEnum:
      enum:
        - queued
        - processing
        - expired
        - cancelled
        - completed
        - failed
      type: string
      description: |-
        * `queued` - Queued
        * `processing` - Processing
        * `expired` - Expired
        * `cancelled` - Cancelled
        * `completed` - Completed
        * `failed` - Failed
    CreateImageToVideoJobModelNameEnum:
      enum:
        - atlas_ultra_i2v
        - atlas_ultra_nsfw_i2v
        - gemini_omni_flash_i2v
        - grok_imagine_video_1_5_i2v
        - grok_imagine_video_i2v
        - happy_horse_1_0_i2v
        - hexal_standard_i2v
        - hexal_standard_nsfw_i2v
        - hexal_ultra_i2v
        - hexal_ultra_nsfw_i2v
        - hexal_fast_i2v
        - kling_2_6_pro_i2v
        - kling_3_0_turbo_standard_i2v
        - kling_3_0_turbo_pro_i2v
        - kling_3_0_i2v
        - kling_3_0_pro_i2v
        - seedance_2_0_i2v
        - seedance_2_0_fast_i2v
        - sora_2_i2v
        - sora_2_pro_i2v
        - veo_3_1_fal_i2v
        - veo_3_1_fal_first_last_frame_i2v
        - veo_3_1_fast_generate_preview_v2
        - veo_3_1_fast_fal_first_last_frame_i2v
        - veo_3_1_generate_preview
        - veo_3_1_fast_generate_preview
        - wan_2_7_i2v
      type: string
      description: >-
        * `atlas_ultra_i2v` - atlas_ultra_i2v

        * `atlas_ultra_nsfw_i2v` - atlas_ultra_nsfw_i2v

        * `gemini_omni_flash_i2v` - gemini_omni_flash_i2v

        * `grok_imagine_video_1_5_i2v` - grok_imagine_video_1_5_i2v

        * `grok_imagine_video_i2v` - grok_imagine_video_i2v

        * `happy_horse_1_0_i2v` - happy_horse_1_0_i2v

        * `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

        * `hexal_fast_i2v` - hexal_fast_i2v

        * `kling_2_6_pro_i2v` - kling_2_6_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_3_0_i2v` - kling_3_0_i2v

        * `kling_3_0_pro_i2v` - kling_3_0_pro_i2v

        * `seedance_2_0_i2v` - seedance_2_0_i2v

        * `seedance_2_0_fast_i2v` - seedance_2_0_fast_i2v

        * `sora_2_i2v` - sora_2_i2v

        * `sora_2_pro_i2v` - sora_2_pro_i2v

        * `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_i2v

        * `veo_3_1_fast_generate_preview_v2` - veo_3_1_fast_generate_preview_v2

        * `veo_3_1_fast_fal_first_last_frame_i2v` -
        veo_3_1_fast_fal_first_last_frame_i2v

        * `veo_3_1_generate_preview` - veo_3_1_generate_preview

        * `veo_3_1_fast_generate_preview` - veo_3_1_fast_generate_preview

        * `wan_2_7_i2v` - wan_2_7_i2v
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````