# Vue d’ensembleCette référence suit les routes clientes réellement disponibles.
# Lire une opération de référenceChaque entrée indique méthode, chemin, authentification, rôle, paramètres, corps, réponse et erreurs. Les identifiants dans les chemins sont ceux renvoyés par les listes; ne devinez pas un ID à partir du nom affiché.
Les collections utilisent un champ data et peuvent ajouter des métadonnées. Les uploads utilisent multipart/form-data tandis que les mutations courantes utilisent JSON. Les exemples emploient des placeholders et ne doivent pas être copiés avec un vrai secret dans l’historique shell.
# Avant d’automatiser1 Appelez /api/auth/me pour vérifier token et organisation.
2 Listez la ressource et récupérez son identifiant.
3 Testez la mutation sur une ressource non critique.
4 Gérez explicitement 401, 403, 404, 422, 429 et les timeouts.
# La référence OpenAPI est machine-readableTéléchargez /docs/api/openapi.json pour générer des types ou explorer les opérations, puis conservez les règles de rôle et de retry décrites ici.
# Opérations REST clientes
Authentication 3
POST /api/auth/login
# Créer un jeton de session API
Avec la 2FA, créez un jeton personnel depuis le panneau puis utilisez-le directement.
Authentification Aucune
Rôles Aucune
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/auth/login' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"email":"dev@example.com","password":"PASSWORD"}'
GET /api/auth/me
# Lire le profil courant
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/auth/me' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/auth/logout
# Révoquer le jeton courant
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/auth/logout' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Zones 3
GET /api/zones
# Lister les zones
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/zones' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/zones
# Créer, acheter ou transférer une zone
Les achats et transferts sont asynchrones et peuvent répondre 202 avec task_id.
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201 202
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/zones' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"domain":"assets.example.com"}'
GET /api/zones/{id}
# Lire une zone
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/zones/ZONE_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Cache 2
POST /api/zones/{id}/purge
# Purger un chemin
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/zones/ZONE_ID/purge' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{}'
POST /api/zones/{id}/purge-all
# Purger toute une zone
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/zones/ZONE_ID/purge-all' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Analytics 1
GET /api/zones/{id}/stats
# Lire les statistiques d’une zone
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/zones/ZONE_ID/stats?period=24h' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Files 4
GET /api/files
# Lister les fichiers
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/files?zone_id=42&per_page=25&page=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/files
# Téléverser un fichier
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/files' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'file=@./asset.png' \
--form 'zone_id=42' \
--form 'cache_ttl=3600' \
--form 'direct_public_link=false'
GET /api/files/{uuid}
# Lire un fichier
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/files/FILE_UUID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
DELETE /api/files/{uuid}
# Supprimer un fichier
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 200
Champs de requête
Exemple
bash Copier
curl --request DELETE \
--url 'https://api.cdn.pizza/api/files/FILE_UUID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Nodes 5
GET /api/nodes
# Lister les nœuds disponibles
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/nodes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/nodes
# Créer un nœud client
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/nodes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"node_id":"edge-zurich-01","hostname":"edge-zurich-01.example.net","ip_address":"203.0.113.42","region_id":1,"country":"CH"}'
GET /api/nodes/tokens
# Lister les jetons BYOC
Authentification Token Bearer personnel
Rôles owner, admin
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/nodes/tokens' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/nodes/tokens
# Créer un jeton BYOC
Authentification Token Bearer personnel
Rôles owner, admin
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/nodes/tokens' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{}'
DELETE /api/nodes/tokens/{id}
# Révoquer un jeton BYOC
Authentification Token Bearer personnel
Rôles owner, admin
Succès 200
Champs de requête
Exemple
bash Copier
curl --request DELETE \
--url 'https://api.cdn.pizza/api/nodes/tokens/TOKEN_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Private networks 5
GET /api/networks
# Lister les réseaux privés
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/networks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/networks
# Créer un réseau privé
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/networks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"name":"backoffice","private_cidr":"10.42.0.0/24"}'
GET /api/networks/{network}
# Lire un réseau privé
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/networks/NETWORK_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/networks/{network}/enrollment-keys
# Créer une clé d’enrôlement réseau
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/networks/NETWORK_ID/enrollment-keys' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"name":"first-device"}'
POST /api/networks/enroll
# Enrôler un pair WireGuard
Authentification Clé d’enrôlement dans le corps
Rôles Aucune
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/networks/enroll' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"enrollment_token":"ENROLLMENT_TOKEN","name":"origin-geneva","public_key":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}'
Status agents 5
POST /api/status-agents/enrollment-keys
# Créer une clé d’enrôlement agent
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/status-agents/enrollment-keys' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"status_page_id":1,"name":"branch-geneva"}'
POST /api/status-agents/enroll
# Enrôler un agent de statut
Authentification Clé d’enrôlement dans le corps
Rôles Aucune
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/status-agents/enroll' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"enrollment_token":"STATUS_ENROLLMENT_TOKEN","name":"branch-geneva"}'
GET /api/status-agents/config
# Lire la configuration d’un agent
Authentification Token Bearer de l’agent
Rôles Aucune
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/status-agents/config' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer STATUS_AGENT_TOKEN'
POST /api/status-agents/heartbeat
# Envoyer un heartbeat agent
Authentification Token Bearer de l’agent
Rôles Aucune
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/status-agents/heartbeat' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer STATUS_AGENT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{}'
POST /api/status-agents/results
# Envoyer des résultats de contrôle
Authentification Token Bearer de l’agent
Rôles Aucune
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/status-agents/results' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer STATUS_AGENT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"results":[{"monitor_id":17,"configuration_version":2,"healthy":true,"latency_ms":42.5}]}'
Partner POPs 3
GET /api/partner-pops
# Lister les POP partenaires
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/partner-pops' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/partner-pops
# Créer un POP partenaire
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/partner-pops' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"company_name":"Example Networks AG","display_name":"Zurich IX","contact_email":"noc@example.net","city":"Zürich","country":"CH","capacity_mbps":10000,"requirements_accepted":true}'
POST /api/partner-pops/{partnerPop}/enrollment-token
# Créer un jeton d’installation POP
Le POP doit appartenir à l’organisation. Le créateur de la demande peut aussi créer le jeton.
Authentification Token Bearer personnel
Rôles owner, admin, member
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/partner-pops/PARTNER_POP_ID/enrollment-token' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{}'
Privacy 4
GET /api/gdpr/export
# Exporter les données du compte
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/gdpr/export' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
DELETE /api/gdpr/account
# Supprimer le compte
Authentification Token Bearer personnel
Rôles owner, admin
Succès 200
Champs de requête
Exemple
bash Copier
curl --request DELETE \
--url 'https://api.cdn.pizza/api/gdpr/account' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"password":"ACCOUNT_PASSWORD"}'
GET /api/gdpr/consent
# Lire les consentements
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/gdpr/consent' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
PUT /api/gdpr/consent
# Modifier les consentements
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request PUT \
--url 'https://api.cdn.pizza/api/gdpr/consent' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{}'
Billing 3
GET /api/billing/plans
# Lister les offres
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/billing/plans' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
GET /api/billing
# Lire l’abonnement courant
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/billing' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/billing/checkout
# Créer une session de paiement
Authentification Token Bearer personnel
Rôles owner, admin
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/billing/checkout' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"plan":"pro"}'
Webhooks 3
GET /api/webhooks
# Lister les webhooks
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Exemple
bash Copier
curl --request GET \
--url 'https://api.cdn.pizza/api/webhooks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/webhooks
# Créer un webhook
Authentification Token Bearer personnel
Rôles owner, admin
Succès 201
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/webhooks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"url":"https://hooks.example.com/cdn-pizza","events":["file.uploaded","file.deleted"]}'
DELETE /api/webhooks/{id}
# Supprimer un webhook
Authentification Token Bearer personnel
Rôles owner, admin
Succès 200
Champs de requête
Exemple
bash Copier
curl --request DELETE \
--url 'https://api.cdn.pizza/api/webhooks/WEBHOOK_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
GraphQL 1
POST /api/graphql
# Exécuter une requête GraphQL
Authentification Token Bearer personnel
Rôles owner, admin, member, viewer
Succès 200
Champs de requête
Exemple
bash Copier
curl --request POST \
--url 'https://api.cdn.pizza/api/graphql' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"query":"query { zones { id domain } }"}'