Page web en PDF
Vous fournissez l’adresse d’une page web ; l’API la charge comme le ferait un navigateur, exécute ses scripts, puis renvoie un PDF conforme à ce qui s’affiche à l’écran. Utile pour archiver une page, garder la trace d’une offre ou joindre une capture datée à un dossier.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Ce que voit le navigateur, votre PDF le garde
Une page web moderne se construit souvent après le chargement : scripts, contenus injectés, mises en page calculées. Convertir le seul code source donnerait un résultat amputé. Cette capacité rend la page dans un vrai moteur de navigateur, attend que le contenu soit affiché, puis fige l’ensemble en PDF. Le fichier reflète donc la page telle qu’un visiteur la voit, et non une version squelettique du HTML initial. Les pages longues sont paginées automatiquement, jusqu’à 200 pages.
Garder une trace qui ne bougera plus
Le web s’efface et se réécrit en permanence : une offre change de prix, des conditions générales sont mises à jour, une annonce disparaît. Le PDF, lui, ne bouge plus. Convertir une page au moment où vous la consultez vous donne une trace datée, lisible hors ligne et facile à joindre à un dossier ou à un e-mail. Ce n’est pas un constat d’huissier, mais c’est une mémoire fidèle de ce qui était publié ce jour-là.
Une seule donnée d’entrée : l’adresse
L’appel est minimal : vous transmettez l’URL à l’API (alias /pdf/from-url), vous recevez un identifiant de tâche, puis vous récupérez le PDF une fois le rendu achevé. Rien à installer, rien à maintenir. Le fonctionnement asynchrone permet d’enchaîner des dizaines d’adresses depuis un simple script — pour archiver chaque semaine les mêmes pages, par exemple — sans bloquer votre application pendant le rendu.
Limites et tarif
L’API voit ce que voit un visiteur anonyme : une page qui exige une connexion n’exposera pas son contenu privé. Chaque conversion accepte jusqu’à 200 pages et 25 Mo. Côté prix : $0.040 par requête, plus $0.001 par page du PDF final — la plupart des pages web tiennent en quelques pages, soit environ $0.045 par capture. Les prix sont en dollars US, sans abonnement ni compte à créer.
Cas d’usage
Archiver les conditions d’un fournisseur
Avant de passer une commande importante, Menuiserie Rousseau & Fils convertit en PDF la page des conditions générales de vente du fournisseur. Si le litige survient six mois plus tard, l’entreprise sait exactement ce qui était affiché le jour de la commande.
Conserver une annonce immobilière
Élodie Garnier candidate pour un appartement : elle garde un PDF de l’annonce — loyer, surface, charges — au cas où les conditions annoncées différeraient du bail proposé. La capture datée rejoint son dossier de location.
Veille concurrentielle datée
Studio Lumen SAS fige chaque mois, par script, les pages tarifaires de trois concurrents. La série de PDF horodatés montre l’évolution des offres sans dépendre d’un site qui peut changer du jour au lendemain.
Joindre une page officielle à un dossier
Une page d’information administrative — barème, condition d’éligibilité — est convertie telle quelle et jointe au dossier transmis, pour que chacun raisonne sur la même version du texte.
Questions fréquentes
La page est-elle convertie telle qu’elle s’affiche, scripts compris ?
Oui. La page est chargée dans un moteur de navigateur qui exécute les scripts avant la capture. Le PDF correspond à ce qu’un visiteur voit à l’écran, pas au seul code source.
Peut-on convertir une page qui exige une connexion ?
L’API accède à la page comme un visiteur non connecté. Si le contenu n’apparaît qu’après identification, il n’apparaîtra pas dans le PDF. Pour ce cas, convertissez plutôt le HTML que vous possédez déjà.
Le PDF obtenu a-t-il une valeur juridique ?
C’est une capture fidèle et datée, précieuse comme trace ou commencement de preuve, mais ce n’est pas un constat d’huissier. Pour un contentieux sérieux, faites établir un constat officiel.
Quel est le prix pour une page de quelques écrans ?
Une page web ordinaire tient dans un PDF de trois à cinq pages : comptez $0.040 de base plus $0.001 par page, soit $0.043 à $0.045. Le tarif est publié en dollars US et payable par PayPal, sans inscription.
Conservez-vous les adresses que je soumets ?
L’adresse sert à exécuter la tâche que vous avez demandée. Il n’existe ni compte ni profil : personne ne reconstitue votre historique de navigation à partir de vos requêtes.
Y a-t-il une limite de longueur ?
Oui : 200 pages par PDF et 25 Mo par fichier. Une page web interminable sera tronquée au-delà — un cas rare en pratique.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/pdf/from-url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/from-url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/from-url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/from-url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/from-url", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"pdf": "https://ejemplo.com/documento.pdf"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.from_url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 200 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
413 | input_too_large | Entrée trop volumineuse : consultez la limite de taille de cette capacité. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |