Différer un appel HTTP
Différer un appel HTTP consiste à demander qu’une URL soit appelée non pas tout de suite, mais après un délai que vous fixez : dans dix minutes, dans deux heures, demain. Le service garde la minuterie et émet le rappel au bon moment, sans que vous ayez à maintenir un compteur.
Un rappel qui arrive plus tard
Certaines actions gagnent à attendre : relancer un panier abandonné une heure après, vérifier l’état d’un traitement quelques minutes plus tard, envoyer un message de suivi le lendemain. Coder cette attente soi-même oblige à maintenir un processus qui compte le temps. Ce service s’en charge : vous indiquez l’URL à rappeler et le délai, il attend, puis émet l’appel. Entre-temps, rien à surveiller de votre côté.
Délai unique, pas récurrence
Différer un appel, ce n’est pas le répéter. Ici, le rappel est unique : il part une fois, une fois le délai écoulé. Pour une action qui doit revenir à intervalle régulier, c’est la planification par cron qui convient, décrite par ailleurs. Le délai se compte en minutes, en heures ou en jours ; vous fournissez, avec l’appel, les données que votre URL recevra au moment du rappel, comme une requête ordinaire.
Facturé au rappel
Le service tourne sur notre infrastructure et se facture à l’usage : $0.002 par rappel, en dollars US, sans abonnement ni compte. Vous ne payez que les rappels réellement émis. La mise en place se fait depuis cette page comme par API et, à terme, par d’autres canaux. Les données jointes à votre appel ne sont conservées que le temps d’attendre le délai et d’émettre le rappel.
Cas d’usage
Relance de panier
Une boutique programme un rappel une heure après un panier laissé de côté, pour relancer le client.
Vérification différée
Un développeur demande un rappel dix minutes après le lancement d’un traitement, pour en contrôler l’issue.
Message de suivi
Atelier Garnier SARL déclenche un e-mail de suivi le lendemain d’une livraison, via un rappel à vingt-quatre heures.
Temporisation entre étapes
Studio Lumen SAS insère une pause d’une heure entre deux étapes d’un flux automatisé.
Questions fréquentes
En quoi est-ce différent d’un webhook planifié ?
Le délai est ponctuel : le rappel part une seule fois, après l’attente demandée. Le webhook planifié, lui, se répète selon un horaire. Ici, il s’agit d’un décalage unique, pas d’une récurrence.
Quels délais puis-je fixer ?
De quelques minutes à plusieurs jours. Vous indiquez la durée d’attente ; à son terme, le service appelle votre URL avec les données que vous avez jointes.
Mes données sont-elles gardées pendant l’attente ?
Seulement le temps du délai, via un canal chiffré, afin de pouvoir émettre le rappel. Une fois l’appel effectué, elles ne sont pas conservées à d’autres fins.
Que se passe-t-il si mon URL est indisponible au moment du rappel ?
L’échec est noté. Une nouvelle tentative peut être prévue selon votre besoin ; précisez-le à la mise en place pour définir le comportement souhaité.
Combien ça coûte ?
$0.002 par rappel émis, en dollars US, sans abonnement ni compte. Vous ne réglez que les rappels réellement envoyés, par un achat direct.
Faut-il un serveur pour maintenir le délai ?
Non. Le service garde la minuterie à votre place ; vous n’avez aucun processus à laisser tourner pour compter le temps d’attente.
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/dev/delay \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/delay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/delay",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/delay", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/delay", 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
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.delay",
"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.
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. |