Documentation Index
Fetch the complete documentation index at: https://apixo.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Image Watermark Remover removes visible text or logo watermarks from one input image and returns a cleaned image URL. Use this page when you are ready to call the API after trying the model in the APIXO playground.| Capability | Value |
|---|---|
| Model ID | image-watermark-remover |
| Mode | image-to-image |
| Input images | Exactly 1 public image URL |
| Output formats | jpg, jpeg, png, webp |
| Default output format | jpg |
| Result delivery | Async polling or webhook callback |
Endpoint and authentication
Base URL:| Method | Endpoint | Purpose |
|---|---|---|
POST | /generateTask/image-watermark-remover | Submit a watermark removal task |
GET | /statusTask/image-watermark-remover?taskId={taskId} | Poll task status and retrieve results |
Copy-paste async quickstart
This minimal request submits one image cleanup task and returns ataskId.
taskId; you need it to poll for the final result.
Poll for result
resultJson after state becomes success:
Request body
Default JPG output
PNG output
Explicit mode
mode is optional because this endpoint has only one workflow. If you include it, it must be image-to-image.
Parameters
Result delivery mode. Use
async for polling with statusTask, or callback for webhook delivery.Required when
request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.Image Watermark Remover input parameters.
Response format
Submit task response
POST /generateTask/image-watermark-remover returns a task ID when the task is accepted:
API status code.
200 means the task was accepted.Human-readable status message.
Unique task identifier used with the status endpoint.
Status response fields
Unique task identifier.
Current task state:
pending, processing, success, or failed.JSON string containing the cleaned image URLs. Present when
state is success.Machine-readable failure code. Present when
state is failed.Human-readable failure message. Present when
state is failed.Task creation timestamp in Unix milliseconds.
Task completion timestamp in Unix milliseconds. Present after completion when available.
Processing duration in milliseconds when available.
resultJson payload
resultJson is a JSON-encoded string. After parsing it, the payload has this shape:
Webhook callback mode
Use callback mode when your backend should receive the final result automatically instead of polling.Billing
Image Watermark Remover is billed per submitted image task. Becauseimage_urls must contain exactly one image, each accepted task counts as one image for billing.
| Unit | APIXO price | What changes price |
|---|---|---|
PER_IMAGE | $0.015 / image | Fixed unit price; output_format does not create a separate pricing tier |
Latency and polling
This endpoint is asynchronous. Actual latency can vary by image complexity, upstream queue load, and result storage time.| Stage | Recommendation |
|---|---|
| First poll | 10s-20s after task creation |
| Poll interval | 5s-10s |
| High concurrency | Prefer callback mode to reduce polling traffic |
Errors and troubleshooting
HTTP errors
| Code | Meaning | What to do |
|---|---|---|
400 | Invalid request body, unsupported mode, invalid output format, or wrong image_urls shape | Fix the request before retrying |
401 | Missing or invalid API key | Check the Authorization header |
402 | Insufficient balance or quota | Add balance or switch account/key |
403 | Key or route cannot access the model | Check permissions and route strategy |
429 | Rate limit or concurrency limit reached | Retry with exponential backoff |
500 | Server error | Retry with backoff |
502 | Upstream service error | Retry with backoff |
504 | Upstream timeout | Retry or use callback mode for long-running jobs |
Validation errors
| Error | Cause | Fix |
|---|---|---|
The required parameter {{input}} is missing. | Missing top-level input object | Send an input object |
The required parameter {{image_urls}} is missing. | Missing input.image_urls | Send image_urls with exactly one URL |
The parameter {{image_urls}} must be Array type. | image_urls is not an array | Use a JSON array |
The parameter {{image_urls}} must contain exactly 1 image. | image_urls is empty or contains multiple items | Send exactly one image URL |
The parameter {{image_urls}} Array elements must be String type. | The image URL item is not a string | Use a string URL |
The parameter {{image_urls}} cannot contain empty string. | The image URL is blank after trimming | Use a non-empty public image URL |
Invalid mode type. Supported: image-to-image | mode is not image-to-image | Omit mode or set it to image-to-image |
The parameter {{output_format}} must be String type. | output_format is not a string | Use a string value |
The parameter {{output_format}} must be either 'jpg', 'png' or 'webp'. | Unsupported output format | Use jpg, jpeg, png, or webp |
Task failure codes
| Fail code | Meaning | What to do |
|---|---|---|
INVALID_PARAMETER | A parameter is unsupported or malformed | Check mode, image_urls, and output_format |
INSUFFICIENT_BALANCE | The account does not have enough balance for the task | Add balance before retrying |
UPSTREAM_ERROR | Upstream-side failure | Retry with backoff |
TIMEOUT | Generation did not finish in time | Retry or use callback mode |