ShotFox

API-Dokumentation

Screenshots automatisch aus deinen eigenen Programmen, Websites oder Skripten erstellen – kostenlos, 100 pro Tag.

Schnellstart

1
Kostenlos registrieren und kurz angeben, wofür du die API nutzen möchtest.
2
Nach der Freischaltung im Dashboard deinen API-Key erzeugen.
3
Aufrufen – fertig:
GET https://shotfox.de/api/screenshot.php?key=DEIN_KEY&url=https://example.com&wait=20

Den Key kannst du als Header X-Api-Key: DEIN_KEY (empfohlen) oder als Parameter key=DEIN_KEY übergeben. Bilder von API-Aufrufen haben kein Wasserzeichen.

Screenshot anfordern

GET|POST https://shotfox.de/api/screenshot.php

Legt einen Auftrag an und liefert ihn als JSON zurück. Mit wait=20 wartet der Aufruf bis zu 20 Sekunden auf das fertige Bild – für die meisten Seiten reicht das, du brauchst dann keinen zweiten Aufruf.

Parameter

ParameterStandardBeschreibung
url–Zielseite (http/https), Pflicht
width1280Fensterbreite in px (320–1920)
height800Fensterhöhe in px (200–1440)
full_page01 = ganze Seite (max. 10.000 px hoch)
delay0Zusätzliche Wartezeit nach dem Laden in ms (0–10000)
formatpngpng oder jpeg
hide_cookies1Cookie-/Consent-Banner ausblenden (0 = anzeigen)
block_ads1Werbung und Werbe-Tracker blockieren
dismiss_popups1Newsletter-Popups, Chat-Widgets und Dialoge schließen
wait0Bis zu so vielen Sekunden (max. 25) auf das fertige Bild warten
fresh01 = Cache ignorieren und neu aufnehmen
outputjsonimage = bei fertigem Bild direkt per Weiterleitung auf das Bild

Antwort

200 = fertig, 202 = noch in Arbeit (dann status_url erneut abfragen).

{
  "id": "3f9c0a1b2c3d4e5f6a7b",
  "status": "done",                 // pending | processing | done | failed | expired
  "url": "https://example.com/",
  "width": 1280, "height": 800, "full_page": false, "format": "png",
  "clean": { "hide_cookies": true, "block_ads": true, "dismiss_popups": true },
  "image_url": "https://shotfox.de/shots/3f9c0a1b2c3d4e5f6a7b-1a2b3c4d.png",
  "error": null,
  "cached": false,
  "created_at": "2026-11-12 08:00:00Z",
  "finished_at": "2026-11-12 08:00:04Z",
  "status_url": "https://shotfox.de/api/status.php?id=3f9c0a1b2c3d4e5f6a7b"
}

Status abfragen

GET https://shotfox.de/api/status.php?id=JOB_ID&key=DEIN_KEY[&wait=20]

Liefert denselben Aufbau wie oben. Auch hier wartet wait bis zu 25 Sekunden auf das Ergebnis.

Cache & Limits

  • Cache: Gibt es zur gleichen URL mit gleichen Einstellungen schon ein Bild, das jünger als 14 Tage ist, kommt es sofort zurück ("cached": true) und zählt nicht zum Tageslimit. fresh=1 erzwingt ein neues Bild.
  • Tageslimit: 100 neue Screenshots pro Tag und Key. Mehr? Schreib uns, was du vorhast.
  • Aufbewahrung: Bilder werden nach 14 Tagen automatisch gelöscht – speichere sie bei Bedarf selbst.
  • Nicht möglich: private/lokale Adressen, andere Ports als 80/443/8080/8443, Seiten mit Bot-Schutz (z. B. Cloudflare-Prüfung).

Fehlercodes

CodeBedeutung
400Ungültige Parameter (z. B. URL fehlt, private Adresse)
401API-Key fehlt oder ist ungültig
403Konto noch nicht freigeschaltet oder gesperrt
404Auftrag nicht gefunden
429Tageslimit erreicht
500Interner Fehler – bitte später erneut versuchen

Fehler kommen immer als JSON: {"error": "Beschreibung"}. Schlägt die Aufnahme selbst fehl, ist status = failed und error enthält den Grund.

Beispiele

curl

curl -H "X-Api-Key: DEIN_KEY" \
  "https://shotfox.de/api/screenshot.php?url=https://example.com&wait=20"

PHP

<?php
$ctx = stream_context_create(['http' => ['header' => "X-Api-Key: DEIN_KEY\r\n"]]);
$r = json_decode(file_get_contents(
    'https://shotfox.de/api/screenshot.php?wait=20&url=' . urlencode('https://example.com'), false, $ctx
), true);
echo $r['image_url'];

JavaScript (Node / Browser-Backend)

const r = await fetch('https://shotfox.de/api/screenshot.php?wait=20&url=' + encodeURIComponent('https://example.com'),
  { headers: { 'X-Api-Key': 'DEIN_KEY' } });
const job = await r.json();
console.log(job.image_url);

Python

import requests
r = requests.get('https://shotfox.de/api/screenshot.php',
                 params={'url': 'https://example.com', 'wait': 20},
                 headers={'X-Api-Key': 'DEIN_KEY'})
print(r.json()['image_url'])

Als Bild einbinden

<img src="https://shotfox.de/api/screenshot.php?key=DEIN_KEY&wait=20&output=image&url=https://example.com">

Achtung: So steht dein Key für jeden sichtbar im HTML. Für öffentliche Seiten die API besser serverseitig aufrufen und nur image_url ausgeben.

Kostenlosen API-Key beantragen