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

# Watermark Remover

> Automatically detect and remove watermarks, logos and text overlays from an image. Watermark regions are detected and then filled in with matching background; the rest of the image is left untouched and the output keeps the original size.

**Pricing:** 1 token per image (= $0.02), regardless of image size.

**Input and output:**
- `image_url` must be an `https://` link that is publicly reachable.
- The output format follows the input: PNG, JPG and WebP keep their format; other formats (for example BMP) are returned as PNG.

**Tuning detection:**
- `detection_prompt` describes what to remove. The default `watermark` covers most stock-photo and AI-generator marks; naming the mark (for example `Sora logo` or `Getty Images`) helps when it is small or blends into the background.
- `max_bbox_percent` ignores any detected region larger than this share of the image, so a false positive cannot erase a large part of the picture. Raise it only for watermarks that really cover a big area.

Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the cleaned image.



## OpenAPI

````yaml api-reference/image-api/openapi-watermark-remover.json POST /api/v1/images/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Watermark Remover
  description: Watermark Remover
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/images/generations:
    post:
      tags:
        - ImageAPI
      summary: Watermark Remover
      description: >-
        Automatically detect and remove watermarks, logos and text overlays from
        an image. Watermark regions are detected and then filled in with
        matching background; the rest of the image is left untouched and the
        output keeps the original size.


        **Pricing:** 1 token per image (= $0.02), regardless of image size.


        **Input and output:**

        - `image_url` must be an `https://` link that is publicly reachable.

        - The output format follows the input: PNG, JPG and WebP keep their
        format; other formats (for example BMP) are returned as PNG.


        **Tuning detection:**

        - `detection_prompt` describes what to remove. The default `watermark`
        covers most stock-photo and AI-generator marks; naming the mark (for
        example `Sora logo` or `Getty Images`) helps when it is small or blends
        into the background.

        - `max_bbox_percent` ignores any detected region larger than this share
        of the image, so a false positive cannot erase a large part of the
        picture. Raise it only for watermarks that really cover a big area.


        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the cleaned image.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - watermark-remover
                  description: Model name. Must be `watermark-remover`.
                image_url:
                  type: string
                  format: uri
                  minLength: 1
                  description: >-
                    URL of the image to clean. Must be an `https://` link that
                    is publicly reachable.
                detection_prompt:
                  type: string
                  maxLength: 200
                  default: watermark
                  description: >-
                    What to detect and remove, in English. Defaults to
                    `watermark`. Naming the mark (for example `Sora logo` or
                    `Getty Images`) improves detection of small or low-contrast
                    watermarks.
                max_bbox_percent:
                  type: number
                  exclusiveMinimum: 0
                  maximum: 100
                  default: 10
                  description: >-
                    Largest region to remove, as a percentage of the image area.
                    Detected regions above this size are treated as false
                    positives and left untouched. Defaults to `10`.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - image_url
            example:
              model: watermark-remover
              image_url: https://your-cdn.com/photo.jpg
              detection_prompt: watermark
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                      cost:
                        type: number
                        description: >-
                          Tokens deducted for this request. This is the amount
                          actually charged, so it already reflects any discount
                          active on your account and can be lower than the
                          listed price. Tokens are deducted when the task is
                          accepted, and refunded automatically if the generation
                          ends in failure.
                        example: 1
                    required:
                      - img_uuid
                      - cost
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                      cost: 1
                '2':
                  summary: Image URL is not https
                  value:
                    code: -1
                    msg: image_url must be an https:// link
                '3':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
                quota:
                  summary: API key quota exceeded
                  value:
                    code: 101
                    msg: 'API key quota exceeded: 4990 of 5000 tokens used (monthly)'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                required:
                  - code
                  - msg
          headers: {}
      deprecated: false
      security: []

````