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

# Image Invisible Picture Watermark API

> Image Invisible Picture Watermark API encodes or decodes hidden image and logo watermarks for copyright and asset protection.

## Request

* **URL**: `https://www.ailabapi.com/api/image/editing/image-invisible-image-watermark`
* **Method**: `POST`
* **Content-Type**: `multipart/form-data`

### Image requirements

* **Image format**: `JPEG` `JPG` `PNG` `BMP`
* **Image size**: No more than 3 MB.
* **Image resolution**: Larger than 5x5px, smaller than 4096x4096px.

### Headers

| Field              | Required | Type     | Description                                           |
| :----------------- | :------- | :------- | :---------------------------------------------------- |
| `ailabapi-api-key` | YES      | `string` | Application API KEY. [Get API KEY](/docs/get-api-key) |

### Body

#### Fixed Fields

| Field           | Required | Type     | Scope                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| :-------------- | :------- | :------- | :----------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `function_type` | YES      | `string` | `encode_pic`, `encode_pic_plus`, `encode_pic_bold`, `decode_pic`, `decode_pic_plus`, `decode_pic_bold` | Specifies the calling function. ``encode_pic`: Add image watermark using the old model.` ``encode\_pic\_plus`: Add image watermark with new version model 1.` ``encode_pic_bold`: Add image watermark with new version model 2.` ``decode\_pic`: Use the old model to decode the image watermark in the image.` ``decode_pic_plus`: Use the new version Model 1 to decode the image watermark in the image.` ``decode\_pic\_bold`: Use the new version Model 2 to decode the image watermark in the image.` |

#### `function_type` === `encode_pic`|`encode_pic_plus`|`encode_pic_bold`

| Field              | Required | Type     | Scope                       | Default | Description       |
| :----------------- | :------- | :------- | :-------------------------- | :------ | :---------------- |
| `origin_image`     | YES      | `file`   |                             |         | Original image.   |
| `logo`             | YES      | `file`   |                             |         | Watermark images. |
| `output_file_type` | NO       | `string` | `jpeg`, `png`, `jpg`, `bmp` | `png`   | Output format.    |

#### `function_type` === `decode_pic`

| Field             | Required | Type   | Scope | Default | Description                                                                  |
| :---------------- | :------- | :----- | :---- | :------ | :--------------------------------------------------------------------------- |
| `watermark_image` | YES      | `file` |       |         | The image to be resolved, i.e. the composite image with the image watermark. |
| `origin_image`    | YES      | `file` |       |         | Original image.                                                              |

#### `function_type` === `decode_pic_plus`|`decode_pic_bold`

| Field             | Required | Type   | Scope | Default | Description                                                                  |
| :---------------- | :------- | :----- | :---- | :------ | :--------------------------------------------------------------------------- |
| `watermark_image` | YES      | `file` |       |         | The image to be resolved, i.e. the composite image with the image watermark. |

#### `output_file_type` === `jpg`

| Field            | Required | Type      | Scope     | Default | Description                                                                        |
| :--------------- | :------- | :-------- | :-------- | :------ | :--------------------------------------------------------------------------------- |
| `quality_factor` | NO       | `integer` | \[1, 100] | `100`   | The quality size of the output image, the higher the quality the larger the image. |

## Response

<Warning>
  **Response Field Handling Flow**

  1. **Handle `Public Response Fields`**

     Parse and validate the `Public Response Fields`, checking the status code or response message to ensure the request is successful and error-free.

  2. **Handle `Business Response Fields`**

     If the `Public Response Fields` are valid and error-free, proceed with processing the business logic in the `Business Response Fields`.
</Warning>

### Public Response Fields

<a href="/docs/response-description" target="_blank">Viewing Public Response Fields and Error Codes</a>

### Business Response Fields

| Field                  | Type     | Description                                 |
| :--------------------- | :------- | :------------------------------------------ |
| `data`                 | `object` | The content of the result data returned.    |
| +`watermark_image_url` | `string` | The URL address after adding the watermark. |
| +`logo_url`            | `string` | Watermark URL address after decoding.       |

<Tip>
  The URL address is a temporary address, valid for 24 hours, and will not be accessible after it expires. If you need to save the file for a long time or permanently, please visit the URL address within 24 hours and download the file to your own storage space.
</Tip>

### Response Example

```json theme={null}
{
  "request_id":     "",
  "log_id":         "",
  "error_code":     0,
  "error_msg":      "",
  "error_detail":   {
    "status_code":  200,
    "code":         "",
    "code_message": "",
    "message":      ""
  },
  "data":           {
    "watermark_image_url": "",
    "logo_url":            ""
  }
}
```


## OpenAPI

````yaml POST /api/image/editing/image-invisible-image-watermark
openapi: 3.0.0
info:
  title: AILabAPI
  description: >-
    [<b>AILabTools</b>](https://www.ailabtools.com) is an advanced tool that
    offers a vast array of simple and flexible API endpoints to suit your
    specific needs. With just one [<b>API
    KEY</b>](https://www.ailabtools.com/doc/get-api-key), you can easily call
    any of the endpoints and integrate them quickly into your application or
    workflow, allowing for smooth and efficient operations.


    [<b>AILabTools</b>](https://www.ailabtools.com) is continuously evolving,
    and you can anticipate even more API endpoints being added in the future,
    further enhancing its capabilities and usefulness for your artificial
    intelligence and machine learning requirements.
  version: 1.0.0
servers:
  - url: https://www.ailabapi.com
    description: Production server
security:
  - apiKeyAuth: []
tags:
  - name: AI IMAGE
  - name: AI IMAGE > Image Enhancement
  - name: AI IMAGE > Image Effects
  - name: AI IMAGE > Image Editing
  - name: AI IMAGE > Image Scoring
  - name: AI BACKGROUND REMOVAL
  - name: AI BACKGROUND REMOVAL > Portrait
  - name: AI BACKGROUND REMOVAL > General
  - name: AI PORTRAIT
  - name: AI PORTRAIT > Portrait Effects
  - name: AI PORTRAIT > Portrait Enhance
  - name: AI PORTRAIT > Portrait Editing
  - name: AI PORTRAIT > Portrait Analysis
  - name: AI COMMON
paths:
  /api/image/editing/image-invisible-image-watermark:
    post:
      tags:
        - AI IMAGE > Image Editing
      summary: Image Invisible Picture Watermark
      description: >-
        Image Invisible Picture Watermark API encodes or decodes hidden image
        and logo watermarks for copyright and asset protection.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                function_type:
                  type: string
                  description: Specifies the calling function.
                origin_image:
                  type: string
                  description: Original image.
                  format: binary
                logo:
                  type: string
                  description: Watermark images.
                  format: binary
                output_file_type:
                  type: string
                  description: Output format.
                watermark_image:
                  type: string
                  description: >-
                    The image to be resolved, i.e. the composite image with the
                    image watermark.
                  format: binary
                quality_factor:
                  type: string
                  description: >-
                    The quality size of the output image, the higher the quality
                    the larger the image.
      responses:
        '200':
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              examples:
                example-0:
                  summary: encode_pic|encode_pic_plus|encode_pic_bold
                  value:
                    request_id: ''
                    log_id: ''
                    error_code: 0
                    error_code_str: ''
                    error_msg: ''
                    error_detail:
                      status_code: 200
                      code: ''
                      code_message: ''
                      message: ''
                    data:
                      watermark_image_url: ''
                      logo_url: ''
                example-1:
                  summary: decode_pic
                  value:
                    request_id: ''
                    log_id: ''
                    error_code: 0
                    error_code_str: ''
                    error_msg: ''
                    error_detail:
                      status_code: 200
                      code: ''
                      code_message: ''
                      message: ''
                    data:
                      watermark_image_url: ''
                      logo_url: ''
                example-2:
                  summary: decode_pic_plus|decode_pic_bold
                  value:
                    request_id: ''
                    log_id: ''
                    error_code: 0
                    error_code_str: ''
                    error_msg: ''
                    error_detail:
                      status_code: 200
                      code: ''
                      code_message: ''
                      message: ''
                    data:
                      watermark_image_url: ''
                      logo_url: ''
          description: Success
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: ailabapi-api-key
      description: API Key for authentication

````