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

# Create a Thumbnail Job

> Create an asynchronous thumbnail generation job by making a `POST` request to `https://api.opus.pro/api/generative-jobs`. Returns a `jobId` to poll. Charges 7 credits when the job completes successfully; refunds on failure.

<Note>
  **Experimental.** Subject to change; daily caps apply and the endpoint may be temporarily disabled via a runtime kill switch. Currently published jobType: `thumbnail`.
</Note>


## OpenAPI

````yaml POST /api/generative-jobs
openapi: 3.0.0
info:
  title: Clip API
  description: Clip API documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://api.opus.pro
    description: OpusClip Open API Production Server
security: []
tags: []
paths:
  /api/generative-jobs:
    post:
      tags:
        - generative-jobs
      summary: Create a thumbnail generation job
      description: >-
        Experimental. Subject to change; daily caps apply and the endpoint may
        be temporarily disabled via a runtime kill switch. Currently the only
        published `jobType` is `thumbnail` (7 credits/call, charged on success
        and refunded on failure).
      operationId: GenerativeJobController_createGenerativeJob
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerativeThumbnailJobRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerativeJobCreateResponse'
      security:
        - bearer: []
components:
  schemas:
    GenerativeThumbnailJobRequest:
      type: object
      properties:
        jobType:
          type: string
          enum:
            - thumbnail
          description: >-
            The type of generative job to create. Currently the only published
            value is `thumbnail`.
        sourceUri:
          type: string
          description: URL of the source video to extract thumbnails from.
          example: https://youtube.com/watch?v=...
        referenceImageUri:
          type: string
          description: >-
            Optional reference image URL. The thumbnail composition draws
            stylistic cues from this image. Upload via `POST /api/upload-links`
            with `usecase: 'FreeToolMedia'`, then pass the returned `cdnUrl`
            here.
          example: https://cdn.opus.pro/uploads/.../ref.png
        maskImageUri:
          type: string
          description: Optional mask image URL for inpainting.
          example: https://cdn.opus.pro/uploads/.../mask.png
        prompt:
          type: string
          description: Optional text prompt steering the thumbnail composition.
          example: punchy red overlay, bold sans-serif title
      required:
        - jobType
        - sourceUri
    GenerativeJobCreateResponse:
      type: object
      properties:
        jobId:
          type: string
          description: >-
            The generated job ID. Use it with `GET /api/generative-jobs/{jobId}`
            to poll status and fetch results.
          example: thumbnail-aB3xR7nQ8z
      required:
        - jobId
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````