Documentation

ShotForge transforme n'importe quelle URL en PNG, JPEG, PDF ou carte sociale en un seul appel HTTP. URL de base ci-dessous — tous les endpoints acceptent et renvoient du JSON sauf les rendus binaires.

Authentification

Créez une clé API depuis votre tableau de bord, puis envoyez-la dans le header X-API-Key :

curl -X POST https://shotforge.dev/api/v1/screenshot \
  -H "X-API-Key: sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}' --output shot.png

POST/api/v1/screenshot

Transforme une URL en PNG ou JPEG.

ChampTypeDéfautDescription
urlstring—Requis. http(s) uniquement.
widthint1280200–3840, plafonné par le plan.
heightint800200–5000.
full_pageboolfalseCapture toute la hauteur de la page. Starter et supérieur.
formatstringpngpng ou jpeg
delay_msint0Attente supplémentaire après chargement, 0–10000 ms.
authobject—Capturez des pages derrière une connexion. Envoyez un objet auth optionnel avec votre requête — les identifiants servent une fois en mémoire pour le rendu, jamais stockés ni loggés.
cleanbooltrueFerme automatiquement bandeaux cookies, consentements RGPD et widgets de chat avant la capture (défaut : vrai).

🔒 Pages authentifiées

Capturez des pages derrière une connexion. Envoyez un objet auth optionnel avec votre requête — les identifiants servent une fois en mémoire pour le rendu, jamais stockés ni loggés. Plan Starter et supérieur.

curl -X POST https://shotforge.dev/api/v1/screenshot \
  -H "X-API-Key: sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://app.example.com/dashboard",
    "auth": {
      "username": "you@example.com",
      "password": "secret",
      "type": "basic"
    }
  }' --output private-page.png
ChampTypeDéfautDescription
auth.usernamestring—Identifiant / email.
auth.passwordstring—Mot de passe. À envoyer en HTTPS uniquement.
auth.typestringbasicbasic = popup HTTP Basic · form = remplit le formulaire de connexion du site.
auth.selectorsobjectautoSélecteurs CSS optionnels pour le mode form : username, password, submit.

Sécurité : les identifiants transitent par TLS, ne vivent que le temps du rendu dans un contexte navigateur isolé, et sont détruits à sa fermeture. Ils n'apparaissent ni dans les logs, ni en base, ni dans l'historique (seule l'URL cible est enregistrée).

POST/api/v1/og-image

Génère une carte sociale 1200×630 (PNG).

template — raw (capture viewport historique) ou l’un des 60 identifiants de modèles composés. Les cartes composées font toujours 1200×630.

title, subtitle, brand — Titre (120 caractères), sous-titre (220) et marque (60) optionnels pour les modèles composés.

ember-framemidnight-browserpaper-editorialviolet-orbitlime-terminalocean-splitcoral-stackmono-brutalaurora-glasssunset-cardroyal-deviceblueprintrose-magazinesand-galleryneon-circuitforest-windowruby-postersilver-minimalgold-luxeindigo-focusmint-polaroidcharcoal-newspeach-friendlycyber-gridlavender-floatred-alertsky-dashboardcopper-angleplum-storyice-cleanobsidian-commandcream-serifemerald-sidebarcobalt-cascadetangerine-labelgraphite-gridlinefuchsia-collagealpine-cardnoir-cinemalemon-popteal-ticketbrick-reportpearl-productultraviolet-scanmoss-notebookcobalt-phonecrimson-covercyan-isometricclay-windowacid-zinenavy-statblush-lettertungsten-panelamber-quotejade-maplilac-appscarlet-ribbonarctic-doccoffee-stampspectrum-prism
Créateur OG →

POST/api/v1/pdf

Transforme une URL en PDF. Plan Pro et supérieur. Champs: url, format (A4|A3|Letter|Legal), landscape, print_background.

Erreurs

CodeDescription
401Clé API ou token manquant/invalide.
400 quota_exceededQuota mensuel atteint. Réinitialisé le 1er du mois.
403 pdf_not_in_planLe PDF requiert Pro ou Business (gratuit pendant votre essai de 14 jours).
403 auth_render_not_in_planLes rendus authentifiés requièrent Starter ou plus (inclus dans votre essai).
422 render_failedL'URL n'a pas pu être rendue (injoignable, IP privée, timeout).
423Compte verrouillé après plusieurs échecs de connexion.
Aperçu de la capture