Appliquer un plan de site
Le contenu complet d’un site en UN seul appel : informations sur l’entreprise, thème et navigation (fusionnés avec le brouillon), entrées, images (à fournir via images:place) et nom. Les entrées d’exemple du modèle de départ sont supprimées, sauf si le forfait les conserve. Tout est validé en même temps : si une partie est refusée, rien n’est enregistré et la réponse 400 indique tous les éléments à corriger. Une entrée d’historique est créée et la génération du site démarre. Gratuit : les images de la bibliothèque ne coûtent aucun crédit. Conçu pour une première version comme pour une refonte majeure.
POST/v1/sites/{site_id}/plan:apply
Nécessite sites:write. Ne coûte aucun crédit : les images de la bibliothèque sont gratuites. Le chemin se termine par /plan:apply. Les changements ne concernent que le brouillon. Les visiteurs ne voient rien tant que vous n’avez pas publié.
Le moyen le plus rapide de rédiger une première version d’un site ou d’en remanier un : tout ce qu’il faut pour une première version, dans une seule requête. Consultez d’abord le modèle de contenu pour connaître les champs.
name: le nom du site dans Atelier201.singletons:business,theme,navigation… Chaque élément est fusionné avec le contenu du brouillon, clé par clé au niveau supérieur ; un groupe imbriqué fourni, commeherooucolors, remplace ce groupe.entries: jusqu’à 200 entrées à créer, modifier ou supprimer, selon le format accepté par Enregistrer plusieurs entrées.images: jusqu’à 12 images, selon le format accepté par Insérer une image dans un champ image :target,altet l’un des champsquery,stock_idoumedia_path. Si une image est introuvable, le résultat contient unwarninget le reste du plan est tout de même appliqué.keep_samples: les exemples d’entrées du modèle de départ (service-one,service-two) sont supprimés, sauf si le plan les renseigne ou si la valeur esttrue.
Tout est validé avant la moindre écriture. Si une partie est refusée, rien n’est enregistré et le 400 répertorie tous les éléments à corriger, pour que vous puissiez tout régler en une fois. En cas de réussite, une seule entrée est ajoutée à l’historique et la compilation démarre : la réponse contient build. Ensuite, vérifiez la publication : elle est refusée tant qu’il reste du texte d’exemple du modèle de départ.
Autorisations
Authorizationbearerin headerrequiredParamètres de chemin
site_idstringrequiredL’identifiant du site ou son slug (l’adresse avant .atelier201.page).
Corps
application/jsonrequirednamestringlength: 1–80 charsLe nom du site dans Atelier201 (le nom de l’entreprise).
singletonsRecord<string, Record<string, object>>business, theme, navigation... : chaque groupe est fusionné avec le contenu du brouillon (clés de premier niveau ; un groupe imbriqué fourni ici remplace ce groupe). Les champs sont ceux définis par get_content_model.
entriesobject[]items: 1–200 itemsEntrées à créer, modifier ou supprimer (delete: true), au format accepté par save_entries, jusqu’à 200.
imagesobject[]items: ≤ 12 itemsImages à renseigner dans les champs image, au format attendu par place_image (target, alt et l’un des champs query, stock_id ou media_path). Si une image est introuvable, un avertissement est renvoyé ; les autres modifications sont tout de même appliquées.
keep_samplesbooleanConservez les entrées d’exemple du modèle de départ (service-one, service-two). Par défaut, elles sont supprimées, sauf si le plan les crée.
summarystringlength: ≤ 200 charsUne phrase pour l’historique.
Réponse
Appliquer un forfait à un site
dataRecord<string, object>requiredrequest_idstringrequiredCodes possibles : invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCodes possibles : authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_credits
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_scope, feature_not_available, admin_required
errorobjectrequiredrequest_idstringrequiredCodes possibles : resource_not_found
errorobjectrequiredrequest_idstringrequiredCodes possibles : conflict, result_not_ready, idempotency_key_reused
errorobjectrequiredrequest_idstringrequiredCodes possibles : result_expired
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large_for_plan
errorobjectrequiredrequest_idstringrequiredCodes possibles : rate_limited
errorobjectrequiredrequest_idstringrequiredCodes possibles : internal_error
errorobjectrequiredrequest_idstringrequiredCodes possibles : service_unavailable
errorobjectrequiredrequest_idstringrequired