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

# Upscale an image

> Returns the parent image with a new version. The original may already be completed. Track the new version id and poll its source_image_id for the operation’s result.

[Track jobs and versions](/api-reference/jobs-and-versions).


## OpenAPI

````yaml POST /images/{id}/upscale
openapi: 3.0.3
info:
  title: bitStudio API
  version: '2026-09-06'
  description: >-
    Core Studio image, video, and reusable-asset workflows. Requests use a
    workspace-scoped API key and the account’s feature access and credits.
    Generation is asynchronous.
  contact:
    name: bitStudio support
    email: hello@bitstudio.ai
servers:
  - url: https://api.bitstudio.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Images
  - name: Video
  - name: Assets
paths:
  /images/{id}/upscale:
    post:
      tags:
        - Images
      summary: Upscale an image
      description: >-
        Returns the parent image with a new version. The original may already be
        completed. Track the new version id and poll its source_image_id for the
        operation’s result.
      operationId: upscaleImage
      parameters:
        - name: id
          in: path
          required: true
          description: Image or asset ID from a previous response.
          schema:
            type: string
            description: Resource ID.
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpscaleInput'
            example:
              upscale_factor: 2
              denoise: 0.2
      responses:
        '200':
          description: >-
            Returns the parent image with a new version. The original may
            already be completed. Track the new version id and poll its
            source_image_id for the operation’s result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Image'
              example:
                id: 11111111-1111-4111-8111-111111111111
                status: completed
                path: >-
                  https://media.bitstudio.ai/public/homepage/2026-09/bitstudio-shirt-reference-front-v1-77caf2ea41d661e4.webp
                width_px: 900
                height_px: 1125
                is_generated: false
                created_timestamp: '2026-09-06T12:00:00Z'
                versions:
                  - id: 22222222-2222-4222-8222-222222222222
                    image_id: 11111111-1111-4111-8111-111111111111
                    source_image_id: 33333333-3333-4333-8333-333333333333
                    version_type: upscaled
                    status: pending
                    path: ''
        default:
          description: >-
            Request rejected or service error. See the errors and recovery
            guide.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    UpscaleInput:
      type: object
      properties:
        version_id:
          type: string
          description: >-
            Optional version of this image to use as the source. Omit to use the
            original image.
          format: uuid
        upscale_factor:
          type: integer
          description: >-
            Upscale option. 4 selects the 4K workflow; do not assume it
            literally multiplies both dimensions by four.
          enum:
            - 1
            - 2
            - 4
          example: 2
        denoise:
          type: number
          minimum: 0
          maximum: 1
          description: Detail-change strength.
          example: 0.2
      required:
        - upscale_factor
      additionalProperties: false
    Image:
      type: object
      properties:
        id:
          type: string
          description: Resource ID.
          format: uuid
        status:
          type: string
          description: Job state. Only completed has a finished result.
          enum:
            - pending
            - generating
            - completed
            - failed
            - policy_blocked
            - nsfw_filtered
        path:
          type: string
          description: Result URL. Can be null while the job is pending.
          nullable: true
        watermarked_path:
          type: string
          description: ''
          nullable: true
        width_px:
          type: integer
          description: ''
          nullable: true
        height_px:
          type: integer
          description: ''
          nullable: true
        size_bytes:
          type: integer
          description: ''
          nullable: true
        extension:
          type: string
          description: ''
          nullable: true
        is_generated:
          type: boolean
          description: ''
        for_training:
          type: boolean
          description: Whether the upload is a reusable asset reference.
        task:
          type: string
          description: Operation that created this job.
          nullable: true
        type:
          type: string
          description: ''
          nullable: true
        created_timestamp:
          type: string
          description: ''
          format: date-time
        finish_timestamp:
          type: string
          description: ''
          format: date-time
          nullable: true
        fail_reason:
          type: string
          description: Human-readable failure detail.
          nullable: true
        failure_code:
          type: string
          description: Machine-readable failure category, when available.
          enum:
            - input_rejected
            - provider_unavailable
            - queue_timeout
            - policy_blocked
          nullable: true
        asset_ids:
          type: array
          items:
            type: string
            description: Resource ID.
            format: uuid
          description: Linked reusable assets.
          nullable: true
        versions:
          type: array
          items:
            $ref: '#/components/schemas/ImageVersion'
          description: >-
            Related versions. May be omitted or empty. Never infer a new version
            is completed from the parent status.
      required:
        - id
        - status
    Error:
      type: object
      properties:
        error:
          type: string
          description: Some handlers return a plain error string.
        code:
          type: string
          description: Structured error code, when available.
        message:
          type: string
          description: Structured human-readable error, when available.
        cta:
          type: boolean
          description: Whether the response includes an account action.
        next_action:
          type: string
          description: Suggested action, such as a plan or credit change.
        current_plan:
          type: string
          description: ''
        user_message:
          type: string
          description: User-facing explanation when present.
        extra_context:
          type: string
          description: Additional error context when present.
      description: >-
        Error shapes differ by endpoint. Read message or error; preserve the
        HTTP status and code. Additional context fields may be returned.
    ImageVersion:
      type: object
      properties:
        id:
          type: string
          description: Version ID. Save this to correlate the operation.
          format: uuid
        image_id:
          type: string
          description: Parent image ID.
          format: uuid
        source_image_id:
          type: string
          description: >-
            Child job ID. Poll GET /images/{id} with this ID to track
            processing.
          format: uuid
          nullable: true
        source_version_id:
          type: string
          description: Resource ID.
          format: uuid
          nullable: true
        version_type:
          type: string
          description: For example edited, upscaled, or video.
        status:
          type: string
          description: Job state. Only completed has a finished result.
          enum:
            - pending
            - generating
            - completed
            - failed
            - policy_blocked
            - nsfw_filtered
        path:
          type: string
          description: Result URL; may be empty while processing.
        width_px:
          type: integer
          description: ''
        height_px:
          type: integer
          description: ''
        created_timestamp:
          type: string
          description: ''
          format: date-time
        fail_reason:
          type: string
          description: ''
          nullable: true
        failure_code:
          type: string
          description: ''
          nullable: true
      required:
        - id
        - image_id
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Create an API key in Studio → account menu → API Keys. Keep it on your
        server.

````