Screenshots einer Webseite automatisch sichern
Diese Funktion legt einen Zeitplan an, nach dem eine Internetadresse regelmäßig aufgerufen und als Screenshot gespeichert wird – täglich, wöchentlich oder in einem selbst gewählten Rhythmus. Gedacht für alle, die den Zustand einer Seite über einen längeren Zeitraum dokumentieren wollen, ohne die Aufnahme jedes Mal von Hand auszulösen.
Wie der Zeitplan funktioniert
Sie legen eine Internetadresse und ein Intervall fest, etwa täglich um eine bestimmte Uhrzeit oder einmal pro Woche an einem festen Wochentag. Die Funktion ruft die Seite zu diesem Zeitpunkt automatisch auf und legt einen neuen Screenshot ab, ohne dass jemand die Aufnahme jedes Mal manuell anstoßen muss. Über die Zeit entsteht so eine Abfolge von Aufnahmen derselben Seite, die sich chronologisch nebeneinanderlegen lässt.
Wofür sich das eignet
Eine Kampagnenseite, deren Inhalt sich mehrmals pro Woche ändert, lässt sich so über die gesamte Laufzeit dokumentieren, ohne dass jemand daran denken muss, täglich selbst nachzusehen und einen Screenshot anzustoßen. Auch die eigene Startseite lässt sich so über Monate hinweg archivieren, etwa um später zu belegen, wie sie zu einem bestimmten Zeitpunkt tatsächlich aussah, wenn eine Änderung im Nachhinein infrage gestellt wird.
Jeder Durchlauf zählt als eigene Anfrage
Ein wöchentlicher Zeitplan über drei Monate erzeugt rund zwölf Aufnahmen, jede davon wird wie ein einzelner Screenshot berechnet, nicht der Zeitplan als Ganzes. Es lohnt sich daher, das Intervall bewusst zu wählen: Für die meisten Kontrollzwecke reicht ein wöchentlicher statt eines täglichen Rhythmus, was die laufenden Kosten über Monate hinweg deutlich senkt, ohne den eigentlichen Zweck der Beobachtung einzuschränken oder wichtige Änderungen zu übersehen.
Preis pro Durchlauf
$0.040 pro Anfrage zuzüglich $0.001 pro URL – pro tatsächlich ausgeführtem Durchlauf, nicht pro angelegtem Zeitplan selbst. Ein täglicher Zeitplan über einen Monat kostet damit rund dreißigmal so viel wie ein einzelner Screenshot, ein wöchentlicher entsprechend nur ein Siebtel davon. Ein Abonnement gibt es nicht, abgerechnet wird ausschließlich, was tatsächlich läuft, sodass ein beendeter Zeitplan ab diesem Zeitpunkt keine weiteren Kosten mehr verursacht.
Anwendungsfälle
Kampagnenseite über die Laufzeit dokumentieren
Katrin Baumann lässt eine befristete Aktionsseite wöchentlich automatisch aufnehmen, um später den genauen Ablauf der Kampagne nachvollziehen zu können.
Eigene Startseite über Monate archivieren
Weber Metallbau GmbH sichert die eigene Startseite einmal im Monat automatisch, um Änderungen im Zeitverlauf dokumentiert zu haben.
Wettbewerbsbeobachtung ohne tägliches Nachsehen
Eine Marketingabteilung lässt die Angebotsseite eines Mitbewerbers wöchentlich automatisch aufnehmen, statt jede Woche selbst daran zu denken.
Häufige Fragen
Wie oft kann die Aufnahme wiederholt werden?
Das Intervall bestimmen Sie selbst, von täglich bis zu einem selbst gewählten längeren Rhythmus; jeder Durchlauf wird einzeln berechnet.
Was kostet ein monatlicher Zeitplan mit täglicher Aufnahme?
Rund dreißig Durchläufe zu je $0.040 plus $0.001 pro URL, also etwa das Dreißigfache eines einzelnen Screenshots.
Wo finde ich die bisherigen Aufnahmen?
Jeder Durchlauf liefert ein eigenes Ergebnis, das sich wie ein einzelner Screenshot abrufen und herunterladen lässt.
Kann ich den Zeitplan nachträglich ändern oder stoppen?
Ja, ein Zeitplan lässt sich anpassen oder beenden, sobald die Beobachtung nicht mehr nötig ist.
Brauche ich dafür ein Konto?
Nein, auch für einen laufenden Zeitplan ist kein Konto nötig – abgerechnet wird pro tatsächlich ausgeführtem Durchlauf.
Eignet sich das auch zur Beobachtung von Änderungen?
Für reine Bildvergleiche über die Zeit ja; wer stattdessen automatisch benachrichtigt werden möchte, wenn sich eine Seite sichtbar verändert, findet dafür die eigene Funktion zur visuellen Änderungsüberwachung.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/web/screenshot-scheduled \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/screenshot-scheduled", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/screenshot-scheduled",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/screenshot-scheduled", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/screenshot-scheduled", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"url": "https://ejemplo.com"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.screenshot_scheduled",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |