cdn.pizzaDocumentation

Développeurs

Référence REST API

Cette référence suit les routes clientes réellement disponibles.

#Vue d’ensemble

Cette référence suit les routes clientes réellement disponibles.

#Lire une opération de référence

Chaque 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’automatiser

  1. 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.

#Opérations REST clientes

URL de base: https://api.cdn.pizzaTélécharger OpenAPI 3.1

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

ChampTypeRequisDescription
emailstringouiAdresse e-mail vérifiée.format: email
passwordstringouiMot de passe du compte. Non accepté si la 2FA est active.format: password
device_namestringnonNom visible du jeton.
Exemple
bash
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
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
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
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

ChampTypeRequisDescription
domainstringouiNom de domaine pleinement qualifié.
namestringnonSurnom affiché dans le panneau.length: 0…255
typestringnonMode cname ou ns; ns par défaut.enum: cname | ns
registrar_actionstringnonconnect, register ou transfer.enum: connect | register | transfer
transfer_auth_codestringnonRequis pour un transfert.length: 4…255
registrant_namestringnonRequis pour achat/transfert.length: 0…255
registrant_emailstringnonE-mail du titulaire.format: email · length: 0…255
registrant_phonestringnonTéléphone international du titulaire.length: 0…40
registrant_organizationstringnonOrganisation du titulaire.length: 0…255
registrant_streetstringnonAdresse du titulaire.length: 0…255
registrant_citystringnonVille du titulaire.length: 0…120
registrant_postal_codestringnonCode postal du titulaire.length: 0…30
registrant_country_codestringnonCode pays ISO à deux lettres.length: 2…2
private_whoisstringnonNiveau de confidentialité WHOIS.enum: FULL | PARTIAL | DISABLED
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant de zone.
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant de zone.
pathstringnonChemin à purger; omis, la valeur /* est utilisée.
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant de zone.
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant de zone.
periodstringnonFenêtre 24h, 7d ou 30d; 24h par défaut.enum: 24h | 7d | 30d · default: "24h"
Exemple
bash
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

ChampTypeRequisDescription
zone_idintegernonFiltrer par zone.
per_pageintegernonTaille de page; 25 par défaut.range: 1…∞
pageintegernonNuméro de page.range: 1…∞
Exemple
bash
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

ChampTypeRequisDescription
filestringouiFichier, 100 Mo maximum.format: binary
zone_idintegerouiZone de publication.
storage_nodesarray<integer>nonJusqu’à trois identifiants de nœuds storage.
cache_ttlintegernonTTL cache en secondes, 0 accepté.range: 0…∞
direct_public_linkbooleannonActive le lien storage direct.
Exemple
bash
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

ChampTypeRequisDescription
uuidstringouiUUID public du fichier.format: uuid
Exemple
bash
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

ChampTypeRequisDescription
uuidstringouiUUID public du fichier.format: uuid
Exemple
bash
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
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

ChampTypeRequisDescription
node_idstringouiIdentifiant unique du nœud.
hostnamestringouiNom DNS du nœud.
ip_addressstringouiAdresse IPv4 ou IPv6 du nœud.
region_idintegerouiIdentifiant d’une région existante.
countrystringouiCode pays ISO à deux lettres.length: 2…2
Exemple
bash
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
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

ChampTypeRequisDescription
namestringnonNom du jeton.length: 0…100
max_nodesintegernonNombre maximal de nœuds, 1 par défaut.default: 1 · range: 1…10
expires_daysintegernonValidité en jours, 30 par défaut.default: 30 · range: 1…365
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant du jeton.
Exemple
bash
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
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

ChampTypeRequisDescription
namestringouiNom du réseau.length: 0…120
private_cidrstringouiPlage IPv4 privée.length: 0…32
descriptionstringnonDescription opérationnelle.length: 0…1000
routesarray<string>nonRoutes privées annoncées.items: 0…50
vpn_typestringnonwireguard.enum: wireguard
Exemple
bash
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

ChampTypeRequisDescription
networkintegerouiIdentifiant du réseau.
Exemple
bash
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

ChampTypeRequisDescription
networkintegerouiIdentifiant du réseau.
namestringouiNom de la clé.length: 0…120
max_usesintegernonNombre maximal d’utilisations.default: 1 · range: 1…10
expires_in_hoursintegernonDurée de validité.default: 24 · range: 1…168
Exemple
bash
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

ChampTypeRequisDescription
enrollment_tokenstringouiClé réseau courte durée cpn_…length: 0…128
namestringouiNom du pair.length: 0…120
peer_typestringnonconnector, admin_device ou origin.enum: connector | admin_device | origin
public_keystringouiClé publique WireGuard.length: 0…120
endpointstringnonEndpoint public du pair.length: 0…255
Exemple
bash
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

ChampTypeRequisDescription
status_page_idintegerouiPage de statut cible.
namestringouiNom de la clé ou de l’agent.length: 0…120
max_usesintegernonNombre maximal d’utilisations.default: 1 · range: 1…10
expires_in_hoursintegernonDurée de validité.default: 24 · range: 1…168
Exemple
bash
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

ChampTypeRequisDescription
enrollment_tokenstringouiClé courte durée cps_…length: 0…128
namestringouiNom de l’agent.length: 0…120
hostnamestringnonNom de machine.length: 0…255
versionstringnonVersion de l’agent.length: 0…80
capabilitiesarray<string>nonTypes de contrôles supportés.items: 0…20
Exemple
bash
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
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

ChampTypeRequisDescription
hostnamestringnonNom de machine actuel.length: 0…255
versionstringnonVersion actuelle.length: 0…80
capabilitiesarray<string>nonCapacités prises en charge, vingt maximum.items: 0…20
metricsobjectnonMesures locales sûres, par exemple charge et mémoire utilisée.
Exemple
bash
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

ChampTypeRequisDescription
resultsarray<object>ouiDe un à cent résultats avec monitor_id et healthy; configuration_version, latency_ms, checked_at, details et error_message sont facultatifs.items: 1…100
Exemple
bash
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
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

ChampTypeRequisDescription
company_namestringouiNom légal ou commercial de l’opérateur.length: 0…160
display_namestringouiNom public proposé pour le POP.length: 0…180
contact_emailstringouiE-mail opérationnel du partenaire.format: email · length: 0…180
website_urlstringnonSite public de l’opérateur.format: uri · length: 0…255
logo_urlstringnonURL HTTPS du logo public.format: uri · length: 0…2048
provider_namestringnonNom du fournisseur d’infrastructure.length: 0…160
citystringouiVille du POP.length: 0…120
countrystringouiCode pays ISO à deux lettres.length: 2…2
submitted_ipv4stringnonAdresse IPv4 proposée.format: ipv4
submitted_ipv6stringnonAdresse IPv6 proposée.format: ipv6
capacity_mbpsintegerouiCapacité réseau en Mbit/s.range: 100…1000000
notesstringnonPrécisions techniques ou opérationnelles.length: 0…5000
requirements_acceptedbooleanouiConfirme l’acceptation des exigences Partner POP.
Exemple
bash
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

ChampTypeRequisDescription
partnerPopintegerouiIdentifiant du POP.
namestringnonNom du jeton d’installation.length: 0…120
Exemple
bash
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
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

ChampTypeRequisDescription
passwordstringouiMot de passe actuel, exigé pour confirmer.format: password
Exemple
bash
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
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

ChampTypeRequisDescription
analyticsbooleannonAutoriser les mesures non essentielles.
marketingbooleannonAutoriser les communications marketing.
Exemple
bash
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
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
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

ChampTypeRequisDescription
planstringouiCode public de l’offre.enum: starter | pro | enterprise
Exemple
bash
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
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

ChampTypeRequisDescription
urlstringouiURL publique HTTP(S); HTTPS est recommandé.format: uri · length: 0…500
eventsarray<string>ouiÉvénements abonnés.items: file.uploaded | file.deleted | domain.created | zone.created | zone.updated | zone.deleted | cache.purged | node.online | node.offline | node.deployed | billing.updated | invoice.paid | mail.accepted | mail.rejected | mail.deferred
secretstringnonSecret de signature choisi par le client.length: 0…255
Exemple
bash
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

ChampTypeRequisDescription
idintegerouiIdentifiant du webhook.
Exemple
bash
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

ChampTypeRequisDescription
querystringouiDocument query; seules quatre racines sont disponibles.
variablesobjectnonVariables de la requête.
Exemple
bash
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 } }"}'
Documentation clientRéférence générée depuis les interfaces publiées