Adresse de base https://api.liftpad.app/v1. Téléchargez le document : openapi.json (aussi à https://api.liftpad.app/v1/openapi.json). Comment obtenir un jeton : Authentification.
Erreurs
Chaque erreur est en JSON, avec un code stable dans error et une phrase dans message (voir Error). Les appels qui exigent un jeton peuvent aussi répondre 401 et 429.
| HTTP | Sens |
|---|---|
400 | La requête n'est pas valide (voir error et message) |
401 | Aucun jeton d'API ou session valide |
402 | Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing) |
403 | Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf) |
404 | Introuvable, ou invisible pour vous |
409 | En conflit avec l'état actuel (voir error) |
411 | En-tête Content-Length requis |
413 | Trop gros pour le forfait ou les limites |
422 | L'IA n'a pas trouvé de réponse sûre cette fois |
429 | Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit) |
502 | Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez |
503 | Pas encore offert sur ce Liftpad, ou indisponible un moment |
Opérations
- Sites
- Déploiements
- Domaines
- Formulaires
- Réglages du site
- Statistiques
- Créateur de site IA
- Compte et jetons
- Équipes
- Forfaits, facturation et crédits
- Activité
- Public
- MCP
- Cette référence
- Webhooks
- Schémas
Sites
Créer, lire, déplacer et supprimer des sites.
get/sites
Lister les sites Tous les sites que vous voyez (un jeton limité à une équipe ne voit que les siens).
Jeton : read ou deployTout rôle d'équipelistSites
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
team | query | string | Seulement cette équipe (slug) |
Réponses
- 200 Les sites, par nom
application/json· liste de Site - 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/sites
Créer un site Crée un site vide, servi à https://<nom>.liftpad.ca dès qu'un déploiement est publié. Indiquez team si vous faites partie de plusieurs équipes.
Jeton : deployDéveloppeur, administrateur ou propriétairecreateSite
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name requis | string | 3 à 40 caractères : a-z, 0-9 et traits d'union simples |
team | string | Slug de l'équipe |
Réponses
- 201 Créé
application/json· objectChamp Type Description idrequisstring namerequisstring teamrequisstring urlrequisstring - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"name":"my-site","team":"my-agency"}'
get/sites/{name}
Obtenir un site
Jeton : read ou deployTout rôle d'équipegetSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Le site
application/json· SiteDetailChamp Type Description idrequisstring Identifiant du site namerequisstring Nom du site : 3 à 40 caractères, a-z, 0-9 et traits d'union simples team_idstring ou null Identifiant de l'équipe propriétaire du site primary_domainstring ou null Le domaine personnalisé principal, ou null pour l'adresse liftpad.ca live_deploy_idstring ou null Le déploiement en ligne, ou null si rien n'est publié created_atinteger Création du site (millisecondes depuis 1970, UTC) updated_atinteger Dernière modification (millisecondes depuis 1970, UTC) suspended_atinteger ou null Suspension du site par Liftpad (millisecondes depuis 1970, UTC), ou null functionsliste de string ou null Noms des fonctions du site, ou null accessstring ou null: all,previews,nullPortée du mot de passe visiteur (all ou previews), ou null urlrequisstring (uri) L'adresse du site sur liftpad.ca liveLiveRecord ou null Le pointeur de mise en ligne, ou null domainsrequisliste de object Domaines personnalisés du site Champ Type Description hostnamestring created_atinteger - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
delete/sites/{name}
Supprimer un site Met le site hors ligne pour de bon, libère ses domaines et son nom. Envoyez le nom du site dans confirm.
Session du tableau de bord seulementPropriétairedeleteSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
confirm requis | string | Le nom du site |
Réponses
- 200 Supprimé
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 forbidden
curl -sS -X DELETE "https://api.liftpad.app/v1/sites/my-site" \
-H "content-type: application/json" \
-d '{"confirm":"my-site"}'
post/sites/{name}/transfer
Déplacer un site vers une autre équipe Pour un propriétaire des deux équipes. Fichiers, déploiements et domaines suivent le site, dans les limites du forfait de l'équipe qui le reçoit.
Session du tableau de bord seulementPropriétairetransferSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
team requis | string | Slug de l'équipe qui reçoit |
Réponses
- 200 Déplacé
application/json· objectChamp Type Description okrequisboolean siterequisstring teamrequisstring - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 413 Trop gros pour le forfait ou les limites
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 forbidden
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/transfer" \
-H "content-type: application/json" \
-d '{"team":"client-team"}'
get/overview
Sites avec état de santé et dernière publication
Jeton : read ou deployTout rôle d'équipegetOverview
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
team | query | string | Seulement cette équipe (slug) |
Réponses
- 200 Vue d'ensemble
application/json· OverviewChamp Type Description platformrequisstring Le domaine du tableau de bord sitesrequisliste de object Champ Type Description idstring Identifiant du site namerequisstring Nom du site : 3 à 40 caractères, a-z, 0-9 et traits d'union simples team_idstring ou null Identifiant de l'équipe propriétaire du site primary_domainstring ou null Le domaine personnalisé principal, ou null pour l'adresse liftpad.ca live_deploy_idstring ou null Le déploiement en ligne, ou null si rien n'est publié created_atinteger Création du site (millisecondes depuis 1970, UTC) updated_atinteger Dernière modification (millisecondes depuis 1970, UTC) suspended_atinteger ou null Suspension du site par Liftpad (millisecondes depuis 1970, UTC), ou null functionsliste de string ou null Noms des fonctions du site, ou null accessstring ou null: all,previews,nullPortée du mot de passe visiteur (all ou previews), ou null urlrequisstring (uri) L'adresse du site sur liftpad.ca team_slugstring ou null team_namestring ou null health_okinteger ou null 1 si la dernière vérification est réussie, 0 sinon, null avant la première health_detailobject ou null Détails de la dernière vérification health_atinteger ou null Dernière vérification (millisecondes depuis 1970, UTC), ou null deploy_countinteger live_titlestring ou null Message du déploiement en ligne live_published_atinteger ou null Publication du déploiement en ligne (millisecondes depuis 1970, UTC), ou null live_filesinteger ou null Fichiers du déploiement en ligne domain_countinteger platformUrlstring L'adresse liftpad.ca (url est le domaine principal s'il y en a un) - 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/overview" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/manifest
Obtenir le manifeste d'un déploiement Chaque chemin avec son SHA-256, sa taille et son type, et les règles du déploiement. Sert aux exportations et à deploy_changes.
Jeton : deployDéveloppeur, administrateur ou propriétairegetManifest
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
deploy | query | string | Un déploiement (par défaut : celui en ligne) |
Réponses
- 200 Le manifeste
application/json· ManifestChamp Type Description vrequisinteger idrequisstring Identifiant du déploiement siteIdstring createdAtinteger filesrequistable de n-uplet Chemin vers [sha256, taille, type de contenu] redirectsrequisliste de object Règles de redirection, dans l'ordre headersrequisliste de object Règles d'en-têtes formstable de object Formulaires trouvés dans les pages - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/manifest" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/files/{hash}
Télécharger un fichier d'un déploiement Même droit que le manifeste : les fichiers comprennent les règles du site (mots de passe Basic-Auth) et les pages protégées. Toujours envoyé en téléchargement.
Jeton : deployDéveloppeur, administrateur ou propriétairegetSiteFile
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
hash requis | path | string | SHA-256 du fichier, hexadécimal minuscule |
deploy | query | string | Un déploiement (par défaut : celui en ligne) |
Réponses
- 200 Le contenu du fichier
application/octet-stream· string (binary) - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/files/SHA256" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/functions
Obtenir les fonctions du site Les fonctions sont en alpha : seuls les opérateurs de Liftpad peuvent les déployer pour l'instant.
Jeton : read ou deployTout rôle d'équipegetFunctions
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Fonctions, ou null
application/json· Functions ou null - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/functions" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
Déploiements
Envoyer seulement les fichiers modifiés, obtenir un aperçu et des vérifications, publier et revenir en arrière.
post/sites/{name}/deploys
Commencer un déploiement Envoyez chaque chemin avec le SHA-256 de son contenu. La réponse donne les empreintes que Liftpad n'a pas encore : envoyez seulement celles-là, puis finalisez. Les fichiers déjà envoyés par votre équipe sont réutilisés.
Jeton : deployDéveloppeur, administrateur ou propriétairecreateDeploy
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
files requis | table de string | Chemin (commençant par /) vers SHA-256, au plus 20 000 fichiers | |||||||||
title | string | Message du déploiement | |||||||||
config | string | Texte d'un netlify.toml (jusqu'à 1 Mo) | |||||||||
rules | object | Règles d'une exportation de site (restauration)
|
Réponses
- 201 Déploiement commencé
application/json· objectChamp Type Description idrequisstring requiredrequisliste de string Empreintes à envoyer previewUrlrequisstring - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 413 Trop gros pour le forfait ou les limites
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/deploys" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"files":{"/index.html":"3a1f0c8e5b0d2d8f9c4e1a7b6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b1a0f9e8d7c","/style.css":"9f8e7d6c5b4a39281706f5e4d3c2b1a0f9e8d7c6b5a493827160f5e4d3c2b1a0"},"title":"First deploy"}'
get/sites/{name}/deploys
Lister les déploiements d'un site Les 100 plus récents.
Jeton : read ou deployTout rôle d'équipelistDeploys
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Déploiements, du plus récent au plus ancien
application/json· liste de DeployListItem - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/deploys" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
put/deploys/{id}/blobs/{hash}
Envoyer un fichier Le contenu brut d'un fichier demandé par le déploiement, avec Content-Length. Liftpad vérifie le contenu par rapport à l'empreinte. Jusqu'à 100 Mo par fichier.
Jeton : deployDéveloppeur, administrateur ou propriétaireuploadDeployFile
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
hash requis | path | string | SHA-256 du fichier, hexadécimal minuscule |
Corps de la requête
application/octet-stream · string (binary)
Réponses
- 200 Enregistré
application/json· objectChamp Type Description okrequisboolean hashrequisstring sizerequisinteger - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 411 En-tête Content-Length requis
- 413 Trop gros pour le forfait ou les limites
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X PUT "https://api.liftpad.app/v1/deploys/ID/blobs/SHA256" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/octet-stream" \
--data-binary @public/index.html
post/deploys/{id}/finalize
Terminer un déploiement Lit les règles et les formulaires, lance les vérifications de lancement et active l'adresse d'aperçu. S'il manque des fichiers, la réponse est 409 missing_blobs avec les empreintes à envoyer; envoyez-les et rappelez. Sur un déploiement déjà prêt, la réponse est de nouveau ready.
Jeton : deployDéveloppeur, administrateur ou propriétairefinalizeDeploy
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
Réponses
- 200 Prêt
application/json· objectChamp Type Description idrequisstring staterequis"ready"previewUrlstring summaryDeploySummary heldboolean Retenu pour une vérification de sécurité messagestring - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 413 Trop gros pour le forfait ou les limites
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/deploys/ID/finalize" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/deploys/{id}
Obtenir un déploiement
Jeton : read ou deployTout rôle d'équipegetDeploy
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
Réponses
- 200 Le déploiement
application/json· DeployChamp Type Description idrequisstring Identifiant du déploiement site_idstring site_namestring team_idstring ou null staterequisstring: uploading,ready,expireduploading jusqu'à la finalisation, puis ready titlestring ou null Le message du déploiement file_countinteger total_sizeinteger Octets created_atinteger Début (millisecondes depuis 1970, UTC) ready_atinteger ou null Finalisation (millisecondes depuis 1970, UTC), ou null published_atinteger ou null Dernière publication (millisecondes depuis 1970, UTC), ou null heldrequisboolean Vrai tant qu'une vérification de sécurité de Liftpad le retient (publication impossible) requiredrequisliste de string Fichiers encore à envoyer (pendant l'envoi) summaryobject ou null Présent une fois prêt - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/deploys/ID" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/deploys/{id}/checks
Vérifications de lancement d'un déploiement Liens brisés, fichiers manquants, titres, descriptions, texte de remplacement, contenu non sécurisé, images lourdes, plan du site, robots.txt et plus, lus dans jusqu'à 400 pages.
Jeton : read ou deployTout rôle d'équipegetDeployChecks
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
Réponses
- 200 Le rapport
application/json· CheckReportChamp Type Description vinteger scorerequisinteger 0 à 100 pagesrequisinteger Pages HTML lues countsrequisobject Nombre de problèmes par niveau Champ Type Description errorinteger warninginteger infointeger issuesrequisliste de object Champ Type Description levelrequisstring: error,warning,infocoderequisstring Code stable, par exemple broken_link ou missing_alt pagerequisstring ou null La page, ou null pour tout le site detailrequisstring refstring Le fichier concerné, s'il y en a un truncatedboolean Vrai si la liste a été coupée - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/deploys/ID/checks" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/deploys/{id}/suggest
Titre et description d'une page par IA Rédigés à partir du texte de la page. Utilise les suggestions IA mensuelles du forfait; un contenu déjà traité est servi gratuitement.
Jeton : deployDéveloppeur, administrateur ou propriétairesuggestPageMeta
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
page requis | string | Chemin d'une page HTML du déploiement |
Réponses
- 200 Suggestion
application/json· objectChamp Type Description titlerequisstring descriptionrequisstring cachedrequisboolean leftinteger Suggestions restantes ce mois-ci - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 422 L'IA n'a pas trouvé de réponse sûre cette fois
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/deploys/ID/suggest" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"page":"/about.html"}'
post/deploys/{id}/alt
Texte de remplacement d'une image par IA Un modèle de vision décrit une image du déploiement en une phrase, dans la langue de la page.
Jeton : deployDéveloppeur, administrateur ou propriétairesuggestImageAlt
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du déploiement |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
page requis | string | La page qui montre l'image |
src requis | string | L'adresse de l'image telle qu'écrite dans la page |
Réponses
- 200 Texte de remplacement
application/json· objectChamp Type Description altrequisstring langstring srcstring cachedrequisboolean - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 422 L'IA n'a pas trouvé de réponse sûre cette fois
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/deploys/ID/alt" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"page":"/index.html","src":"img/team.jpg"}'
post/sites/{name}/publish
Publier un déploiement (ou revenir en arrière) Met un déploiement prêt en ligne partout en environ 5 secondes. Publier un ancien déploiement est un retour arrière. Met fin à un test A/B en cours.
Jeton : deployDéveloppeur, administrateur ou propriétairepublishDeploy
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
deployId requis | string |
Réponses
- 200 En ligne
application/json· objectChamp Type Description siterequisstring deployIdrequisstring generationrequisinteger urlrequisstring L'adresse en ligne (domaine principal s'il y en a un) - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 503 Pas encore offert sur ce Liftpad, ou indisponible un moment
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/publish" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"deployId":"k2j4h6g8f0d2"}'
post/sites/{name}/unpublish
Mettre un site hors ligne Rien n'est supprimé : publiez un déploiement pour le remettre en ligne.
Jeton : deployDéveloppeur, administrateur ou propriétaireunpublishSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Hors ligne
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/unpublish" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
Domaines
Chercher, acheter et connecter des domaines.
post/sites/{name}/domains
Connecter un domaine que vous possédez Répond avec les enregistrements DNS à ajouter. HTTPS démarre dès que le DNS pointe vers Liftpad. Avec primary, le domaine devient l'adresse principale dès qu'il est prêt.
Jeton : deployDéveloppeur, administrateur ou propriétaireaddDomain
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
hostname requis | string | |
primary | boolean | En faire l'adresse principale une fois prêt |
Réponses
- 201 Ajouté
application/json· objectChamp Type Description hostnamerequisstring sitestring primaryboolean mainWhenReadyboolean statusrequisstring sslStatusstring recordsrequisliste de object - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/domains" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"hostname":"www.example.com","primary":true}'
get/sites/{name}/domains
Lister les domaines d'un site Avec l'état DNS et du certificat à jour (vérifié au plus une fois par minute).
Jeton : read ou deployTout rôle d'équipelistDomains
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Domaines
application/json· liste de Domain - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/domains" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
delete/sites/{name}/domains/{hostname}
Retirer un domaine Un domaine acheté sur Liftpad reste connecté tant qu'il est enregistré.
Jeton : deployDéveloppeur, administrateur ou propriétaireremoveDomain
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
hostname requis | path | string | Le domaine |
Réponses
- 200 Retiré
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
Exemple
curl -sS -X DELETE "https://api.liftpad.app/v1/sites/my-site/domains/www.example.com" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/sites/{name}/primary
Choisir l'adresse principale Les visiteurs des autres adresses sont envoyés vers la principale. null revient à l'adresse liftpad.ca. Un domaine pas encore prêt deviendra principal automatiquement (409 domain_not_ready).
Jeton : deployDéveloppeur, administrateur ou propriétairesetPrimaryDomain
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
hostname requis | string ou null |
Réponses
- 200 Choisie
application/json· objectChamp Type Description okrequisboolean primaryrequisstring ou null - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/primary" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"hostname":"www.example.com"}'
get/domains/search
Chercher des noms de domaine Un nom est-il libre, et son prix en CAD. Aucune connexion requise. Les mêmes noms sont gardés en cache dix minutes.
Sans connexionsearchDomains
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
q | query | string | Un nom ou des mots, jusqu'à 100 caractères |
Réponses
- 200 Résultats
application/json· DomainSearchChamp Type Description queryrequisstring exactstring ou null Le nom complet demandé, si la recherche en était un currency"CAD"resultsrequisliste de object Champ Type Description namerequisstring availablerequisboolean priceCadnumber Première année, CAD, taxes en sus renewCadnumber Chaque année suivante, CAD includableboolean Couvert par le domaine inclus du forfait Business reasonstring Pourquoi un nom n'est pas offert - 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
- 503 Pas encore offert sur ce Liftpad, ou indisponible un moment
Exemple
curl -sS "https://api.liftpad.app/v1/domains/search?q=boulangerie"
get/sites/{name}/domain-orders
Commandes de domaines d'un site
Jeton : read ou deployTout rôle d'équipelistDomainOrders
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Commandes
application/json· objectChamp Type Description ordersrequisliste de DomainOrder includedLeftinteger Domaines inclus restants cette année includedPlanboolean readyboolean La vente de domaines est ouverte paymentsboolean Le paiement en ligne est ouvert - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/domain-orders" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/sites/{name}/domains/buy
Acheter un domaine pour un site Propriétaires et administrateurs, depuis le tableau de bord. Utilise le domaine inclus au forfait s'il couvre le nom; sinon répond avec une adresse de paiement Stripe, ou transmet la demande à Liftpad si le paiement en ligne n'est pas ouvert.
Session du tableau de bord seulementAdministrateur ou propriétairebuyDomain
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
domain requis | string |
Réponses
- 201 Commandé
application/json· objectChamp Type Description orderrequisDomainOrder checkoutUrlstring Page de paiement Stripe, si un paiement est requis - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
- 503 Pas encore offert sur ce Liftpad, ou indisponible un moment
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/domains/buy" \
-H "content-type: application/json" \
-d '{"domain":"yourbusiness.ca"}'
Formulaires
Envois reçus par Liftpad Forms (compatible avec Netlify).
get/sites/{name}/forms
Lister les formulaires Formulaires du déploiement en ligne, avec le nombre d'envois reçus.
Jeton : read ou deployTout rôle d'équipelistForms
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Formulaires
application/json· objectChamp Type Description allowanceinteger ou null Envois par mois au forfait formsrequisliste de Form - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/forms" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/submissions
Lister les envois de formulaire Du plus récent au plus ancien. Passez next comme before pour la page suivante.
Jeton : read ou deployTout rôle d'équipelistSubmissions
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
form | query | string | Seulement ce formulaire |
spam | query | string: 0, 1 | 1 pour les indésirables |
before | query | integer | Seulement les envois plus anciens que ce moment (ms) |
limit | query | integer | 1 à 200, 50 par défaut |
Réponses
- 200 Une page d'envois
application/json· objectChamp Type Description submissionsrequisliste de Submission nextrequisinteger ou null Valeur pour before, ou null à la fin - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/submissions" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/forms/{form}/submissions.csv
Télécharger les envois en CSV Tous les envois d'un formulaire, sûrs à ouvrir dans un tableur (les valeurs qui seraient lues comme formules sont neutralisées). Jusqu'à 50 000 lignes.
Jeton : read ou deployTout rôle d'équipeexportSubmissionsCsv
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
form requis | path | string | Nom du formulaire |
Réponses
- 200 Fichier CSV
text/csv· string - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/forms/contact/submissions.csv" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/sites/{name}/submissions/{id}/files/{i}
Télécharger un fichier joint à un envoi Toujours envoyé en téléchargement, jamais affiché (il vient d'un visiteur).
Jeton : read ou deployTout rôle d'équipegetSubmissionFile
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
id requis | path | string | Identifiant de l'envoi |
i requis | path | integer | Index du fichier dans files |
Réponses
- 200 Le fichier
application/octet-stream· string (binary) - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/submissions/ID/files/0" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
patch/sites/{name}/submissions/{id}
Marquer comme indésirable ou non
Jeton : deployDéveloppeur, administrateur ou propriétairemarkSubmission
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
id requis | path | string | Identifiant de l'envoi |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
spam requis | boolean |
Réponses
- 200 Enregistré
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X PATCH "https://api.liftpad.app/v1/sites/my-site/submissions/ID" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"spam":true}'
delete/sites/{name}/submissions/{id}
Supprimer un envoi Ses fichiers sont aussi supprimés.
Jeton : deployDéveloppeur, administrateur ou propriétairedeleteSubmission
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
id requis | path | string | Identifiant de l'envoi |
Réponses
- 200 Supprimé
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X DELETE "https://api.liftpad.app/v1/sites/my-site/submissions/ID" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/sites/{name}/submissions/import
Importer des envois d'un autre hébergeur Jusqu'à 500 par appel. Les dates sont gardées, personne n'est avisé par courriel et les fichiers ne sont pas copiés. Le même id envoyé deux fois n'est importé qu'une fois.
Jeton : deployDéveloppeur, administrateur ou propriétaireimportSubmissions
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
submissions requis | liste de object |
|
Réponses
- 200 Importés
application/json· objectChamp Type Description okrequisboolean importedrequisinteger skippedrequisinteger - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/submissions/import" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"submissions":[{"id":"abc123","form":"contact","data":{"name":"Sam","message":"Hello"},"createdAt":1767225600000}]}'
Réglages du site
Extraits de code, tests A/B, mot de passe visiteur et notifications.
get/sites/{name}/snippets
Obtenir les extraits de code
Jeton : read ou deployTout rôle d'équipegetSnippets
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Extraits
application/json· liste de Snippet - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/snippets" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
put/sites/{name}/snippets
Remplacer les extraits de code La liste complète : jusqu'à 10 extraits, 20 000 caractères chacun, 50 000 en tout, ajoutés à chaque page HTML sans déploiement. Forfaits payants seulement.
Jeton : deployDéveloppeur, administrateur ou propriétairesetSnippets
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
snippets requis | liste de Snippet |
Réponses
- 200 La liste enregistrée
application/json· liste de Snippet - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X PUT "https://api.liftpad.app/v1/sites/my-site/snippets" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"snippets":[{"name":"Analytics","where":"head","html":"<script defer src=\"https://example.com/a.js\"></script>"}]}'
get/sites/{name}/split
Obtenir le test A/B
Jeton : read ou deployTout rôle d'équipegetSplitTest
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Le test, ou null
application/json· SplitTest ou null - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/split" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
put/sites/{name}/split
Lancer, modifier ou arrêter un test A/B Une part des visiteurs du site en ligne (1 à 99 %) voit un autre déploiement prêt. Envoyez deployId null pour arrêter.
Jeton : deployDéveloppeur, administrateur ou propriétairesetSplitTest
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
deployId requis | string ou null | |
percent | integer |
Réponses
- 200 Le test, ou null
application/json· SplitTest ou null - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X PUT "https://api.liftpad.app/v1/sites/my-site/split" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"deployId":"k2j4h6g8f0d2","percent":20}'
get/sites/{name}/access
État du mot de passe visiteur
Jeton : read ou deployTout rôle d'équipegetVisitorAccess
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 État
application/json· objectChamp Type Description enabledrequisboolean scoperequisstring ou null: all,previews,nullupdatedAtinteger ou null - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/access" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
put/sites/{name}/access
Définir ou retirer le mot de passe visiteur Une page de mot de passe devant tout le site ou seulement ses aperçus. password null le retire. Le changer déconnecte tous les visiteurs. Impossible avec un jeton d'API.
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétairesetVisitorAccess
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
password requis | string ou null | 8 à 200 caractères, ou null |
scope | string: all, previews |
Réponses
- 200 Enregistré
application/json· objectChamp Type Description okrequisboolean enabledrequisboolean scopestring ou null - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X PUT "https://api.liftpad.app/v1/sites/my-site/access" \
-H "content-type: application/json" \
-d '{"password":"a long shared password","scope":"previews"}'
get/sites/{name}/hooks
Lister les notifications Webhooks et messages Slack d'un site. Session du tableau de bord seulement.
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétairelistHooks
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Notifications
application/json· liste de Hook - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS "https://api.liftpad.app/v1/sites/my-site/hooks"
post/sites/{name}/hooks
Ajouter une notification Un webhook signé ou un webhook entrant Slack pour certains de : deploy.ready, deploy.published, form.submission. Adresses https publiques seulement, jamais Liftpad ni un site qu'il héberge. Jusqu'à 10 par site. Le secret de signature d'un webhook n'apparaît que dans cette réponse.
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétairecreateHook
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
kind requis | string: webhook, slack | |
url requis | string (uri) | |
events requis | liste de string: deploy.ready, deploy.published, form.submission |
Réponses
- 201 Ajoutée
application/json· objectChamp Type Description idrequisstring kindrequisstring: webhook,slackurlrequisstring Où les événements sont envoyés (adresses Slack raccourcies) eventsrequisliste de string: deploy.ready,deploy.published,form.submissioncreatedAtinteger lastStatusinteger ou null Statut HTTP du dernier envoi (0 si la connexion a échoué) lastAtinteger ou null pausedboolean Vrai après 50 envois ratés de suite secretstring Secret de signature (lpwh_...), montré une fois - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/hooks" \
-H "content-type: application/json" \
-d '{"kind":"webhook","url":"https://example.com/liftpad","events":["deploy.published","form.submission"]}'
post/sites/{name}/hooks/{id}/test
Envoyer une notification d'essai
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétairetestHook
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
id requis | path | string | Identifiant de la notification |
Réponses
- 200 Résultat de l'envoi
application/json· objectChamp Type Description statusrequisinteger Statut HTTP du destinataire (0 si la connexion a échoué) okrequisboolean - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/hooks/ID/test"
delete/sites/{name}/hooks/{id}
Retirer une notification
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétairedeleteHook
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
id requis | path | string | Identifiant de la notification |
Réponses
- 200 Retirée
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X DELETE "https://api.liftpad.app/v1/sites/my-site/hooks/ID"
Statistiques
Statistiques de visite sans témoins.
get/sites/{name}/analytics
Statistiques de visite
Jeton : read ou deployTout rôle d'équipegetAnalytics
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
days | query | integer: 7, 30, 90 | 7, 30 ou 90 (7 par défaut) |
Réponses
- 200 Statistiques
application/json· AnalyticsChamp Type Description enabledrequisboolean Faux si les statistiques ne sont pas activées sur ce Liftpad daysinteger viewsinteger visitorsinteger dailyliste de object Champ Type Description daystring viewsinteger visitorsinteger pagesliste de object Champ Type Description pathstring viewsinteger - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 503 Pas encore offert sur ce Liftpad, ou indisponible un moment
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/analytics" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
Créateur de site IA
Créer et modifier des sites en mots (crédits; session du tableau de bord seulement).
post/sites/{name}/ai-build
Créer un site par IA Rédige, illustre et construit un site complet à partir d'une courte description, en déploiement brouillon. Coûte 100 crédits, remis si la tâche échoue. Session du tableau de bord seulement.
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétaireaiBuildSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name requis | string | Nom de l'entreprise |
about requis | string | Ce qu'elle fait, au moins 20 caractères |
services | string | |
area | string | |
phone | string | |
email | string | |
address | string | |
hours | string | |
langs | liste de string: en, fr | |
style | string: warm, modern, elegant, bold, natural |
Réponses
- 202 En file
application/json· objectChamp Type Description jobrequisobject Champ Type Description idstring kindstring statusstring creditsinteger - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/ai-build" \
-H "content-type: application/json" \
-d '{"name":"Boulangerie Lune","about":"A neighbourhood bakery in Montreal with sourdough and pastries.","langs":["fr","en"],"style":"warm"}'
post/sites/{name}/ai-edit
Modifier en mots un site créé par IA Coûte 20 crédits, plus 10 avec newImages. Session du tableau de bord seulement.
Session du tableau de bord seulementDéveloppeur, administrateur ou propriétaireaiEditSite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
instruction requis | string | 5 à 1000 caractères |
newImages | boolean | Dessiner deux nouvelles images |
Réponses
- 202 En file
application/json· objectChamp Type Description jobrequisobject Champ Type Description idstring kindstring statusstring creditsinteger - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 402 Une limite du forfait ou un problème de facturation (error : plan_limit, credits, billing)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/sites/my-site/ai-edit" \
-H "content-type: application/json" \
-d '{"instruction":"Add our Sunday hours: 9 to 2."}'
get/sites/{name}/ai
Tâches IA d'un site
Jeton : read ou deployTout rôle d'équipegetAiJobs
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
name requis | path | string | Nom du site |
Réponses
- 200 Tâches
application/json· objectChamp Type Description aiSiterequisboolean Créé avec le créateur IA jobsrequisliste de AiJob costsrequistable de integer creditsobject ou null Montré aux propriétaires, administrateurs, facturation et développeurs - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/sites/my-site/ai" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
Compte et jetons
Qui vous êtes et vos jetons d'API.
get/me
Qui suis-je L'appelant, ses équipes et ses rôles. Avec un jeton, les rôles sont ce que le jeton peut faire.
Jeton : read ou deployTout rôle d'équipegetMe
Réponses
- 200 Vous
application/json· MeChamp Type Description kindrequisstring: session,tokenMode de connexion de l'appelant userrequisobject Champ Type Description idstring emailrequisstring namestring ou null totp_enabledinteger created_atinteger last_login_atinteger ou null recovery_leftinteger platformAdminboolean teamsrequisliste de Team rolesliste de object Champ Type Description idstring labelstring - 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/me" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
patch/me
Changer votre nom
Session du tableau de bord seulementupdateMe
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name | string | Jusqu'à 80 caractères |
Réponses
- 200 Enregistré
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X PATCH "https://api.liftpad.app/v1/me" \
-H "content-type: application/json" \
-d '{"name":"Sam Tremblay"}'
post/me/logout-all
Se déconnecter partout Termine toutes les sessions et annule tous vos jetons d'API.
Session du tableau de bord seulementlogoutEverywhere
Réponses
- 200 Déconnecté
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/me/logout-all"
get/me/tokens
Lister vos jetons d'API Noms et dates seulement; la valeur d'un jeton n'est jamais remontrée.
Jeton : read ou deploylistTokens
Réponses
- 200 Jetons
application/json· liste de Token - 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/me/tokens" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/me/tokens
Créer un jeton d'API Session du tableau de bord seulement (un jeton ne peut pas créer de jeton). access vaut deploy (sites, déploiements, domaines) ou read. team le limite à une équipe. days fixe l'expiration (le tableau de bord offre 90, 365 ou aucune; au plus 730). Le jeton n'apparaît que dans cette réponse.
Session du tableau de bord seulementcreateToken
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name | string | Jusqu'à 60 caractères |
access | string: deploy, read | |
team | string | Slug de l'équipe |
days | integer | Jours avant l'expiration; omettez pour aucune expiration |
Réponses
- 201 Créé
application/json· objectChamp Type Description idrequisstring tokenrequisstring lp_... montré une fois expiresAtrequisinteger ou null - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/me/tokens" \
-H "content-type: application/json" \
-d '{"name":"GitHub Actions","access":"deploy","team":"my-agency","days":90}'
delete/me/tokens/{id}
Révoquer un jeton d'API
Session du tableau de bord seulementrevokeToken
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
id requis | path | string | Identifiant du jeton (tok_...) |
Réponses
- 200 Révoqué
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X DELETE "https://api.liftpad.app/v1/me/tokens/ID"
Équipes
Équipes, membres et invitations.
get/teams
Lister vos équipes
Jeton : read ou deployTout rôle d'équipelistTeams
Réponses
- 200 Équipes
application/json· liste de Team - 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/teams" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/teams/{slug}
Obtenir une équipe Avec les membres et les invitations en attente (pour qui gère les membres).
Jeton : read ou deployTout rôle d'équipegetTeam
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Réponses
- 200 L'équipe
application/json· objectChamp Type Description idstring slugrequisstring namestring rolestring: owner,admin,developer,reviewer,billing,viewerVotre rôle dans l'équipe (pour un jeton : ce qu'il peut faire) capsliste de string: view,deploy,sites,domains,members,billing,teamscopedboolean Vous ne voyez que certains sites de l'équipe planPlan billingStatusstring ou null billingobject ou null trialEndsAtinteger ou null currentPeriodEndinteger ou null billingEmailstring ou null usageobject ou null Sites, domaines, membres et stockage utilisés membersrequisliste de object invitesliste de object rolesliste de object - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/teams/my-agency" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
patch/teams/{slug}
Renommer une équipe ou changer son courriel de facturation name exige un propriétaire; billingEmail un propriétaire ou un membre facturation.
Session du tableau de bord seulementPropriétaireupdateTeam
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name | string | |
billingEmail | string |
Réponses
- 200 Enregistré
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X PATCH "https://api.liftpad.app/v1/teams/my-agency" \
-H "content-type: application/json" \
-d '{"name":"My Agency"}'
post/teams/{slug}/invites
Inviter une personne Un lien à usage unique par courriel. sites limite un développeur, réviseur ou observateur à certains sites. Seuls les propriétaires invitent des propriétaires ou des membres facturation.
Session du tableau de bord seulementAdministrateur ou propriétaireinviteMember
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
email requis | string | |
role requis | string: owner, admin, developer, reviewer, billing, viewer | |
sites | liste de string | Noms de sites |
Réponses
- 201 Invitée
application/json· object - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/teams/my-agency/invites" \
-H "content-type: application/json" \
-d '{"email":"client@example.com","role":"reviewer","sites":["client-site"]}'
delete/teams/{slug}/invites/{id}
Annuler une invitation
Session du tableau de bord seulementAdministrateur ou propriétairerevokeInvite
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
id requis | path | string | Identifiant de l'invitation |
Réponses
- 200 Annulée
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X DELETE "https://api.liftpad.app/v1/teams/my-agency/invites/ID"
patch/teams/{slug}/members/{userId}
Changer le rôle ou les sites d'un membre sites null retire la limite de sites. Une équipe garde toujours un propriétaire.
Session du tableau de bord seulementAdministrateur ou propriétaireupdateMember
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
userId requis | path | string | Identifiant de l'utilisateur |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
role | string: owner, admin, developer, reviewer, billing, viewer | |
sites | liste de string ou null |
Réponses
- 200 Enregistré
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X PATCH "https://api.liftpad.app/v1/teams/my-agency/members/USER_ID" \
-H "content-type: application/json" \
-d '{"role":"developer"}'
delete/teams/{slug}/members/{userId}
Retirer un membre (ou quitter) Ses jetons pour cette équipe cessent de fonctionner.
Session du tableau de bord seulementAdministrateur ou propriétaireremoveMember
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
userId requis | path | string | Identifiant de l'utilisateur (le vôtre pour quitter) |
Réponses
- 200 Retiré
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X DELETE "https://api.liftpad.app/v1/teams/my-agency/members/USER_ID"
Forfaits, facturation et crédits
Forfaits en CAD, facturation et crédits d'une équipe.
get/plans
Lister les forfaits Prix en CAD par mois, taxes en sus. Aucune connexion requise.
Sans connexionlistPlans
Réponses
- 200 Forfaits
application/json· liste de Plan
Exemple
curl -sS "https://api.liftpad.app/v1/plans"
get/teams/{slug}/billing
Forfait et facturation d'une équipe
Jeton : read ou deployTout rôle d'équipegetBilling
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Réponses
- 200 Facturation
application/json· objectChamp Type Description idstring slugstring namestring rolestring: owner,admin,developer,reviewer,billing,viewerVotre rôle dans l'équipe (pour un jeton : ce qu'il peut faire) capsliste de string: view,deploy,sites,domains,members,billing,teamscopedboolean Vous ne voyez que certains sites de l'équipe planPlan billingStatusstring ou null billingobject ou null trialEndsAtinteger ou null currentPeriodEndinteger ou null billingEmailstring ou null usageobject ou null Sites, domaines, membres et stockage utilisés canManageboolean plansrequisliste de object portalUrlstring ou null stripeLinkedboolean - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/teams/my-agency/billing" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
get/teams/{slug}/credits
Crédits d'une équipe Solde, coûts, forfaits de crédits et les 30 derniers mouvements. Ensembles : 1000 pour 10 $, 5000 pour 45 $, 12000 pour 99 $.
Jeton : read ou deployTout rôle d'équipegetCredits
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Réponses
- 200 Crédits
application/json· CreditsChamp Type Description totalrequisinteger monthlyinteger Reste des crédits mensuels du forfait boughtinteger planMonthlyinteger costsrequistable de integer Crédits par action packsrequisliste de object Champ Type Description idstring creditsinteger priceCadnumber paymentsboolean Le paiement en ligne est ouvert cardobject ou null autoobject ou null Recharge automatique ledgerliste de object Champ Type Description atinteger deltainteger kindstring notestring ou null - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/teams/my-agency/credits" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
post/teams/{slug}/credits/checkout
Acheter un ensemble de crédits Propriétaires et membres facturation. Répond avec une adresse de paiement Stripe.
Session du tableau de bord seulementPropriétaire ou facturationbuyCredits
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
pack requis | string: credits_1000, credits_5000, credits_12000 | |
saveCard | boolean | Garder la carte pour les recharges automatiques |
Réponses
- 201 Paiement ouvert
application/json· objectChamp Type Description checkoutUrlrequisstring - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
- 502 Un service externe (Cloudflare, le registraire, Stripe) n'a pas répondu; réessayez
- 503 Pas encore offert sur ce Liftpad, ou indisponible un moment
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/teams/my-agency/credits/checkout" \
-H "content-type: application/json" \
-d '{"pack":"credits_1000"}'
post/teams/{slug}/credits/auto
Recharges automatiques Achète un ensemble quand le solde passe sous un seuil, au plus 3 fois par mois. pack null les désactive.
Session du tableau de bord seulementPropriétaire ou facturationsetAutoTopup
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
pack | string ou null | |
below | integer |
Réponses
- 200 Enregistré
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 409 En conflit avec l'état actuel (voir error)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X POST "https://api.liftpad.app/v1/teams/my-agency/credits/auto" \
-H "content-type: application/json" \
-d '{"pack":"credits_1000","below":100}'
delete/teams/{slug}/credits/card
Oublier la carte enregistrée
Session du tableau de bord seulementPropriétaire ou facturationforgetCard
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
slug requis | path | string | Slug de l'équipe |
Réponses
- 200 Retirée
application/json· OkChamp Type Description okrequistrue - 401 Aucun jeton d'API ou session valide
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
# Session du tableau de bord seulement : un jeton d'API reçoit 403 session_required
curl -sS -X DELETE "https://api.liftpad.app/v1/teams/my-agency/credits/card"
Activité
Le journal d'audit.
get/audit
Journal d'activité Les 200 dernières actions de vos équipes (seulement vos sites si vous êtes limité à certains).
Jeton : read ou deployTout rôle d'équipelistAudit
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
team | query | string | Seulement cette équipe (slug) |
Réponses
- 200 Entrées, de la plus récente à la plus ancienne
application/json· liste de AuditEntry - 401 Aucun jeton d'API ou session valide
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS "https://api.liftpad.app/v1/audit" \
-H "Authorization: Bearer $LIFTPAD_TOKEN"
Public
Routes accessibles à tous, sans connexion.
post/abuse
Signaler un site hébergé sur Liftpad Tout le monde peut signaler de l'hameçonnage, des logiciels malveillants, des arnaques et d'autres abus. Une personne chez Liftpad lit chaque signalement. Exige l'en-tête x-liftpad-csrf et un corps JSON.
Sans connexionreportAbuse
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
x-liftpad-csrf requis | header | "1" | Doit valoir 1 (refuse les envois d'autres pages web) |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
url requis | string (uri) | |
kind | string: phishing, malware, scam, spam, copyright, illegal, other | |
details | string | Jusqu'à 2000 caractères |
email | string | Pour recevoir une réponse |
Réponses
- 201 Reçu
application/json· objectChamp Type Description okrequisboolean messagestring - 400 La requête n'est pas valide (voir error et message)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 404 Introuvable, ou invisible pour vous
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/abuse" \
-H "x-liftpad-csrf: 1" \
-H "content-type: application/json" \
-d '{"url":"https://example.liftpad.ca/login","kind":"phishing","details":"Asks for bank passwords."}'
post/leads
Demander à être contacté par Liftpad Le formulaire de contact de liftpad.app. Exige l'en-tête x-liftpad-csrf et un corps JSON.
Sans connexionrequestContact
Paramètres
| Nom | Dans | Type | Description |
|---|---|---|---|
x-liftpad-csrf requis | header | "1" | Doit valoir 1 (refuse les envois d'autres pages web) |
Corps de la requête
application/json · object
| Champ | Type | Description |
|---|---|---|
name requis | string | |
email requis | string | |
company | string | |
sites | string: 1-3, 4-10, 11-50, 51-150, 150+ | |
message | string | |
lang | string: en, fr |
Réponses
- 200 Reçu
application/json· OkChamp Type Description okrequistrue - 400 La requête n'est pas valide (voir error et message)
- 403 Non permis : rôle insuffisant, jeton utilisé là où une session du tableau de bord est requise (session_required), ou en-tête CSRF absent (csrf)
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/v1/leads" \
-H "x-liftpad-csrf: 1" \
-H "content-type: application/json" \
-d '{"name":"Sam","email":"sam@example.com","sites":"4-10","lang":"en"}'
MCP
Le serveur Model Context Protocol pour Claude et d'autres agents.
post/mcp
Serveur MCP pour les agents IA Model Context Protocol en HTTP continu, JSON-RPC 2.0 sans état (initialize, ping, tools/list, tools/call; un lot reçoit une réponse pour ses 20 premiers messages, et les messages après le 20e sont ignorés sans réponse). Jetons d'API seulement, jamais de témoin. Chaque outil appelle cette API avec votre jeton : les mêmes rôles et limites s'appliquent. Un jeton read peut utiliser list_sites, get_site, list_deploys, launch_checks, form_submissions, site_analytics et search_domains; les autres exigent un jeton deploy. Outils : list_sites, get_site, create_site, list_files, read_file, deploy_changes, launch_checks, list_deploys, publish, form_submissions, site_analytics, search_domains, connect_domain, site_agents_report.
Jeton : read ou deployTout rôle d'équipemcp
Corps de la requête
application/json · object ou liste de object
Réponses
- 200 Réponse JSON-RPC (202 sans corps pour les notifications)
application/json· object ou liste de any - 400 La requête n'est pas valide (voir error et message)
- 401 Aucun jeton d'API ou session valide
- 429 Trop de requêtes (error : rate_limited) ou une limite quotidienne (error : deploy_limit)
Exemple
curl -sS -X POST "https://api.liftpad.app/mcp" \
-H "Authorization: Bearer $LIFTPAD_TOKEN" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_sites","arguments":{}}}'
Cette référence
Le document OpenAPI lui-même.
get/openapi.json
Ce document OpenAPI Aussi à https://liftpad.app/openapi.json.
Sans connexiongetOpenApi
Réponses
- 200 OpenAPI 3.1
application/json· object
Exemple
curl -sS "https://api.liftpad.app/v1/openapi.json"
Webhooks
Ce que Liftpad envoie à votre adresse. Comment vérifier la signature.
postdeploy.ready
Un déploiement est terminé et son aperçu fonctionne
application/json · object
| Champ | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
event requis | "deploy.ready" | ||||||||||||||||
delivery requis | string | Identique à x-liftpad-delivery | |||||||||||||||
at requis | string (date-time) | Heure ISO 8601 | |||||||||||||||
site requis | object |
| |||||||||||||||
deploy requis | object |
|
{
"event": "deploy.ready",
"delivery": "6f1c2a9e-0d4b-4c2e-9a77-3b1f0c2d4e5f",
"at": "2026-11-05T15:04:05.000Z",
"site": {
"name": "my-site",
"url": "https://my-site.liftpad.ca"
},
"deploy": {
"id": "k2j4h6g8f0d2",
"title": "First deploy",
"previewUrl": "https://k2j4h6g8f0d2--my-site.liftpad.ca",
"files": 12
}
}postdeploy.published
Un déploiement est en ligne (aussi après un retour arrière)
application/json · object
| Champ | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
event requis | "deploy.published" | ||||||||||
delivery requis | string | Identique à x-liftpad-delivery | |||||||||
at requis | string (date-time) | Heure ISO 8601 | |||||||||
site requis | object |
| |||||||||
deploy requis | object |
|
{
"event": "deploy.published",
"delivery": "0a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"at": "2026-11-05T15:05:00.000Z",
"site": {
"name": "my-site",
"url": "https://www.example.com"
},
"deploy": {
"id": "k2j4h6g8f0d2",
"title": "First deploy"
}
}postform.submission
Un visiteur a envoyé un formulaire (les indésirables ne sont pas transmis)
application/json · object
| Champ | Type | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
event requis | "form.submission" | ||||||||||||||||||||||
delivery requis | string | Identique à x-liftpad-delivery | |||||||||||||||||||||
at requis | string (date-time) | Heure ISO 8601 | |||||||||||||||||||||
site requis | object |
| |||||||||||||||||||||
submission requis | object |
|
{
"event": "form.submission",
"delivery": "9e8d7c6b-5a4f-4e3d-9c2b-1a0f9e8d7c6b",
"at": "2026-11-05T15:06:00.000Z",
"site": {
"name": "my-site",
"url": "https://my-site.liftpad.ca"
},
"submission": {
"id": "sub_abc123",
"form": "contact",
"data": {
"name": "Sam",
"message": "Hello"
},
"files": [],
"preview": false,
"createdAt": 1793977560000
}
}posttest
Envoyé par le bouton d'essai (testHook)
application/json · object
| Champ | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
event requis | "test" | ||||||||||
delivery requis | string | Identique à x-liftpad-delivery | |||||||||
at requis | string (date-time) | Heure ISO 8601 | |||||||||
site requis | object |
|
{
"event": "test",
"delivery": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
"at": "2026-11-05T15:07:00.000Z",
"site": {
"name": "my-site",
"url": "https://my-site.liftpad.ca"
}
}Schémas
Error
Toutes les erreurs ont cette forme. Certaines ajoutent des champs, comme missing (finalisation) ou proof (domaines).
| Champ | Type | Description |
|---|---|---|
error requis | string | Un code court et stable (par exemple not_found, plan_limit, session_required) |
message | string | Une phrase pour les personnes, en anglais |
Ok
| Champ | Type | Description |
|---|---|---|
ok requis | true |
Site
Un site
| Champ | Type | Description |
|---|---|---|
id requis | string | Identifiant du site |
name requis | string | Nom du site : 3 à 40 caractères, a-z, 0-9 et traits d'union simples |
team_id | string ou null | Identifiant de l'équipe propriétaire du site |
primary_domain | string ou null | Le domaine personnalisé principal, ou null pour l'adresse liftpad.ca |
live_deploy_id | string ou null | Le déploiement en ligne, ou null si rien n'est publié |
created_at | integer | Création du site (millisecondes depuis 1970, UTC) |
updated_at | integer | Dernière modification (millisecondes depuis 1970, UTC) |
suspended_at | integer ou null | Suspension du site par Liftpad (millisecondes depuis 1970, UTC), ou null |
functions | liste de string ou null | Noms des fonctions du site, ou null |
access | string ou null: all, previews, null | Portée du mot de passe visiteur (all ou previews), ou null |
url requis | string (uri) | L'adresse du site sur liftpad.ca |
SiteDetail
Un site avec son déploiement en ligne et ses domaines
| Champ | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
id requis | string | Identifiant du site | |||||||||
name requis | string | Nom du site : 3 à 40 caractères, a-z, 0-9 et traits d'union simples | |||||||||
team_id | string ou null | Identifiant de l'équipe propriétaire du site | |||||||||
primary_domain | string ou null | Le domaine personnalisé principal, ou null pour l'adresse liftpad.ca | |||||||||
live_deploy_id | string ou null | Le déploiement en ligne, ou null si rien n'est publié | |||||||||
created_at | integer | Création du site (millisecondes depuis 1970, UTC) | |||||||||
updated_at | integer | Dernière modification (millisecondes depuis 1970, UTC) | |||||||||
suspended_at | integer ou null | Suspension du site par Liftpad (millisecondes depuis 1970, UTC), ou null | |||||||||
functions | liste de string ou null | Noms des fonctions du site, ou null | |||||||||
access | string ou null: all, previews, null | Portée du mot de passe visiteur (all ou previews), ou null | |||||||||
url requis | string (uri) | L'adresse du site sur liftpad.ca | |||||||||
live | LiveRecord ou null | Le pointeur de mise en ligne, ou null | |||||||||
domains requis | liste de object | Domaines personnalisés du site
|
LiveRecord
| Champ | Type | Description |
|---|---|---|
deployId requis | string | Déploiement en ligne |
generation requis | integer | Augmente de un à chaque publication |
publishedAt requis | integer | Date de publication (millisecondes depuis 1970, UTC) |
Overview
| Champ | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
platform requis | string | Le domaine du tableau de bord | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sites requis | liste de object |
|
Deploy
| Champ | Type | Description |
|---|---|---|
id requis | string | Identifiant du déploiement |
site_id | string | |
site_name | string | |
team_id | string ou null | |
state requis | string: uploading, ready, expired | uploading jusqu'à la finalisation, puis ready |
title | string ou null | Le message du déploiement |
file_count | integer | |
total_size | integer | Octets |
created_at | integer | Début (millisecondes depuis 1970, UTC) |
ready_at | integer ou null | Finalisation (millisecondes depuis 1970, UTC), ou null |
published_at | integer ou null | Dernière publication (millisecondes depuis 1970, UTC), ou null |
held requis | boolean | Vrai tant qu'une vérification de sécurité de Liftpad le retient (publication impossible) |
required requis | liste de string | Fichiers encore à envoyer (pendant l'envoi) |
summary | object ou null | Présent une fois prêt |
DeployListItem
| Champ | Type | Description |
|---|---|---|
id requis | string | |
state requis | string: uploading, ready, expired | |
title | string ou null | |
file_count | integer | |
total_size | integer | |
created_at | integer | |
ready_at | integer ou null | |
published_at | integer ou null | |
score | integer ou null | Note des vérifications de 0 à 100 |
held | integer | 1 si retenu pour vérification |
live requis | boolean | Vrai pour le déploiement en ligne |
previewUrl requis | string (uri) | Adresse d'aperçu de ce déploiement |
DeploySummary
Le contenu du déploiement et le résultat des vérifications
| Champ | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
files | integer | Fichiers du déploiement | ||||||||||||
redirects | integer | Règles de redirection lues dans _redirects et netlify.toml | ||||||||||||
headers | integer | Règles d'en-têtes | ||||||||||||
forms | liste de string | Formulaires trouvés dans les pages | ||||||||||||
checks | object | Résumé des vérifications de lancement
| ||||||||||||
warnings | liste de string | Problèmes qui n'ont pas bloqué le déploiement |
CheckReport
| Champ | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
v | integer | |||||||||||||||||||
score requis | integer | 0 à 100 | ||||||||||||||||||
pages requis | integer | Pages HTML lues | ||||||||||||||||||
counts requis | object | Nombre de problèmes par niveau
| ||||||||||||||||||
issues requis | liste de object |
| ||||||||||||||||||
truncated | boolean | Vrai si la liste a été coupée |
Manifest
| Champ | Type | Description |
|---|---|---|
v requis | integer | |
id requis | string | Identifiant du déploiement |
siteId | string | |
createdAt | integer | |
files requis | table de n-uplet | Chemin vers [sha256, taille, type de contenu] |
redirects requis | liste de object | Règles de redirection, dans l'ordre |
headers requis | liste de object | Règles d'en-têtes |
forms | table de object | Formulaires trouvés dans les pages |
Domain
| Champ | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hostname requis | string | ||||||||||||||||
status requis | string | État du nom d'hôte chez Cloudflare (active quand prêt) | |||||||||||||||
sslStatus requis | string | État du certificat (active quand prêt) | |||||||||||||||
dnsOk | boolean | Le DNS public pointe vers Liftpad | |||||||||||||||
records requis | liste de object | Enregistrements DNS à ajouter chez l'hébergeur DNS
| |||||||||||||||
createdAt | integer | ||||||||||||||||
mainWhenReady | boolean | Deviendra le domaine principal une fois prêt | |||||||||||||||
verified | boolean | ||||||||||||||||
managed | boolean | Acheté sur Liftpad | |||||||||||||||
ready | boolean | DNS, nom d'hôte et certificat tous actifs | |||||||||||||||
primary | boolean |
DomainOrder
| Champ | Type | Description |
|---|---|---|
id requis | string | |
domain requis | string | |
status requis | string: awaiting_payment, requested, registering, registered, failed, canceled | |
priceCad | number | Première année en CAD, taxes en sus (0 si incluse au forfait) |
included | boolean | |
error | string ou null | |
createdAt | integer | |
registeredAt | integer ou null | |
expiresAt | integer ou null |
DomainSearch
| Champ | Type | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
query requis | string | ||||||||||||||||||||||
exact | string ou null | Le nom complet demandé, si la recherche en était un | |||||||||||||||||||||
currency | "CAD" | ||||||||||||||||||||||
results requis | liste de object |
|
Snippet
| Champ | Type | Description |
|---|---|---|
name requis | string | Jusqu'à 60 caractères, unique dans la liste |
where requis | string: head, body | Fin de <head> ou fin de <body> |
html requis | string | Jusqu'à 20 000 caractères |
SplitTest
| Champ | Type | Description |
|---|---|---|
id | string | |
deployId requis | string | L'autre déploiement montré à une partie des visiteurs |
percent requis | integer | 1 à 99 |
startedAt | integer |
Hook
| Champ | Type | Description |
|---|---|---|
id requis | string | |
kind requis | string: webhook, slack | |
url requis | string | Où les événements sont envoyés (adresses Slack raccourcies) |
events requis | liste de string: deploy.ready, deploy.published, form.submission | |
createdAt | integer | |
lastStatus | integer ou null | Statut HTTP du dernier envoi (0 si la connexion a échoué) |
lastAt | integer ou null | |
paused | boolean | Vrai après 50 envois ratés de suite |
Form
| Champ | Type | Description |
|---|---|---|
name requis | string | |
live requis | boolean | Présent dans le déploiement en ligne |
fields | liste de string | |
honeypot | boolean | |
files | boolean | A des champs de fichier |
action | string ou null | Page de confirmation |
submissions requis | integer | |
spam requis | integer | |
last | integer ou null | Envoi le plus récent |
Submission
| Champ | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id requis | string | |||||||||||||||||||
form requis | string | |||||||||||||||||||
spam | boolean | |||||||||||||||||||
preview | boolean | Envoyé depuis une adresse d'aperçu | ||||||||||||||||||
deployId | string ou null | |||||||||||||||||||
data requis | table de string | Nom du champ vers sa valeur | ||||||||||||||||||
files | liste de object |
| ||||||||||||||||||
referrer | string ou null | |||||||||||||||||||
createdAt requis | integer |
Functions
Les fonctions déployées du site
| Champ | Type | Description |
|---|---|---|
routes | liste de object | |
edge | liste de object | |
schedules | liste de object | |
deployedAt | integer | |
size | integer |
Analytics
Pages vues du site en ligne, sans témoins ni adresses conservées
| Champ | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
enabled requis | boolean | Faux si les statistiques ne sont pas activées sur ce Liftpad | ||||||||||||
days | integer | |||||||||||||
views | integer | |||||||||||||
visitors | integer | |||||||||||||
daily | liste de object |
| ||||||||||||
pages | liste de object |
|
AiJob
| Champ | Type | Description |
|---|---|---|
id requis | string | |
kind requis | string: build, edit | |
status requis | string: held, queued, running, done, failed | |
step | string ou null | |
deployId | string ou null | Le déploiement brouillon créé |
error | string ou null | |
credits | integer | |
createdAt | integer |
Me
| Champ | Type | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kind requis | string: session, token | Mode de connexion de l'appelant | ||||||||||||||||||||||||
user requis | object |
| ||||||||||||||||||||||||
platformAdmin | boolean | |||||||||||||||||||||||||
teams requis | liste de Team | |||||||||||||||||||||||||
roles | liste de object |
|
Team
| Champ | Type | Description |
|---|---|---|
id requis | string | |
slug requis | string | |
name requis | string | |
role requis | string: owner, admin, developer, reviewer, billing, viewer | Votre rôle dans l'équipe (pour un jeton : ce qu'il peut faire) |
caps | liste de string: view, deploy, sites, domains, members, billing, team | |
scoped | boolean | Vous ne voyez que certains sites de l'équipe |
plan requis | Plan | |
billingStatus | string ou null | |
billing | object ou null | |
trialEndsAt | integer ou null | |
currentPeriodEnd | integer ou null | |
billingEmail | string ou null | |
usage | object ou null | Sites, domaines, membres et stockage utilisés |
Plan
| Champ | Type | Description |
|---|---|---|
id requis | string | |
name requis | string | |
priceCad requis | number | Par mois, CAD, taxes en sus |
sites requis | integer | |
domainsPerSite | integer | |
deploysPerDay | integer | |
maxDeployBytes | integer | |
storageBytes | integer | |
formSubmissions | integer | Par mois civil |
aiSuggestions | integer | Par mois civil |
imageTransforms | integer | |
includedDomains | integer | Domaines inclus par année |
monthlyCredits | integer | |
blurb | string |
Token
| Champ | Type | Description |
|---|---|---|
id requis | string | |
name requis | string | |
access requis | string: read, deploy | |
team | string ou null | Slug de la seule équipe permise, ou null |
created_at | integer | |
last_used_at | integer ou null | Mis à jour au plus une fois par heure |
expires_at | integer ou null | Null s'il n'expire jamais |
Credits
| Champ | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
total requis | integer | ||||||||||||||||
monthly | integer | Reste des crédits mensuels du forfait | |||||||||||||||
bought | integer | ||||||||||||||||
planMonthly | integer | ||||||||||||||||
costs requis | table de integer | Crédits par action | |||||||||||||||
packs requis | liste de object |
| |||||||||||||||
payments | boolean | Le paiement en ligne est ouvert | |||||||||||||||
card | object ou null | ||||||||||||||||
auto | object ou null | Recharge automatique | |||||||||||||||
ledger | liste de object |
|
AuditEntry
| Champ | Type | Description |
|---|---|---|
id requis | integer | |
at requis | integer | |
actor requis | string | Courriel de l'auteur (ou un nom de système) |
action requis | string | |
target | string ou null | |
detail | string ou null | Texte JSON |
team_id | string ou null |