Watermark Image API
parseforge/watermark-image-api
Developer toolsAutomationOther
Add text or logo watermarks to images in bulk. Control opacity, size, position, font, and output format. Supports JPEG, PNG, and WebP.
- Total users
- 10
- Monthly active
- 1
- Total runs
- 766
- Bookmarked
- 1
- Rating
- 5.0 (2)
- Last modified
- 12 days ago
Overview
Watermark Image API
Add text or logo watermarks to images in bulk, with full control over opacity, size, position, and font. Upload JPEG, PNG, or WebP files and get watermarked versions back in your chosen format. No design tools or manual editing needed.
Manually watermarking images one by one is slow and inconsistent. This API applies text or logo watermarks to any number of images at once, with precise control over placement, transparency, and size. It works with JPEG, PNG, and WebP files and returns the processed images in the format you need.
| Who uses it | What they scrape Watermark Image API for |
|---|---|
| E-commerce sellers | Protect product photos before publishing them to marketplaces |
| Photographers | Add a consistent copyright mark to client proofs and portfolios |
| Social media managers | Brand images for multiple platforms in one batch |
| Content creators | Stamp a logo on thumbnails and promotional graphics |
What it does
This Actor takes uploaded images and applies a text or logo watermark, returning each watermarked image as a downloadable file.
- ๐ค Text watermark: custom text with font family, color, opacity, size, letter spacing, and background box.
- ๐ผ๏ธ Logo watermark: upload a PNG, JPEG, or WebP logo and control its opacity and scale.
- ๐ Flexible positioning: corners, center, diagonal, or custom offsets by percentage.
- ๐ฆ Batch processing: upload multiple images and watermark them all in one run.
- ๐ Format conversion: output as JPEG, PNG, or WebP regardless of input format.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Watermark Image API data
๐๏ธ Protect product images for e-commerce.
An online store owner uploads a folder of product photos, adds their brand name as a semi-transparent text watermark in the corner, and exports JPEGs ready for the storefront.
๐ธ Batch watermark client photo proofs.
A photographer uploads a set of proofs, places a diagonal logo watermark across each image, and sends the watermarked PNGs to the client for review.
๐ฑ Brand social media graphics.
A social media manager uploads promotional images, adds the company logo at a small size in the bottom right, and exports WebP files optimized for web use.
๐ฌ Stamp thumbnails for video content.
A YouTuber uploads thumbnail images, applies a bold text watermark with a background box, and downloads the watermarked JPEGs for upload to the platform.
Why choose this scraper
| What you get | |
|---|---|
| Batch watermarking | Process many images in a single run with identical settings |
| Text and logo support | Use either a text string or an uploaded logo image as the watermark |
| Fine-grained control | Adjust opacity, size, position, font, color, and spacing |
| Multiple output formats | Export watermarked images as JPEG, PNG, or WebP |
How it compares
This Actor adds watermarks to your own images. The competitor below is a TikTok scraper that provides no-watermark download links for TikTok videos.
| Feature | ParseForge | Advanced Search TikTok API (free-watermark videos) |
|---|---|---|
| Add text watermark to images | Yes | Not listed |
| Add logo watermark to images | Yes | Not listed |
| Batch process multiple images | Yes | Not listed |
| Control watermark opacity and size | Yes | Not listed |
| Export as JPEG, PNG, or WebP | Yes | Not listed |
| Provide no-watermark video download links | Not listed | Yes |
Configure the run
Upload the images you want to watermark, then choose a text or logo watermark and adjust its appearance and position. The Actor processes every image with the same settings and returns the watermarked files. The Input tab lists every parameter.
A first run with the defaults:
{
"imageFiles": [
"https://github.com/ParseForge/apify-assets/blob/65f2790e17ebc08b3c4ae5ca92cbb43a444c2ab1/watermark-image-api/original.avif?raw=true"
],
"fontFamily": "inter",
"textColor": "#ffffff",
"textOpacity": 90,
"textScale": 50,
"letterSpacing": 0,
"backgroundOpacity": 35,
"logoFile": "https://raw.githubusercontent.com/ParseForge/apify-assets/3fb8b140a224231d5c4ffdf30fc22f78c581cf3f/watermark-image-api/react_logo.png",
"logoOpacity": 30,
"logoScale": 80,
"position": "center",
"offsetXPercent": 0,
"offsetYPercent": 0,
"outputFormat": "png"
}
Pricing
Pay-per-result: $0.0025 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.25 |
| 1,000 results | $2.50 |
| 10,000 results | $25.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Watermark Image API.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Watermark Image API through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/watermark-image-api"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why is my watermark not appearing on the images?
Check that you have provided either watermarkText or logoFile. If both are empty, no watermark is applied. Also ensure the opacity is not set to 0.
Why is the logo watermark not showing even though I uploaded a logo?
If you also provided watermarkText, the text takes precedence. Remove the text to use the logo. Also check that the logo file is a valid PNG, JPEG, or WebP.
Why is the text watermark too small or too large?
Adjust the textScale parameter. It controls the watermark size as a percentage of the image width. Increase it for a larger watermark, decrease for smaller.
Why is the watermark position not where I expected?
Make sure you selected the correct position. If using 'custom', set offsetXPercent and offsetYPercent to the desired offsets from the anchor point.
Why did the output format change from my input?
The Actor uses the outputFormat you specify, not the input format. If you want to keep the original format, set outputFormat to match your input files.
FAQ
| Question | Answer |
|---|---|
| What image formats can I upload? | The Actor accepts JPEG, PNG, and WebP images. You can upload multiple files at once. |
| Can I use both text and logo watermarks at the same time? | No, you choose either a text watermark or a logo watermark. If both are provided, the logo takes precedence. |
| How do I control the transparency of the watermark? | Use the opacity settings. For text, set textOpacity from 0 to 100. For logos, set logoOpacity from 0 to 100. Higher values make the watermark more visible. |
| Can I place the watermark anywhere on the image? | Yes. Choose from corners, center, diagonal, or custom. For custom, set offsetXPercent and offsetYPercent to position it precisely. |
| What output formats are supported? | You can export watermarked images as JPEG, PNG, or WebP. JPEG gives smaller files, PNG supports transparency, and WebP is optimized for the web. |
| Is there a limit on the number of images I can process? | There is no fixed limit in the Actor itself. You can upload as many images as your plan allows. |
| Can I change the font of the text watermark? | Yes, choose from Inter, Arial, Impact, Verdana, Courier, Comic Sans, or Times New Roman. |
| How do I make the watermark text larger or smaller? | Adjust the textScale parameter. It sets the watermark size as a percentage of the image width, from 5% to 100%. |
| Can I add a background behind the text watermark? | Yes, set backgroundOpacity to a value greater than 0. A value of 0 means no background, and 100 means a solid background. |
| Does the Actor modify my original images? | No, the original images are not changed. The Actor creates new watermarked versions and returns them as output files. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by ParseForge. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| imageFiles required | array | Upload images to watermark. Supports JPEG, PNG, and WebP formats. You can process multiple images at once. | ["https://github.com/ParseForge/apify-as |
| watermarkText | string | Text to display as watermark. Only used if logo is not provided. Use either text OR logo watermark, not both. | not set |
| fontFamily | string (7 options) | Font family for text watermark. Choose from: Inter (modern), Arial (classic), Impact (bold), Verdana (readable), Courier (monospace), Comic Sans (casual), Times New Roman (traditional). | inter |
| textColor | string | Color for text watermark in HEX format (e.g., #FFFFFF for white, #000000 for black). | #ffffff |
| textOpacity | integer | Transparency of text watermark (0-100%). Higher values = more visible watermark. | 90 |
| textScale | integer | Size of text watermark as percentage of image width (5-100%). Higher values = larger watermark. | 50 |
| letterSpacing | integer | Spacing between letters as percentage of font size (0-200%). Higher values = more space between letters. | 0 |
| backgroundOpacity | integer | Transparency of text background box (0-100%). 0 = no background, 100 = solid background. Only applies to text watermarks. | 35 |
| logoFile | string | 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. | https://raw.githubusercontent.com/ParseF |
| logoOpacity | integer | Transparency of logo watermark (0-100%). Higher values = more visible logo. | 30 |
| logoScale | integer | Size of logo watermark as percentage of image width (5-100%). Higher values = larger logo. | 80 |
| position | string (8 options) | Where to place the watermark on the image. Corner positions, center, diagonal (across image), or custom offsets. | center |
| offsetXPercent | integer | Horizontal offset from position anchor as percentage (0-100). Only used when position is set to 'custom'. | 0 |
| offsetYPercent | integer | Vertical offset from position anchor as percentage (0-100). Only used when position is set to 'custom'. | 0 |
| outputFormat | string (3 options) | Format for watermarked images. JPEG for smaller files, PNG for transparency support, WebP for modern web optimization. | png |
Pricing
from $0.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0005 to $0.0025 |
| result | Single result in the default dataset. | $0.0005 to $0.0025 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~watermark-image-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
Rated 5.0 out of 5 across 2 reviews. Read them on Apify.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
