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.
| Champ | Type | Défaut | Description |
|---|---|---|---|
| url | string | — | Requis. http(s) uniquement. |
| width | int | 1280 | 200–3840, plafonné par le plan. |
| height | int | 800 | 200–5000. |
| full_page | bool | false | Capture toute la hauteur de la page. Starter et supérieur. |
| format | string | png | png ou jpeg |
| delay_ms | int | 0 | Attente supplémentaire après chargement, 0–10000 ms. |
| auth | object | — | 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. |
| clean | bool | true | Ferme 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
| Champ | Type | Défaut | Description |
|---|---|---|---|
| auth.username | string | — | Identifiant / email. |
| auth.password | string | — | Mot de passe. À envoyer en HTTPS uniquement. |
| auth.type | string | basic | basic = popup HTTP Basic · form = remplit le formulaire de connexion du site. |
| auth.selectors | object | auto | Sé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
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
| Code | Description |
|---|---|
| 401 | Clé API ou token manquant/invalide. |
| 400 quota_exceeded | Quota mensuel atteint. Réinitialisé le 1er du mois. |
| 403 pdf_not_in_plan | Le PDF requiert Pro ou Business (gratuit pendant votre essai de 14 jours). |
| 403 auth_render_not_in_plan | Les rendus authentifiés requièrent Starter ou plus (inclus dans votre essai). |
| 422 render_failed | L'URL n'a pas pu être rendue (injoignable, IP privée, timeout). |
| 423 | Compte verrouillé après plusieurs échecs de connexion. |