Integrate advanced AI watermark removal into your product or workflow. Automatically detect and remove watermarks, text, logos, trademarks, and stamps, then intelligently fill removed areas and blend them with surrounding pixels for clean, natural results.
The result image URL is generally valid for 1 hour. Please download and store it promptly.
Authentication
Every API request must include your API Key in the X-API-KEY request header. Send it with each request exactly as shown in the examples and parameter descriptions.
X-API-KEY: YOUR_API_KEY Create a Full-Screen Watermark Removal - Advanced task
/api/tasks/visual/advanced/watermark-remove Body Parameters
image_url string optional Image download URL. Supports HTTP and OSS, up to 512 characters, with a 20-second download timeout. If both sources are provided, image_file takes precedence.
image_file file optional Source image file as binary data. If image_file and image_url are both provided, image_file takes precedence. The file received by the server must be less than 50MB.
For image upload requirements, see Guidelines and Limits #5.
sync integer optional Synchronous or asynchronous processing.
0: Return atask_idasynchronously, then poll the query endpoint;1: Wait for processing to finish and return the result synchronously.
Return Parameters
status number HTTP response status code. See Status Code Definitions.
200: Request succeeded;Non-200: Request failed.
message string Response message. If the task fails, refer to this field or contact support with it.
data.task_id string Asynchronous task ID used to poll the Full-Screen Watermark Removal - Advanced result.
status number HTTP response status code. See Status Code Definitions.
200: Request succeeded;Non-200: Request failed.
message string Response message. If the task fails, refer to this field or contact support with it.
data.task_id string Full-Screen Watermark Removal - Advanced task ID. If the task fails, contact support with this task_id.
data.created_at number Timestamp of task creation.
data.processed_at number Timestamp when the task started processing.
data.completed_at number Timestamp of task completion.
data.image_url string Watermark-removed result image URL or base64 data. A returned URL is generally valid for 1 hour.
data.return_type number Result return method.
data.type number Compatibility field for the result return method.
data.progress number Task progress from 0 to 100. A value of 100 means processing is complete.
data.state number Task status. See Status Code Definitions.
1: Succeeded;0or> 1: Processing;< 0: Failed;-8: Processing timed out after at most 600 seconds;-7: Invalid image file;-5: The URL image exceeds 50MB;-3: The server failed to download the image.
data.state_detail string Detailed task status.
data.time_elapsed number Elapsed processing time.
data.use_point number Credits consumed by this task.
Query Full-Screen Watermark Removal - Advanced result
For asynchronous requests, poll the result once every 1 second. The maximum polling duration for this API is 600 seconds; if the total polling time exceeds this without a result, treat it as a timeout failure.
/api/tasks/visual/advanced/watermark-remove/{task_id} Path Parameters
task_id string required Task ID returned after creating an asynchronous Full-Screen Watermark Removal - Advanced task. Use it to query the result.
Return Parameters
status number HTTP response status code. See Status Code Definitions.
200: Request succeeded;Non-200: Request failed.
message string Response message. If the task fails, refer to this field or contact support with it.
data.task_id string Full-Screen Watermark Removal - Advanced task ID. If the task fails, contact support with this task_id.
data.created_at number Timestamp of task creation.
data.processed_at number Timestamp when the task started processing.
data.completed_at number Timestamp of task completion.
data.image_url string Watermark-removed result image URL or base64 data. A returned URL is generally valid for 1 hour.
data.return_type number Result return method.
data.type number Compatibility field for the result return method.
data.progress number Task progress from 0 to 100. A value of 100 means processing is complete.
data.state number Task status. See Status Code Definitions.
1: Succeeded;0or> 1: Processing;< 0: Failed;-8: Processing timed out after at most 600 seconds;-7: Invalid image file;-5: The URL image exceeds 50MB;-3: The server failed to download the image.
data.state_detail string Detailed task status.
data.time_elapsed number Elapsed processing time.
data.use_point number Credits consumed by this task.
Guidelines and Limits
-
The result image URL is valid for 1 hour. Please download and store it promptly.
-
HTTP status 200 means the HTTP request succeeded; for result queries, status 200 with data.state = 1 means watermark removal succeeded. See Status Code Definitions.
-
When passing URLs as parameters, follow URL encoding standards to prevent parameter parsing issues.
-
You must not use this service for any activity that violates laws, regulations, or the legitimate rights of others.
-
Uploaded images must meet the following format and file size limits.
Format Size PNG, WebP, JPEG/JPG Less than 50MB
# Full-Screen Watermark Removal - Advanced API
Integrate advanced AI watermark removal into your product or workflow. Automatically detect and remove watermarks, text, logos, trademarks, and stamps, then intelligently fill removed areas and blend them with surrounding pixels for clean, natural results.
> Note: The result image URL is generally valid for 1 hour. Please download and store it promptly.
## Base URL
All paths below are relative to:
```
https://techhk.aoscdn.com
```
## Authentication
Every request must include your API key in the `X-API-KEY` request header:
```http
X-API-KEY: YOUR_API_KEY
```
Get or manage your API key from [API Key](https://picwish.com/my-account?subRoute=api-key).
## Request modes
- Asynchronous (`sync=0`, recommended): the create request returns `data.task_id`; poll the query endpoint afterward.
- Synchronous (`sync=1`): the create request waits for processing and returns the result directly.
## Providing the source image
Provide at least one of `image_url` / `image_file`. If both are supplied, `image_file` takes precedence. `image_url` supports HTTP and OSS, is limited to 512 characters, and has a 20-second download timeout.
## Endpoints
| Purpose | Method | Path |
| --- | --- | --- |
| Create an advanced watermark removal task | POST | /api/tasks/visual/advanced/watermark-remove |
| Query a task result (async) | GET | /api/tasks/visual/advanced/watermark-remove/{task_id} |
## Create a Full-Screen Watermark Removal - Advanced task
`POST /api/tasks/visual/advanced/watermark-remove`
Content-Type: `multipart/form-data`
### Body parameters
| Name | Type | Required | Description |
| --- | --- | --- | --- |
| image_url | string | one of image_url / image_file | Image download URL. Supports HTTP and OSS, up to 512 characters, with a 20-second download timeout. If both sources are provided, image_file takes precedence. |
| image_file | file | one of image_url / image_file | Source image file as binary data. If image_file and image_url are both provided, image_file takes precedence. The file received by the server must be less than 50MB. |
| sync | integer | optional | Synchronous or asynchronous processing. |
### Return parameters - asynchronous (sync=0)
| Name | Type | Description |
| --- | --- | --- |
| status | number | HTTP response status code. 200 means the request succeeded; non-200 means it failed. |
| message | string | Response message. If the task fails, refer to this field or contact support with it. |
| data.task_id | string | Asynchronous task ID used to poll the Full-Screen Watermark Removal - Advanced result. |
### Return parameters - synchronous (sync=1)
| Name | Type | Description |
| --- | --- | --- |
| status | number | HTTP response status code. 200 means the request succeeded; non-200 means it failed. |
| message | string | Response message. If the task fails, refer to this field or contact support with it. |
| data.task_id | string | Full-Screen Watermark Removal - Advanced task ID. If the task fails, contact support with this task_id. |
| data.created_at | number | Timestamp of task creation. |
| data.processed_at | number | Timestamp when the task started processing. |
| data.completed_at | number | Timestamp of task completion. |
| data.image_url | string | Watermark-removed result image URL or base64 data. A returned URL is generally valid for 1 hour. |
| data.return_type | number | Result return method. |
| data.type | number | Compatibility field for the result return method. |
| data.progress | number | Task progress from 0 to 100. A value of 100 means processing is complete. |
| data.state | number | Task status. 1 means succeeded; 0 or greater than 1 means processing; less than 0 means failed. |
| data.state_detail | string | Detailed task status. |
| data.time_elapsed | number | Elapsed processing time. |
| data.use_point | number | Credits consumed by this task. |
### cURL examples
Asynchronous, image URL:
```bash
curl -k 'https://techhk.aoscdn.com/api/tasks/visual/advanced/watermark-remove' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'image_url=YOUR_IMAGE_URL'
```
Asynchronous, image file:
```bash
curl -k 'https://techhk.aoscdn.com/api/tasks/visual/advanced/watermark-remove' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'image_file=@/path/to/image.jpg'
```
Synchronous, image URL:
```bash
curl -k 'https://techhk.aoscdn.com/api/tasks/visual/advanced/watermark-remove' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=1' \
-F 'image_url=YOUR_IMAGE_URL'
```
Example asynchronous create response:
```json
{ "status": 200, "message": "ok", "data": { "task_id": "TASK_ID" } }
```
## Query Full-Screen Watermark Removal - Advanced result
For asynchronous requests, poll the result once every **1 second**. The maximum polling duration for this API is **600 seconds**; if the total polling time exceeds this without a result, treat it as a timeout failure.
`GET /api/tasks/visual/advanced/watermark-remove/{task_id}`
### Path parameters
| Name | Type | Required | Description |
| --- | --- | --- | --- |
| task_id | string | required | Task ID returned after creating an asynchronous Full-Screen Watermark Removal - Advanced task. Use it to query the result. |
### Return parameters
| Name | Type | Description |
| --- | --- | --- |
| status | number | HTTP response status code. 200 means the request succeeded; non-200 means it failed. |
| message | string | Response message. If the task fails, refer to this field or contact support with it. |
| data.task_id | string | Full-Screen Watermark Removal - Advanced task ID. If the task fails, contact support with this task_id. |
| data.created_at | number | Timestamp of task creation. |
| data.processed_at | number | Timestamp when the task started processing. |
| data.completed_at | number | Timestamp of task completion. |
| data.image_url | string | Watermark-removed result image URL or base64 data. A returned URL is generally valid for 1 hour. |
| data.return_type | number | Result return method. |
| data.type | number | Compatibility field for the result return method. |
| data.progress | number | Task progress from 0 to 100. A value of 100 means processing is complete. |
| data.state | number | Task status. 1 means succeeded; 0 or greater than 1 means processing; less than 0 means failed. |
| data.state_detail | string | Detailed task status. |
| data.time_elapsed | number | Elapsed processing time. |
| data.use_point | number | Credits consumed by this task. |
### cURL example
```bash
curl -k 'https://techhk.aoscdn.com/api/tasks/visual/advanced/watermark-remove/{task_id}' \
-H 'X-API-KEY: YOUR_API_KEY'
```
Example completed response:
```json
{
"status": 200,
"message": "success",
"data": {
"task_id": "TASK_ID",
"created_at": 1634884056,
"processed_at": 1634884056,
"completed_at": 1634884056,
"image_url": "https://.../result.png",
"return_type": 1,
"state_detail": "Complete",
"time_elapsed": 53.076,
"use_point": 10,
"progress": 100,
"state": 1
}
}
```
## Recommended asynchronous flow
1. POST to /api/tasks/visual/advanced/watermark-remove with `sync=0` and one source image.
2. Read `data.task_id` from the create response.
3. GET /api/tasks/visual/advanced/watermark-remove/{task_id} every 1 second, for no more than 600 seconds in total.
4. Inspect `data.state`: 1 = done (read `data.image_url`); 0 or greater than 1 = keep polling; less than 0 = failed.
5. Download the result image within 1 hour.
## Guidelines and Limits
- The result image URL is generally valid for **1 hour**. Please download and store it promptly.
- HTTP status 200 only means the HTTP request succeeded; data.state = 1 means processing succeeded.
- Follow URL encoding standards when passing URLs to prevent parameter parsing issues.
- You must not use this service for activities that violate laws, regulations, or the legitimate rights of others.
- Uploaded images must meet the following format and file size limits.
| Format | File size |
| --- | --- |
| PNG, WebP, JPEG/JPG | Less than 50MB |
## Status codes
Determine success by combining the HTTP response status code (`status`) with the task status code (`data.state`).
### HTTP response status codes
| Code | Meaning |
| --- | --- |
| 200 | The request is successful. |
| 400 | Wrong parameter passed by the client. Check whether a parameter is missing or has an incorrect value. |
| 401 | Unauthorized API key. Check that X-API-KEY is correct and the service is enabled. |
| 404 | The requested URL or resource does not exist. Check that the URL or task_id is correct. |
| 413 | The uploaded file exceeds the allowed size. Refer to the supported image size. |
| 429 | Request frequency exceeds the QPS limit (default QPS is 2). Slow down or contact us to raise your QPS. |
| 500 | Server-side exception. Please contact support. |
### Task status codes (data.state)
1 = succeeded; greater than 1 = still processing; less than 0 = failed.
| Code | Meaning |
| --- | --- |
| -17 | Processing failed because the prompt is invalid. |
| -16 | Processing failed because a third-party review detected prohibited content. |
| -15 | Processing failed due to insufficient resources. |
| -14 | Processing failed because the input image content does not meet the requirements. |
| -13 | Processing failed because the task was canceled due to an exception. |
| -11 | Processing failed because the result is empty. |
| -10 | Processing failed because internal review detected prohibited content. |
| -9 | Processing failed because the internal program failed during loop processing. |
| -8 | Processing timed out. The maximum processing time is 600 seconds. |
| -7 | Invalid image file (e.g. corrupted image or incorrect format). |
| -5 | The image_url image exceeds the size limit (50MB). |
| -3 | The server failed to download your file. Check that the source image URL is available. |
| -2 | Processing completed, but uploading the result to OSS failed. |
| -1 | Processing failed. |
| 0 | Queued. The task is waiting in the queue. |
| 1 | Completed. Processing succeeded. |
| 2 | Preparing. |
| 3 | Waiting. |
| 4 | Processing in progress. |
| 5 | Internally publishing the result. |
| 6 | Processing. Internal loop processing is in progress. |