{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Image Upscaler - 2x/4x Real-ESRGAN, CPU, from URLs",
    "description": "Upscale images from URLs 2x or 4x with Real-ESRGAN (CPU, models bundled). Photo/general and anime models, PNG/JPG/WebP output, public download link per image. Pay only for images actually upscaled.",
    "version": "0.0",
    "x-build-id": "QiRbsiaSl17dskZcY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tiger19935~image-upscaler/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tiger19935-image-upscaler",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/tiger19935~image-upscaler/runs": {
      "post": {
        "operationId": "runs-sync-tiger19935-image-upscaler",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/tiger19935~image-upscaler/run-sync": {
      "post": {
        "operationId": "run-sync-tiger19935-image-upscaler",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "imageUrls"
        ],
        "properties": {
          "imageUrls": {
            "title": "Image URLs",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "description": "One direct http(s) image URL per row (JPEG, PNG, WebP, GIF, BMP, TIFF; max 30 MB each). Pages that merely contain images are not crawled. Images larger than 'Max input pixels' are rejected, not charged.",
            "items": {
              "type": "string"
            }
          },
          "scale": {
            "title": "Upscale factor",
            "minimum": 2,
            "maximum": 4,
            "type": "integer",
            "description": "Width and height multiplier: 2 or 4 (4 = four times width and height). Output pixels grow with the square of this number (4x of a 1 MP image is 16 MP).",
            "default": 4
          },
          "model": {
            "title": "Model",
            "enum": [
              "general",
              "anime-hq",
              "photo-hq"
            ],
            "type": "string",
            "description": "general = fast Real-ESRGAN 'animevideov3' compact network for photos, screenshots and illustrations, input up to 2 MP (default). anime-hq = Real-ESRGAN x4plus-anime, 10x slower, cleaner line art, input up to 0.1 MP (about 316x316). photo-hq = Real-ESRGAN x4plus, slowest, best texture on photos, input up to 0.04 MP (about 200x200, e.g. avatars or thumbnails). For 2x the HQ models run at 4x and are scaled down, so they take the same time as 4x.",
            "default": "general"
          },
          "denoise": {
            "title": "Denoise strength",
            "type": "string",
            "description": "Number from 0 to 1. 0 = off (default). Above 0 a non-local-means noise filter is applied BEFORE upscaling (not a model-based denoise); useful for grainy or JPEG-damaged inputs, too much removes fine detail.",
            "default": "0"
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "png",
              "jpg",
              "webp"
            ],
            "type": "string",
            "description": "png = lossless (large files), jpg = smallest, no transparency (transparent areas become white), webp = small with transparency.",
            "default": "png"
          },
          "quality": {
            "title": "JPG / WebP quality",
            "minimum": 40,
            "maximum": 100,
            "type": "integer",
            "description": "40-100 (lower values are raised to 40). Used for JPG and WebP only. 92 is visually near-lossless.",
            "default": 92
          },
          "maxInputPixels": {
            "title": "Max input pixels",
            "minimum": 1000,
            "maximum": 2000000,
            "type": "integer",
            "description": "Reject inputs with more pixels than this (width x height), before any charge. Default 1,000,000 (about 1000x1000), maximum 2,000,000. HQ models have lower built-in limits. Output above 4 MP (2048x2048 = 4,194,304 px) counts as 2 'image' events.",
            "default": 1000000
          },
          "maxImages": {
            "title": "Max images",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Process at most this many URLs from the list (1-500). Protects your budget from huge lists.",
            "default": 100
          },
          "includeFailed": {
            "title": "Include failed images in the dataset",
            "type": "boolean",
            "description": "If on, images that could not be downloaded or upscaled get a free row with status 'failed' and an error. They are never charged. The reasons are always listed in the OUTPUT record.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}