{
  "openapi": "3.0.1",
  "info": {
    "title": "Watermark Image API",
    "description": "Protect your images with customizable watermarks! Add text or logos with flexible positioning, fonts, colors, and opacity. Ideal for branding, copyright protection, and marketing materials. Automate your workflow and effortlessly maintain a consistent brand image across all your visual content.",
    "version": "1.0",
    "x-build-id": "gDKgKYJdohbU93fmc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~watermark-image-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-watermark-image-api",
        "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/parseforge~watermark-image-api/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-watermark-image-api",
        "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/parseforge~watermark-image-api/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-watermark-image-api",
        "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": [
          "imageFiles"
        ],
        "properties": {
          "imageFiles": {
            "title": "Image Files",
            "type": "array",
            "description": "Upload images to watermark. Supports JPEG, PNG, and WebP formats. You can process multiple images at once.",
            "items": {
              "type": "string"
            }
          },
          "watermarkText": {
            "title": "Watermark Text",
            "type": "string",
            "description": "Text to display as watermark. Only used if logo is not provided. Use either text OR logo watermark, not both."
          },
          "fontFamily": {
            "title": "Font Family",
            "enum": [
              "inter",
              "arial",
              "impact",
              "verdana",
              "courier",
              "comic",
              "times-new-roman"
            ],
            "type": "string",
            "description": "Font family for text watermark. Choose from: Inter (modern), Arial (classic), Impact (bold), Verdana (readable), Courier (monospace), Comic Sans (casual), Times New Roman (traditional)."
          },
          "textColor": {
            "title": "Text Color",
            "type": "string",
            "description": "Color for text watermark in HEX format (e.g., #FFFFFF for white, #000000 for black)."
          },
          "textOpacity": {
            "title": "Text Opacity",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Transparency of text watermark (0-100%). Higher values = more visible watermark."
          },
          "textScale": {
            "title": "Text Size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "Size of text watermark as percentage of image width (5-100%). Higher values = larger watermark."
          },
          "letterSpacing": {
            "title": "Letter Spacing",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Spacing between letters as percentage of font size (0-200%). Higher values = more space between letters."
          },
          "backgroundOpacity": {
            "title": "Background Opacity",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Transparency of text background box (0-100%). 0 = no background, 100 = solid background. Only applies to text watermarks."
          },
          "logoFile": {
            "title": "Logo File",
            "type": "string",
            "description": "Upload a single logo image to use as watermark. Only used if watermark text is not provided. Use either text OR logo watermark, not both. Supports PNG, JPEG, and WebP formats."
          },
          "logoOpacity": {
            "title": "Logo Opacity",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Transparency of logo watermark (0-100%). Higher values = more visible logo."
          },
          "logoScale": {
            "title": "Logo Size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "Size of logo watermark as percentage of image width (5-100%). Higher values = larger logo."
          },
          "position": {
            "title": "Watermark Position",
            "enum": [
              "top-left",
              "top-right",
              "bottom-left",
              "bottom-right",
              "center",
              "diagonal-tl-br",
              "diagonal-bl-tr",
              "custom"
            ],
            "type": "string",
            "description": "Where to place the watermark on the image. Corner positions, center, diagonal (across image), or custom offsets."
          },
          "offsetXPercent": {
            "title": "Horizontal Offset (Custom Position Only)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Horizontal offset from position anchor as percentage (0-100). Only used when position is set to 'custom'."
          },
          "offsetYPercent": {
            "title": "Vertical Offset (Custom Position Only)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Vertical offset from position anchor as percentage (0-100). Only used when position is set to 'custom'."
          },
          "outputFormat": {
            "title": "Output Format",
            "enum": [
              "jpeg",
              "png",
              "webp"
            ],
            "type": "string",
            "description": "Format for watermarked images. JPEG for smaller files, PNG for transparency support, WebP for modern web optimization."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}