API REST

Référence des endpoints déjà documentés, de leurs erreurs et webhooks. Les nouveaux contrats de gestion des standards sont présentés séparément.

Clients, projets et services : contrat prévu

Pour les nouveaux standards N1/N2/N3, la gestion prévue couvre clients/organisations, projets, services, rattachements, quotas et mesure d’usage. Les identités, groupes, comptes techniques, rôles et permissions doivent limiter chaque opération au périmètre autorisé ; rotation, expiration, révocation et audit font partie du contrat cible.

Les opérations de création, mise à jour, export, restauration et suppression avec rétention restent à qualifier, y compris les refus interprojets. Détacher une application ne doit pas supprimer implicitement une ressource utilisée ailleurs. Ce contrat ne fournit aucun nouvel endpoint exécutable.

Ce contrat général conserve la portée de la feuille de route du 5 septembre 2026 : voir les lignes IAM et cycle de vie. Les opérations effectivement observées depuis figurent dans le registre N0–N3, avec leurs limites. Elles ne qualifient pas automatiquement l’ensemble de ce contrat ; la référence ci-dessous conserve son périmètre historique.

API REST versionnée, JSON over HTTPS. Tous les endpoints requièrent un Bearer token. Base URL : https://console.di2amp.com/api/v1.

Authentification

Bearer token dans l'en-tête Authorization. Génération de token dans le dashboard, onglet « API tokens ». Scopes RBAC pour limiter les permissions.

$ curl -H "Authorization: Bearer $PAAS_TOKEN" \
  https://console.di2amp.com/api/v1/apps

Erreurs

Codes HTTP standard. Corps JSON au format problème détaillé.

CodeSignificationAction
400Requête mal forméeVérifier le JSON envoyé
401Token invalide ou expiréRégénérer le token
403Permission insuffisanteVérifier les scopes du token
404Ressource introuvableVérifier l'ID
429Rate limit dépasséVoir l'en-tête Retry-After
500-599Erreur côté serveurRéessayer avec backoff

Pagination

Cursor-based. Paramètres limit (max 100) et cursor.

GET /v1/apps?limit=20&cursor=eyJpZCI6MTAwfQ

Rate limiting

1000 requêtes par minute par token. En-têtes de réponse :

  • X-RateLimit-Limit : limite par minute
  • X-RateLimit-Remaining : requêtes restantes
  • X-RateLimit-Reset : timestamp Unix de reset
  • Retry-After (sur 429) : secondes à attendre

Endpoints principaux

Apps

GET/v1/apps
POST/v1/apps
GET/v1/apps/{id}
PATCH/v1/apps/{id}
DELETE/v1/apps/{id}

Releases et déploiements

GET/v1/apps/{id}/releases
GET/v1/apps/{id}/releases/{rid}
POST/v1/apps/{id}/releases/{rid}/rollback

Configuration

GET/v1/apps/{id}/config
PATCH/v1/apps/{id}/config

Addons

GET/v1/apps/{id}/addons
POST/v1/apps/{id}/addons
DELETE/v1/apps/{id}/addons/{aid}

Logs et métriques

GET/v1/apps/{id}/logs
GET/v1/apps/{id}/logs/stream (SSE)
GET/v1/apps/{id}/metrics?range=1h

Domaines

GET/v1/apps/{id}/domains
POST/v1/apps/{id}/domains
DELETE/v1/apps/{id}/domains/{did}

Réseau

GET/v1/apps/{id}/dedicated_ip
POST/v1/apps/{id}/dedicated_ip
DELETE/v1/apps/{id}/dedicated_ip

Allouer une IP publique dédiée pour l'app. 10 €/mois par IP allouée. L'enregistrement DNS A est créé automatiquement sur app-{id}.runtime.di2amp.com. Cycle de vie : pending → active → releasing → released.

Agents IA

GET/v1/tenant/agents
POST/v1/tenant/agents
GET/v1/apps/{id}/agents/{name}/insights

Facturation

GET/v1/tenant/usage
GET/v1/tenant/invoices
GET/v1/tenant/invoices/{id}/pdf

Webhooks

Vous configurez un endpoint HTTPS, on vous envoie les events JSON signés HMAC-SHA256 avec l'en-tête X-Paas-Signature.

Events disponibles : release.created, release.deployed, release.failed, app.created, app.deleted, addon.created, incident.opened, incident.resolved.

Spec OpenAPI

Spec OpenAPI 3.1 complète disponible sur console.di2amp.com/api/openapi.json. Téléchargeable, importable dans Postman, utilisable pour générer un client dans n'importe quel langage.