Schnellstart
Versieh dein erstes Bild mit einem Wasserzeichen — von null bis zum herunterladbaren Ergebnis in etwa fünf Minuten.
Diese Anleitung fügt einem Bild mit einem einzigen synchronen Aufruf ein Wasserzeichen hinzu. Du sendest eine Quell-URL, Fotovid verarbeitet sie, und du erhältst das Ergebnis in derselben Antwort — ohne Polling, ohne Webhooks.
API-Schlüssel erstellen
Erstelle einen Schlüssel im Fotovid-Dashboard unter Account →
API Keys. Der vollständige Schlüssel wird nur einmal bei der Erstellung
angezeigt, in der Form p6_<key_id>:<secret> — kopiere ihn jetzt und bewahre ihn
sicher auf.
Details unter Authentifizierung.
Ersten Aufruf senden
Sende ein POST an /v1/image/watermark mit einer öffentlich erreichbaren
source_url und deinen Wasserzeichen-params.
curl -X POST https://api.fotovid.co/v1/image/watermark \
-H "Authorization: Bearer p6_<key_id>:<secret>" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://cdn.example.com/photo.jpg",
"params": { "watermark_type": "text", "text": "Fotovid.co", "position": "bottom-right" }
}'const res = await fetch("https://api.fotovid.co/v1/image/watermark", {
method: "POST",
headers: {
Authorization: "Bearer p6_<key_id>:<secret>",
"Content-Type": "application/json",
},
body: JSON.stringify({
source_url: "https://cdn.example.com/photo.jpg",
params: { watermark_type: "text", text: "Fotovid.co", position: "bottom-right" },
}),
});
const result = await res.json();
console.log(result.url);import requests
res = requests.post(
"https://api.fotovid.co/v1/image/watermark",
headers={"Authorization": "Bearer p6_<key_id>:<secret>"},
json={
"source_url": "https://cdn.example.com/photo.jpg",
"params": {"watermark_type": "text", "text": "Fotovid.co", "position": "bottom-right"},
},
)
print(res.json()["url"])Ergebnis lesen
Ein synchroner Aufruf liefert 200 OK mit einem flachen Body. Es gibt kein
status-Feld — eine 200-Antwort ist der Erfolg.
{
"id": "01JABCDEFGHJKMNPQRSTVWXYZ",
"type": "image.watermark",
"url": "https://tempfile.fotovid.co/i/<hex>.webp",
"expires_at": "2026-06-10T12:00:00Z"
}url ist ein zeitlich begrenzter Download-Link zu deinem Bild. Lade es vor
expires_at herunter (Ergebnisse werden 7 Tage aufbewahrt).
Die Ausgabe ist standardmäßig WebP. Überschreibe sie mit params.output_format
(webp | jpeg | png) und params.quality (1–100). Die vollständige
Parameterliste findest du im Wasserzeichen-Leitfaden.
Größere Dateien
Synchrone Aufrufe sind für kleine, schnelle Aufgaben gedacht (etwa 10 Sekunden
Budget, Quellbilder bis 128 MiB). Für große oder lange Eingaben — oder wenn
ein synchroner Aufruf 413, 409 oder 504 liefert — nutze die asynchrone
Task-API: POST /v1/tasks mit einem type im Body, dann per Polling von
GET /v1/tasks/{id} oder per Webhook. Mehr dazu unter
Synchron vs. asynchron.