# Grok Imagine - Video Extend

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /api/v1/jobs/createTask:
    post:
      summary: Grok Imagine - Video Extend
      deprecated: false
      description: >-

        ## Task ID Source


        The `task_id` parameter should be obtained from the previously generated
        video task. You can create videos using the following approach:


        <Card title="Generate videos First" icon="lucide-video"
        href="/market/grok-imagine/text-to-video">
          Use the text-to-video model to create videos in order to obtain scalable task IDs
        </Card>


        **How to obtain the task ID:**

        1. Use the [Text to Video API](/cn/market/grok-imagine/text-to-video) to
        generate a video

        2. Extract the `taskId` from the API response

        3. Use this `taskId` as the `task_id` parameter in the enlargement
        request


        :::info[Information]

        Only videos generated by **Kie AI models** can be extended. External
        videos are not supported.

        :::


        ---


        ## Query Task Status


        After submitting the extended task, use the unified query endpoint to
        check the progress and obtain the results:


        <Card title="Get Task Details" icon="lucide-radar"
        href="/market/common/get-task-detail">
          Learn how to query task status and retrieve generation results.
        </Card>


        :::tip[Pro Tip]

        For production use, we recommend using the `callBackUrl` parameter to
        receive automatic notifications when upscaling completes, rather than
        polling the status endpoint.

        :::


        ---


        ## Related Resources


        <CardGroup cols={2}>
          <Card title="Market Overview" icon="lucide-store" href="/market/quickstart">
           Explore all available models
          </Card>
          <Card title="Common API" icon="lucide-cog" href="/common-api/get-account-credits">
            Check credits and account usage
          </Card>
        </CardGroup>
      operationId: grok-imagine-extend
      tags:
        - docs/en/Market/Video Models/Grok Imagine
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  description: |-
                    The model name to use for generation. Required field.

                    - Must be `grok-imagine/extend` for this endpoint
                  enum:
                    - grok-imagine/extend
                  default: grok-imagine/extend
                  examples:
                    - grok-imagine/extend
                  x-apidog-enum:
                    - value: grok-imagine/extend
                      name: ''
                      description: ''
                callBackUrl:
                  type: string
                  format: uri
                  description: >-
                    Receive the URL for the update of the video extension task
                    completion. It is optional but recommended to use in a
                    production environment. 

                    - When the video expansion is completed, the system will
                    POST the task status and results to this URL.

                    - The callback includes the generated enlarged video URL and
                    task information.

                    - Your callback endpoint should accept a POST request with a
                    JSON payload containing the video results.

                    - Alternatively, you can poll the task status using the task
                    details retrieval endpoint.

                    - To ensure the security of the callback, please refer to
                    the [Webhook Verification Guide]
                    (/common-api/webhook-verification) for the implementation
                    method of signature verification.
                  examples:
                    - https://your-domain.com/api/callback
                input:
                  type: object
                  description: Input parameters for the video upscaling task
                  properties:
                    task_id:
                      type: string
                      description: >-
                        Task ID from a previously successful video generation
                        task. Required field.


                        - Must be from a Kie AI video generation model (e.g.,
                        grok-imagine/text-to-video)

                        - The original video generation must have completed
                        successfully

                        - Only Kie AI–generated task IDs are supported
                      maxLength: 100
                      examples:
                        - task_grok_12345678
                    prompt:
                      type: string
                      description: >-
                        Text instructions describing the required movement of
                        the video. Required field. 

                        - Provide a detailed description of how you would like
                        the video to expand and continue.

                        - You can specify camera movements, scene changes,
                        object actions, etc.

                        - The more specific the prompt words are, the more
                        likely the generated effect will match your
                        expectations.

                        - Supports input in both Chinese and English.
                      examples:
                        - >-
                          The camera slowly pans forward, showing the
                          protagonist walking deeper into the forest, with the
                          sunlight filtering through the leaves and casting
                          dappled shadows.
                    extend_at:
                      type: number
                      description: >-
                        The starting position of the video extension. Optional
                        field.
                      default: 2
                      examples:
                        - 2
                      minimum: 2
                    extend_times:
                      type: number
                      description: >-
                        Duration of video extension (in seconds). Required
                        field. 

                        - `6`: Expand 6 seconds of video content

                        - `10`: Expand 10 seconds of video content

                        - The longer the extension duration, the longer the time
                        required for generation

                        - Select the appropriate duration based on the
                        complexity of the scene
                  required:
                    - task_id
                    - prompt
                    - extend_at
                    - extend_times
                  x-apidog-orders:
                    - task_id
                    - prompt
                    - extend_at
                    - extend_times
                  x-apidog-ignore-properties: []
              required:
                - model
                - input
              x-apidog-orders:
                - model
                - callBackUrl
                - input
              examples:
                - model: grok-imagine/upscale
                  callBackUrl: https://your-domain.com/api/callback
                  input:
                    task_id: task_grok_12345678
              x-apidog-ignore-properties: []
            example:
              model: grok-imagine/extend
              callBackUrl: https://your-domain.com/api/callback
              input:
                task_id: task_grok_12345678
                prompt: ''
                extend_at: 2
                extend_times: '6'
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
              example:
                code: 200
                msg: success
                data:
                  taskId: 281e5b0*********************f39b9
          headers: {}
          x-apidog-name: ''
      security:
        - BearerAuth: []
          x-apidog:
            schemeGroups:
              - id: kn8M4YUlc5i0A0179ezwx
                schemeIds:
                  - BearerAuth
            required: true
            use:
              id: kn8M4YUlc5i0A0179ezwx
            scopes:
              kn8M4YUlc5i0A0179ezwx:
                BearerAuth: []
      callbacks:
        videoTaskCompleted:
          '{request.body#/callBackUrl}':
            post:
              description: >-
                The system sends this callback when the `grok-imagine/extend`
                task succeeds or fails.
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      required:
                        - code
                        - msg
                        - data
                      properties:
                        code:
                          type: integer
                          description: >-
                            Unified callback code: 200 for success, 501 for
                            failure.
                          enum:
                            - 200
                            - 501
                        msg:
                          type: string
                          description: Unified callback message.
                          enum:
                            - Playground task completed successfully.
                            - Playground task failed.
                        data:
                          type: object
                          required:
                            - taskId
                            - model
                            - state
                            - param
                            - resultJson
                            - failCode
                            - failMsg
                          properties:
                            taskId:
                              type: string
                              description: The unique task identifier.
                            model:
                              type: string
                              description: The model used for the task.
                              enum:
                                - grok-imagine/extend
                            state:
                              type: string
                              description: Terminal task state.
                              enum:
                                - success
                                - fail
                            param:
                              type: string
                              description: >-
                                JSON string containing the submitted task
                                parameters.
                            resultJson:
                              type: string
                              nullable: true
                              description: >-
                                JSON string containing resultUrls,
                                firstFrameUrl, lastFrameUrl, or resultObject
                                when successful. Null when failed.
                            failCode:
                              type: string
                              nullable: true
                              description: Null when successful; failure code when failed.
                            failMsg:
                              type: string
                              nullable: true
                              description: >-
                                Null when successful; failure message when
                                failed.
                            costTime:
                              type: integer
                              format: int64
                              description: >-
                                Task processing time. Present on successful
                                callbacks.
                            completeTime:
                              type: integer
                              format: int64
                              description: Task completion timestamp.
                            createTime:
                              type: integer
                              format: int64
                              description: Task creation timestamp.
                            updateTime:
                              type: integer
                              format: int64
                              description: Task update timestamp.
                            creditsConsumed:
                              type: number
                              description: >-
                                Credits consumed by the task. Present on
                                successful callbacks.
                    examples:
                      success:
                        summary: Task completed successfully
                        value:
                          code: 200
                          msg: Playground task completed successfully.
                          data:
                            taskId: task_example_video_webhook_001
                            model: grok-imagine/extend
                            state: success
                            param: >-
                              {"input":"{\"task_id\":\"task_grok_12345678\",\"prompt\":\"\",\"extend_at\":2,\"extend_times\":\"6\"}","callBackUrl":"https://example.com/callback","model":"grok-imagine/extend"}
                            resultJson: >-
                              {"resultUrls":["https://example.com/generated-video.mp4"]}
                            failCode: null
                            failMsg: null
                            costTime: 12
                            completeTime: 1234567890
                            createTime: 1234560000
                            updateTime: 1234567890
                            creditsConsumed: 1.23
                      failure:
                        summary: Task failed
                        value:
                          code: 501
                          msg: Playground task failed.
                          data:
                            taskId: task_example_video_webhook_001
                            model: grok-imagine/extend
                            state: fail
                            param: >-
                              {"input":"{\"task_id\":\"task_grok_12345678\",\"prompt\":\"\",\"extend_at\":2,\"extend_times\":\"6\"}","callBackUrl":"https://example.com/callback","model":"grok-imagine/extend"}
                            failCode: GENERATION_FAILED
                            failMsg: The generation task failed.
              responses:
                '200':
                  description: Callback received successfully.
                  content:
                    application/json:
                      schema:
                        type: object
                        properties:
                          code:
                            type: integer
                            example: 200
                          msg:
                            type: string
                            example: success
                      example:
                        code: 200
                        msg: success
      x-apidog-folder: docs/en/Market/Video Models/Grok Imagine
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/1184766/apis/api-31353004-run
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          description: >-
            Response status code


            - **200**: Success - Request has been processed successfully

            - **401**: Unauthorized - Authentication credentials are missing or
            invalid

            - **402**: Insufficient Credits - Account does not have enough
            credits to perform the operation

            - **404**: Not Found - The requested resource or endpoint does not
            exist

            - **422**: Validation Error - The request parameters failed
            validation checks

            - **429**: Rate Limited - Request limit has been exceeded for this
            resource

            - **433**: Request Limit - Sub-key Usage Exceeds Limit

            - **455**: Service Unavailable - System is currently undergoing
            maintenance

            - **500**: Server Error - An unexpected error occurred while
            processing the request

            - **501**: Generation Failed - Content generation task failed

            - **505**: Feature Disabled - The requested feature is currently
            disabled
          enum:
            - 200
            - 401
            - 402
            - 404
            - 422
            - 429
            - 433
            - 455
            - 500
            - 501
            - 505
          x-apidog-enum:
            - value: 200
              name: ''
              description: ''
            - value: 401
              name: ''
              description: ''
            - value: 402
              name: ''
              description: ''
            - value: 404
              name: ''
              description: ''
            - value: 422
              name: ''
              description: ''
            - value: 429
              name: ''
              description: ''
            - value: 433
              name: ''
              description: ''
            - value: 455
              name: ''
              description: ''
            - value: 500
              name: ''
              description: ''
            - value: 501
              name: ''
              description: ''
            - value: 505
              name: ''
              description: ''
        msg:
          type: string
          description: Response message, error description when failed
          examples:
            - success
        data:
          type: object
          properties:
            taskId:
              type: string
              description: >-
                Task ID, can be used with Get Task Details endpoint to query
                task status
          x-apidog-orders:
            - taskId
          required:
            - taskId
          x-apidog-ignore-properties: []
      x-apidog-orders:
        - code
        - msg
        - data
      title: response not with recordId
      required:
        - data
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes:
    BearerAuth:
      type: bearer
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All API requests require a Bearer Token. Add the header `Authorization:
        Bearer YOUR_API_KEY` to authenticate requests.
    BearerAuth1:
      type: bearer
      scheme: bearer
      bearerFormat: API Key
      description: >-
        所有 API 请求都需要 Bearer Token。请在请求头中添加 `Authorization: Bearer YOUR_API_KEY`
        进行身份验证。
servers:
  - url: https://api.kie.ai
    description: 正式环境
security:
  - BearerAuth: []
    x-apidog:
      schemeGroups:
        - id: kn8M4YUlc5i0A0179ezwx
          schemeIds:
            - BearerAuth
      required: true
      use:
        id: kn8M4YUlc5i0A0179ezwx
      scopes:
        kn8M4YUlc5i0A0179ezwx:
          BearerAuth: []

```
