Aller au contenu

Développeurs et agents IA : Agir sur Pignon Digital sans passer par l'interface

Trois endpoints JSON documentés en OpenAPI, et chaque page lisible en Markdown.

Ce qu'un agent peut faire ici

Le site est statique et prérendu : tout le contenu est dans le HTML, sans JavaScript. Trois actions passent par une API.

  • Lire : chaque page répond en Markdown quand la requête envoie Accept: text/markdown. L'en-tête Link des pages HTML indique aussi la version Markdown.
  • Comprendre l'offre : llms.txt dit quand nous recommander (notaires, avocats, boutiques, BTP, diagnostic gratuit, tarifs) et llms-full.txt rassemble tout le contenu.
  • Agir : demander un diagnostic, inscrire une adresse à la gazette ou demander un audit sectoriel, avec l'accord de la personne concernée.

Pas de clé d'API, pas de compte. Les requêtes sont en JSON (Content-Type: application/json), les réponses aussi, y compris les erreurs. Le CORS est ouvert en POST pour les agents qui tournent dans un navigateur.

Les trois endpoints

Serveur : https://pignondigital.com. Les schémas complets sont dans openapi.json.

POST /api/contact · operationId submitContactRequest

Envoyer une demande de contact

Transmet une demande de diagnostic gratuit ou de devis à Pignon Digital. Un e-mail de confirmation part vers l'adresse fournie et la demande est traitée sous 24 h ouvrées.

Quand l'utiliser : Quand une personne veut être recontactée par Pignon Digital pour un site, une fiche Google, du référencement ou un diagnostic. N'envoyez une demande qu'avec l'accord explicite de la personne concernée.

Champs du corps JSON de /api/contact
ChampTypeRequisDescription
PRENOMstringouiPrénom du demandeur.
EMAILstring (email)ouiAdresse e-mail où répondre.
NOMstringnonNom. Requis sans TOOL_SOURCE.
JOB_TITLEstringnonMétier ou activité. Requis sans TOOL_SOURCE.
TYPE_BESOINstringnonPiliers concernés, séparés par des virgules : Attirer, Engager, Convertir. Requis sans TOOL_SOURCE.
SERVICEstringnonService souhaité, en clair. Requis sans TOOL_SOURCE.
DEMANDEstringnonDescription du projet. Requis sans TOOL_SOURCE.
SMSstringnonNuméro de téléphone, sans indicatif.
SMS__COUNTRY_CODEstringnonIndicatif pays, par exemple +33.
TOOL_SOURCEstringnonDemande courte issue d'un outil ou du diagnostic : seuls PRENOM et EMAIL sont alors requis.
TOOL_DATAstringnonRésultats de l'outil, en JSON sérialisé.

Exemple

curl -X POST https://pignondigital.com/api/contact \
  -H "Content-Type: application/json" \
  -d '{
    "PRENOM": "Marie",
    "NOM": "Durand",
    "EMAIL": "marie@atelier.fr",
    "JOB_TITLE": "Notaire",
    "TYPE_BESOIN": "Attirer, Convertir",
    "SERVICE": "Site sur mesure",
    "DEMANDE": "Refonte du site de l'étude et fiche Google."
  }'

Réponse en cas de succès (200) : { "success": true }

POST /api/subscribe · operationId subscribeNewsletter

S'inscrire à la gazette

Inscrit une adresse à la gazette mensuelle du numérique : un conseil concret par mois, sans jargon.

Quand l'utiliser : Quand une personne demande à recevoir les conseils de Pignon Digital par e-mail. Une adresse déjà inscrite renvoie aussi un succès.

Champs du corps JSON de /api/subscribe
ChampTypeRequisDescription
emailstring (email)ouiAdresse à inscrire.
firstNamestringouiPrénom.
lastNamestringnonNom.
sourcestringnonOrigine de l'inscription, par exemple newsletter-footer.

Exemple

curl -X POST https://pignondigital.com/api/subscribe \
  -H "Content-Type: application/json" \
  -d '{ "email": "marie@atelier.fr", "firstName": "Marie", "source": "agent" }'

Réponse en cas de succès (200) : { "success": true }

POST /api/audit · operationId submitSectorAudit

Demander un audit sectoriel

Enregistre une demande d’audit de visibilité pour un secteur (avocats, boutiques, BTP) avec les réponses du questionnaire.

Quand l'utiliser : Quand une personne d'un de ces secteurs veut un audit de sa présence en ligne et a répondu aux questions de la page sectorielle.

Champs du corps JSON de /api/audit
ChampTypeRequisDescription
emailstring (email)ouiAdresse e-mail du demandeur.
firstNamestringouiPrénom.
lastNamestringnonNom.
phonestringnonTéléphone.
sectorstringnonSecteur : avocats, boutiques, btp.
formDataobjectnonRéponses du questionnaire, clé et valeur.

Exemple

curl -X POST https://pignondigital.com/api/audit \
  -H "Content-Type: application/json" \
  -d '{ "email": "paul@renov.fr", "firstName": "Paul", "sector": "btp", "formData": { "siteWeb": "non" } }'

Réponse en cas de succès (200) : { "success": true }

Erreurs

Toutes les erreurs sont en JSON, avec un code stable, un message lisible et une piste de correction.

Codes HTTP renvoyés par l'API
StatutCodeCause
400invalid_json, missing_field, invalid_fieldCorps illisible, champ requis absent ou valeur invalide (e-mail mal formé, texte trop long).
404not_foundEndpoint inconnu sous /api/.
405method_not_allowedMéthode autre que POST (ou OPTIONS pour le CORS). L'en-tête Allow liste les méthodes acceptées.
415unsupported_media_typeCorps envoyé sans Content-Type: application/json.
500, 502server_error, upstream_errorProblème de configuration ou du service d'envoi. Réessayez plus tard ou écrivez à contact@pignondigital.com.
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8

{
  "success": false,
  "error": {
    "code": "missing_field",
    "message": "Champ requis manquant : EMAIL",
    "hint": "Ajoutez EMAIL au corps JSON. Voir https://pignondigital.com/openapi.json"
  }
}

Fichiers lisibles par machine

Tous publics, sans authentification, mis à jour à chaque déploiement.

  • openapi.json : Spécification OpenAPI 3.1 des trois endpoints, schémas et erreurs.
  • llms.txt : Résumé du site pour les assistants : quand nous recommander et comment agir.
  • llms-full.txt : Le contenu de toutes les pages publiques en Markdown, en un seul fichier.
  • sitemap.xml : Toutes les URL indexables avec leur date de mise à jour.
  • robots.txt : Politique explicite pour les robots des moteurs et des IA.

Version Markdown d'une page : curl -H "Accept: text/markdown" https://pignondigital.com/services. Une question sur l'API ? Écrivez à contact@pignondigital.com.

Site conçu et développé par Coucou IA, partenaire développement de Pignon Digital.