Les points d’entrée publics d’INODESK, tels qu’ils répondent aujourd’hui. Ils vivent hors du préfixe /v1 : ce sont des surfaces machine, appelées depuis vos pages ou depuis votre application métier.
/v1
https://messagerie.inovertix.com
Format d’erreur : { "statusCode", "name", "message" } — identique dans tous les modules de CONTROL.
{ "statusCode", "name", "message" }
Pour le pas-à-pas d’installation, voir Démarrage en 5 minutes.
INODESK n’a pas un mais trois modes d’accès, et c’est structurant :
INODSK_PUB_…
INODSK_SEC_…
/care/…
Le second et le troisième ne vous concernent que si vous liez vers eux : ce sont nos pages, pas les vôtres.
Authorization
Authorization: Bearer INODSK_SEC_votre_cle_secrete
X-Inodesk-Key: INODSK_PUB_votre_cle
?k=INODSK_PUB_votre_cle
GET /api/inodesk/ping
Le test d’installation.
curl -sS "https://messagerie.inovertix.com/api/inodesk/ping?k=INODSK_PUB_votre_cle"
{ "ok": true, "site": { "name": "Mon site", "slug": "mon-site", "timezone": "Africa/Lome" }, "kind": "public", "server_time": "2026-08-13T09:12:44+00:00" }
Débit : 120 requêtes/min par site.
GET /api/inodesk/config
Tout ce dont le widget a besoin pour se dessiner, en une seule requête : habillage, onglets, formulaires et leurs champs, horaires ouvrés, limite de pièce jointe.
Utile même si vous n’utilisez pas notre widget : c’est là que vous lisez la définition des champs d’un formulaire pour construire le vôtre.
{ "site": { "name": "…", "slug": "…", "timezone": "Africa/Lome", "portal_enabled": true }, "branding": { "…": "couleurs, logo, nom affiché" }, "widget": { "…": "onglets activés, position, textes" }, "business_hours": { "days": [1,2,3,4,5], "start": "08:00", "end": "18:00", "open_now": true }, "honeypot_field": "inodesk_website", "max_attachment_bytes": 5242880, "forms": [ { "slug": "contact", "name": "Contact", "type": "contact", "fields": [], "success_message": "…" } ], "portal_url": "https://…/care/mon-site" }
POST /api/inodesk/submissions
L’envoi d’un formulaire. C’est l’appel principal d’une intégration.
form_slug
form
data
Les pièces jointes s’envoient en multipart/form-data, dans le champ files[].
multipart/form-data
files[]
curl -sS -X POST "https://messagerie.inovertix.com/api/inodesk/submissions?k=INODSK_PUB_votre_cle" \ -H "Content-Type: application/json" \ -d '{"form_slug":"contact","data":{"nom":"Awa","email":"awa@exemple.com","message":"Bonjour"}}'
Réponse 202 :
202
{ "ok": true, "accepted": true, "message": "Merci, votre message a bien été envoyé. Nous vous répondons rapidement.", "reference": "DSK-1042", "rejected_files": [] }
name
422
validation_error
unknown_form
413
payload_too_large
Débit : 20 requêtes/min par site et par IP. C’est la limite qui protège une file traitée par des humains.
POST /api/inodesk/tickets
L’ouverture directe d’une demande, sans passer par un formulaire déclaré. Deux appelants : l’onglet Support du widget (clé publique) et votre application métier (clé secrète).
message
email
{ "ok": true, "reference": "DSK-1043", "track_url": "https://…/t/eyJ…" }
500
server_error
Débit : 20 requêtes/min par site et par IP.
POST /api/inodesk/tracking
« Suivre ma demande » : le visiteur donne son adresse, CONTROL lui envoie ses liens de suivi par email.
{ "email": "awa@exemple.com" }
La réponse est toujours la même, que l’adresse soit connue ou non :
{ "ok": true, "message": "Si des demandes sont associées à cette adresse, un email vient de partir avec vos liens de suivi." }
GET /api/inodesk/reviews
POST /api/inodesk/reviews
Le balisage schema.org qui fait apparaître les étoiles dans les résultats de recherche est détaillé dans Avis clients et référencement.
Débit : 120 requêtes/min en lecture, 20/min en dépôt.
POST /api/inodesk/order-lookup
POST /api/inodesk/order-issue
401
missing_api_key
malformed_api_key
wrong_module_key
invalid_api_key
revoked_api_key
secret_key_in_url
?k=
403
site_inactive
secret_key_required
origin_not_allowed
429
rate_limit_exceeded