#What the Watermark API does
The Watermark API provides 21 endpoints for adding, managing, detecting, and removing watermarks across 7 file types: images, PDFs, videos, audio, documents, 3D models, and eBooks.
#Endpoints at a glance
| Endpoint | What it does | Credits |
|---|---|---|
add-text |
Add a text watermark (font, size, color, opacity, rotation, shadow, outline) | 0.1 |
add-image |
Overlay an image/logo watermark with scaling and positioning | 0.1 |
add-pattern |
Tile repeating text across the entire file | 0.15 |
add-code |
Embed a QR code or barcode (Code128, EAN-13, DataMatrix, etc.) | 0.15 |
add-audio |
Add audio watermarks: voice tags, tones, intros/outros, ultrasonic | 0.3 |
preview |
Preview watermark placement without processing (free) | 0 |
batch |
Watermark up to 50 files in one request | 0.08 |
batch-status |
Check batch processing progress | 0 |
status |
Check individual job status | 0 |
download |
Download the watermarked result | 0 |
templates |
List saved watermark templates | 0 |
template-save |
Save a reusable watermark configuration | 0 |
template-delete |
Delete a saved template | 0 |
detect |
AI-powered watermark detection in images | 0.5 |
verify |
Verify a specific tracking ID in a file | 0.3 |
remove |
AI-powered watermark removal from images | 1 |
decode-code |
Decrypt an encrypted barcode/QR payload | 0.05 |
read-code |
Scan and read a QR/barcode from an image | 0.05 |
brand-kit-list |
List brand kits (logos, fonts, colors) | 0 |
brand-kit-save |
Save or update a brand kit | 0 |
brand-kit-delete |
Delete a brand kit | 0 |
#Supported file formats
| Category | Formats | Watermark Types |
|---|---|---|
| Images | JPEG, PNG, GIF, BMP, WebP, TIFF | Text, Image, Pattern, Code |
| Text, Image, Pattern, Code | ||
| Video | MP4, AVI, MOV, MKV, WebM | Text, Image, Pattern, Code |
| Audio | MP3, WAV, FLAC, OGG, AAC | Audio (voice tag, tone, intro/outro, ultrasonic) |
| Documents | DOCX, XLSX, PPTX | Text, Image |
| 3D Models | OBJ, STL, GLTF, FBX | Text, Image |
| eBooks | EPUB, MOBI | Text, Image |
#Quick start
Add a text watermark to an image in one API call:
curl -X POST https://api.yeb.to/v1/watermark/add-text \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_KEY",
"file_url": "https://example.com/photo.jpg",
"text": "© 2026 My Company",
"opacity": 0.5,
"position": "bottom-right",
"font_size": 36,
"color": "#ffffff"
}'
The response includes the watermarked file URL immediately for small files,
or a job_id for async processing of larger files:
{
"job_id": 1234,
"status": "completed",
"url": "https://storage.yeb.to/watermark/output/abc123.jpg",
"file_size": 245678,
"credits_used": 0.10,
"response_code": 200
}
#Watermark types explained
Text watermark
The add-text endpoint overlays customizable text. Control the font family,
size (8–500px), color, opacity (0–1), position (9 presets + custom x/y),
rotation (-360° to 360°), and optional shadow or outline effects.
Image watermark
The add-image endpoint overlays a logo or image. Upload via
watermark_image, watermark_image_url, or watermark_image_base64.
Control opacity, position, scale, and rotation.
Pattern watermark
The add-pattern endpoint tiles repeating text across the entire file —
commonly used for “DRAFT” or “CONFIDENTIAL” overlays.
Adjust font size, color, opacity, rotation, and horizontal/vertical spacing.
Code watermark (QR/barcode)
The add-code endpoint embeds a machine-readable code. Supported formats:
QR, Code128, Code39, EAN-13, EAN-8, and DataMatrix. Optionally encrypt the payload
with an encryption_key for tamper-proof verification.
Audio watermark
The add-audio endpoint embeds audio marks into audio/video files.
Four types: voice_tag (spoken watermark), tone (beep/chime),
intro_outro (clip at start/end), and ultrasonic
(inaudible high-frequency mark for tracking).
#Batch processing
Watermark up to 50 files in a single API call using the batch endpoint.
All files receive the same watermark configuration. The request returns a batch_id
that you can poll with batch-status to track progress.
- Each file is processed independently and asynchronously
- Credits are charged per file (same rate as individual endpoints)
- Failed files don’t block the rest of the batch
- Results are available for download as each file completes
#Reusable templates
Save your watermark configuration as a template to reuse across requests. Templates store the watermark type, position, opacity, font settings, and all other parameters.
- Save —
template-savecreates or updates a template with a name and config object - List —
templatesreturns all your saved templates, optionally filtered by category - Use — pass a
template_idto any watermark endpoint to apply saved settings - Delete —
template-deleteremoves a template by ID
#Code watermarks & verification
Code watermarks enable machine-readable tracking. The workflow:
add-code— embed a QR/barcode with an optional encrypted payloadread-code— scan the code from an image to extract the raw payloaddecode-code— decrypt the payload using your encryption key
This is useful for tracking document provenance, verifying authenticity, or embedding license keys in media files.
#Detection & removal
Three AI-powered endpoints for working with existing watermarks:
- detect (0.50 credits) — analyzes an image to find watermark regions, returning bounding boxes and confidence scores
- verify (0.30 credits) — checks if a specific tracking ID or steganographic mark is present in a file
- remove (1.00 credits) — attempts AI-powered watermark removal from images (works best on semi-transparent text overlays)
#Brand kits
Brand kits store your organization’s logos, fonts, colors, and default watermark configuration. Once saved, they can be referenced across all watermark endpoints for consistent branding.
brand-kit-save— create or update a kit with name, logos, fonts, colors, and default configbrand-kit-list— retrieve all your brand kitsbrand-kit-delete— remove a kit by ID
#Authentication
All requests require an api_key parameter in the JSON body.
Get your key from the dashboard. The key identifies your account
and is used for credit billing and rate limiting.
#Error handling
Standard HTTP status codes are used. Common errors:
| Code | Meaning |
|---|---|
400 | Bad request — missing or invalid parameters |
401 | Unauthorized — invalid or missing API key |
402 | Insufficient credits |
413 | File too large (max 50 MB for images, 500 MB for video) |
422 | Validation error — check the error field for details |
429 | Rate limit exceeded — max 15 req/s |
500 | Server error — retry or contact support |