{
  "openapi": "3.0.1",
  "info": {
    "title": "Manga Colorizer AI — Batch Comic Page Colorization",
    "description": "AI manga colorizer that batch-colors black-and-white manga, manhwa, and comic pages from plain image URLs. Preserves original line art, skips already-colored pages for free, upscales 2x, and delivers public URLs for every colorized page.",
    "version": "0.1",
    "x-build-id": "duKvC6KVhuKaSb3Uy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/technicaldost~manga-colorizer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-technicaldost-manga-colorizer",
        "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/technicaldost~manga-colorizer/runs": {
      "post": {
        "operationId": "runs-sync-technicaldost-manga-colorizer",
        "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/technicaldost~manga-colorizer/run-sync": {
      "post": {
        "operationId": "run-sync-technicaldost-manga-colorizer",
        "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": "Manga page image URLs",
            "type": "array",
            "description": "Publicly accessible URLs of black-and-white manga, manhwa, or comic pages (JPG, PNG, or WebP). Add a whole chapter to colorize it in one batch run.",
            "items": {
              "type": "string"
            }
          },
          "originalLanguage": {
            "title": "Original language",
            "enum": [
              "japanese",
              "korean",
              "chinese",
              "english",
              "other"
            ],
            "type": "string",
            "description": "Language of the text in the source pages. Recorded with every result so downstream translation or OCR tools read the text regions correctly. The default free colorizer works on line art and is language-agnostic.",
            "default": "japanese"
          },
          "targetLanguages": {
            "title": "Target languages",
            "type": "array",
            "description": "Languages you plan to localize the colorized pages into. Stored in every dataset row so translation steps can pick the pages up automatically.",
            "items": {
              "type": "string"
            }
          },
          "stylePreset": {
            "title": "Color style preset",
            "enum": [
              "anime",
              "manga-flat",
              "comic",
              "watercolor"
            ],
            "type": "string",
            "description": "Color grading style passed to providers that accept prompts (e.g. Replicate) and recorded in every dataset row. The default Hugging Face provider auto-detects the best palette from the line art.",
            "default": "anime"
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "png",
              "webp",
              "jpg"
            ],
            "type": "string",
            "description": "File format of the colorized images stored in the key-value store.",
            "default": "png"
          },
          "upscale2x": {
            "title": "Upscale 2x",
            "type": "boolean",
            "description": "Double the resolution of every output page with a high-quality Lanczos filter before saving.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many pages are colorized in parallel. Lower this if the colorization backend rate-limits you.",
            "default": 3
          },
          "provider": {
            "title": "Colorization provider",
            "enum": [
              "huggingface-space",
              "replicate"
            ],
            "type": "string",
            "description": "huggingface-space is free and needs no key (default public MangaColorization space). replicate uses your own API token and any colorization model you choose.",
            "default": "huggingface-space"
          },
          "hfSpaceUrl": {
            "title": "Hugging Face space URL",
            "type": "string",
            "description": "Base URL of a Gradio space exposing a colorization endpoint. Defaults to the free public MangaColorization space; point this at your own duplicate space for guaranteed capacity.",
            "default": "https://1plus1-mangacolorization.hf.space"
          },
          "apiToken": {
            "title": "API token (optional)",
            "type": "string",
            "description": "Only needed for the replicate provider or a private Hugging Face space. Leave empty to use the free public colorizer."
          },
          "replicateModel": {
            "title": "Replicate model",
            "type": "string",
            "description": "Replicate colorization model in owner/name form, used only when the provider is replicate.",
            "default": "cjwbw/ddcolor"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}