Sora Character Generation

  • Sora Character (sora-character) model generates character profiles from videos
  • Async processing mode, use the returned task ID to query status
  • Generated profile picture links are valid for 24 hours, please save them promptly

OpenAPI

````yaml en/api-manual/video-series/sora2/sora-character-generate.json post /v1/videos/generations openapi: 3.1.0 info: title: sora-character API description: >- Generate character profiles from videos, extracting character names and profile pictures license: name: MIT version: 1.0.0 servers: - url: https://ai.odkkk.com/apiv1 description: Production security: - bearerAuth: [] tags: - name: Character Generation description: AI character generation APIs paths: /v1/videos/generations: post: tags: - Character Generation summary: sora-character API description: >- - Sora Character (sora-character) model generates character profiles from videos

    - Async processing mode, use the returned task ID to [query
    status](/en/api-manual/task-management/get-task-detail)

    - Generated profile picture links are valid for 24 hours, please save
    them promptly
  operationId: createCharacterGeneration
  requestBody:
    required: true
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/CharacterGenerationRequest'
        examples:
          character_generation:
            summary: Generate character from video
            value:
              model: sora-character
              video_url: https://example.com/video.mp4
              timestamps: 1,3
  responses:
    '200':
      description: Character generation task created successfully
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CharacterGenerationResponse'
    '400':
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 400
              message: Invalid timestamps parameter
              type: invalid_request_error
              param: timestamps
    '401':
      description: Unauthorized, invalid or expired token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 401
              message: Invalid or expired token
              type: authentication_error
    '402':
      description: Insufficient quota
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 402
              message: Insufficient quota
              type: insufficient_quota_error
              fallback_suggestion: https://ai.odkkk.com/apiv1/dashboard/billing
    '429':
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 429
              message: Rate limit exceeded
              type: rate_limit_error
              fallback_suggestion: retry after 60 seconds
    '500':
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 500
              message: Internal server error
              type: internal_server_error
              fallback_suggestion: try again later

components: schemas: CharacterGenerationRequest: type: object required: - model - video_url properties: model: type: string description: Model name default: sora-character example: sora-character video_url: type: string format: uri description: |- Video URL

        **Note:**
        - Video URL must be directly accessible by the server
        - Supported formats: `.mp4`, `.mov`, `.webm`
      example: https://example.com/video.mp4
    timestamps:
      type: string
      description: >-
        Timestamps specifying which time points to extract characters from


        **Format:**

        - Use comma to separate multiple time points, e.g., `1,3` means 1st
        and 3rd second

        - Time unit is seconds

        - **Time range limit:** The span between selected time points must
        not exceed `2 seconds`

        - **Default:** `0,2` (from 0 to 2 seconds)
      example: 1,3
CharacterGenerationResponse:
  type: object
  properties:
    created:
      type: integer
      description: Task creation timestamp
      example: 1767917446
    id:
      type: string
      description: Task ID for querying task status
      example: task-unified-1767917446-5lqy8zzv
    model:
      type: string
      description: Model name used
      example: sora-character
    object:
      type: string
      enum:
        - video.generation.task
      description: Task object type
    progress:
      type: integer
      description: Task progress percentage (0-100)
      minimum: 0
      maximum: 100
      example: 0
    status:
      type: string
      description: Task status
      enum:
        - pending
        - processing
        - completed
        - failed
      example: pending
    task_info:
      $ref: '#/components/schemas/TaskInfo'
    type:
      type: string
      enum:
        - video
      description: Task output type
      example: video
    usage:
      $ref: '#/components/schemas/Usage'
    result_data:
      $ref: '#/components/schemas/ResultData'
      description: Result data (only returned when status is completed)
ErrorResponse:
  type: object
  properties:
    error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        type:
          type: string
        param:
          type: string
        fallback_suggestion:
          type: string
TaskInfo:
  type: object
  properties:
    can_cancel:
      type: boolean
      description: Whether the task can be cancelled
      example: true
    estimated_time:
      type: integer
      description: Estimated completion time (seconds)
      example: 150
    video_duration:
      type: integer
      description: Video duration (seconds)
      example: 8
Usage:
  type: object
  properties:
    billing_rule:
      type: string
      enum:
        - per_call
        - per_token
        - per_second
      example: per_call
    credits_reserved:
      type: number
      description: Estimated credits consumption
      example: 0.1
    user_group:
      type: string
      description: User group
      example: vip
ResultData:
  type: object
  properties:
    character_name:
      type: string
      description: Generated character name (unique identifier)
      example: chr_Axtjik3O#
    profile_picture_url:
      type: string
      format: uri
      description: Character profile picture URL, valid for 24 hours
      example: https://example.com/profile.jpg

securitySchemes: bearerAuth: type: http scheme: bearer description: >- ##All APIs require Bearer Token authentication##

    **Get API Key:**


    Visit [API Key Management Page](https://ai.odkkk.com/apiv1/dashboard/keys) to
    get your API Key


    **Add to request header when using:**

    ```

    Authorization: Bearer YOUR_API_KEY

    ```

````


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://ai.odkkk.com/apiv1/docs/llms.txt