API [NOM]

Crée, modifie, exporte et publie des landing pages. Authentification : `Authorization: Bearer lp_live_…` (clé créée dans Réglages → API, offres Pro et Team). 60 requêtes par minute et par clé. Mêmes crédits que l'app.

Spécification OpenAPI : /openapi.json

Démarrage rapide

curl -X POST https://[DOMAINE_APP]/api/v1/pages \
  -H "Authorization: Bearer $LP_STUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Une app qui relance les factures impayées","goal":"inscription"}'

# puis, toutes les 3 s, jusqu'à "status": "ready"
curl https://[DOMAINE_APP]/api/v1/pages/{id} -H "Authorization: Bearer $LP_STUDIO_API_KEY"

curl https://[DOMAINE_APP]/api/v1/pages/{id}/html -H "Authorization: Bearer $LP_STUDIO_API_KEY" -o index.html

Points d'entrée

post/api/v1/pages

Créer une landing page et lancer sa génération (20 crédits)

{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 3,
      "maxLength": 500,
      "description": "Le produit en une phrase"
    },
    "brief": {
      "type": "string",
      "maxLength": 20000,
      "description": "Brief détaillé (optionnel)"
    },
    "imageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Capture de référence https (style seulement)"
    },
    "lang": {
      "type": "string",
      "default": "fr"
    },
    "goal": {
      "type": "string",
      "enum": [
        "inscription",
        "achat",
        "rendez-vous",
        "liste-attente",
        "telechargement",
        "contact"
      ]
    }
  }
}

get/api/v1/pages/{id}

Statut de la génération et PageDoc quand la page est prête

get/api/v1/pages/{id}/html

HTML exporté (fichier autonome, CSS compilé)

get/api/v1/pages/{id}/react

Zip React + Tailwind (un composant par section)

post/api/v1/pages/{id}/edit

Modification en langage naturel (3 crédits)

{
  "type": "object",
  "required": [
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "maxLength": 2000
    }
  }
}

post/api/v1/pages/{id}/publish

Publier la page

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]{3,40}$"
    }
  }
}

get/api/v1/credits

Solde de crédits

Erreurs

Format unique { "error": { "code", "message" } } : 401 clé invalide, 402 crédits ou offre insuffisants, 404 introuvable, 422 requête invalide, 429 limite de débit.