cdn.pizzaDokumentation

Entwickler

REST-API-Referenz

Diese Referenz folgt den tatsächlich verfügbaren Kundenrouten.

#Überblick

Diese Referenz folgt den tatsächlich verfügbaren Kundenrouten.

#Referenzoperation lesen

Jeder Eintrag nennt Methode, Pfad, Authentifizierung, Rolle, Parameter, Body, Antwort und Fehler. Pfad-IDs stammen aus Listen; leiten Sie IDs nie aus Anzeigenamen ab.

Collections verwenden data und können Metadaten enthalten. Uploads nutzen multipart/form-data, übliche Mutationen JSON. Beispiele enthalten Platzhalter; schreiben Sie keine echten Geheimnisse in die Shell-Historie.

#Vor Automatisierung

  1. Rufen Sie /api/auth/me für Token und Organisation auf.

  2. Listen Sie die Ressource und lesen Sie ihre ID.

  3. Testen Sie die Mutation an einer unkritischen Ressource.

  4. Behandeln Sie 401, 403, 404, 422, 429 und Timeouts ausdrücklich.

#REST-Operationen für Kunden

Basis-URL: https://api.cdn.pizzaOpenAPI 3.1 herunterladen

Authentication 3

POST /api/auth/login

#API-Sitzungstoken erstellen

Bei 2FA im Dashboard ein persönliches Token erstellen und direkt verwenden.

Authentifizierung
Keine
Rollen
Keine
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
emailstringjaBestätigte E-Mail-Adresse.format: email
passwordstringjaKontopasswort. Bei aktiver 2FA nicht akzeptiert.format: password
device_namestringneinAnzeigename des Tokens.
Beispiel
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

#Aktuelles Profil lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Aktuelles Token widerrufen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Zonen auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
bash
curl --request GET \
  --url 'https://api.cdn.pizza/api/zones' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/zones

#Zone erstellen, registrieren oder übertragen

Registrierung und Übertragung laufen asynchron und können 202 mit task_id liefern.

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201 202

Anfragefelder

FeldTypErforderlichBeschreibung
domainstringjaVollqualifizierter Domainname.
namestringneinAnzeigename im Dashboard.length: 0…255
typestringneinModus cname oder ns; Standard ist ns.enum: cname | ns
registrar_actionstringneinconnect, register oder transfer.enum: connect | register | transfer
transfer_auth_codestringneinFür eine Übertragung erforderlich.length: 4…255
registrant_namestringneinFür Registrierung/Übertragung erforderlich.length: 0…255
registrant_emailstringneinE-Mail des Domaininhabers.format: email · length: 0…255
registrant_phonestringneinInternationale Telefonnummer des Domaininhabers.length: 0…40
registrant_organizationstringneinOrganisation des Domaininhabers.length: 0…255
registrant_streetstringneinStraße des Domaininhabers.length: 0…255
registrant_citystringneinOrt des Domaininhabers.length: 0…120
registrant_postal_codestringneinPostleitzahl des Domaininhabers.length: 0…30
registrant_country_codestringneinZweistelliger ISO-Ländercode.length: 2…2
private_whoisstringneinWHOIS-Datenschutzstufe.enum: FULL | PARTIAL | DISABLED
Beispiel
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}

#Zone lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaZonen-ID.
Beispiel
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

#Pfad aus dem Cache löschen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaZonen-ID.
pathstringneinZu löschender Pfad; ohne Angabe wird /* verwendet.
Beispiel
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

#Gesamte Zone leeren

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaZonen-ID.
Beispiel
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

#Zonenstatistiken lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaZonen-ID.
periodstringneinZeitraum 24h, 7d oder 30d; Standard 24h.enum: 24h | 7d | 30d · default: "24h"
Beispiel
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

#Dateien auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
zone_idintegerneinNach Zone filtern.
per_pageintegerneinSeitengröße; Standard 25.range: 1…∞
pageintegerneinSeitennummer.range: 1…∞
Beispiel
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

#Datei hochladen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
filestringjaDatei, maximal 100 MB.format: binary
zone_idintegerjaVeröffentlichungszone.
storage_nodesarray<integer>neinBis zu drei Storage-Node-IDs.
cache_ttlintegerneinCache-TTL in Sekunden; 0 ist zulässig.range: 0…∞
direct_public_linkbooleanneinDirekten Storage-Link aktivieren.
Beispiel
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}

#Datei lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
uuidstringjaÖffentliche UUID der Datei.format: uuid
Beispiel
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}

#Datei löschen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
uuidstringjaÖffentliche UUID der Datei.format: uuid
Beispiel
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

#Verfügbare Nodes auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
bash
curl --request GET \
  --url 'https://api.cdn.pizza/api/nodes' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/nodes

#Kunden-Node erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
node_idstringjaEindeutige Node-ID.
hostnamestringjaDNS-Hostname des Nodes.
ip_addressstringjaIPv4- oder IPv6-Adresse des Nodes.
region_idintegerjaID einer vorhandenen Region.
countrystringjaZweistelliger ISO-Ländercode.length: 2…2
Beispiel
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

#BYOC-Tokens auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
200
Beispiel
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

#BYOC-Token erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
namestringneinTokenname.length: 0…100
max_nodesintegerneinMaximale Anzahl Nodes; Standard 1.default: 1 · range: 1…10
expires_daysintegerneinGültigkeit in Tagen; Standard 30.default: 30 · range: 1…365
Beispiel
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}

#BYOC-Token widerrufen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaToken-ID.
Beispiel
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

#Private Netzwerke auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
bash
curl --request GET \
  --url 'https://api.cdn.pizza/api/networks' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/networks

#Privates Netzwerk erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
namestringjaNetzwerkname.length: 0…120
private_cidrstringjaPrivater IPv4-Bereich.length: 0…32
descriptionstringneinBetriebliche Beschreibung.length: 0…1000
routesarray<string>neinAngekündigte private Routen.items: 0…50
vpn_typestringneinwireguard.enum: wireguard
Beispiel
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}

#Privates Netzwerk lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
networkintegerjaNetzwerk-ID.
Beispiel
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

#Netzwerk-Einrichtungsschlüssel erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
networkintegerjaNetzwerk-ID.
namestringjaSchlüsselname.length: 0…120
max_usesintegerneinMaximale Anzahl Nutzungen.default: 1 · range: 1…10
expires_in_hoursintegerneinGültigkeitsdauer.default: 24 · range: 1…168
Beispiel
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

#WireGuard-Peer einrichten

Authentifizierung
Einrichtungsschlüssel im Body
Rollen
Keine
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
enrollment_tokenstringjaKurzlebiger cpn_… Netzwerkschlüssel.length: 0…128
namestringjaPeer-Name.length: 0…120
peer_typestringneinconnector, admin_device oder origin.enum: connector | admin_device | origin
public_keystringjaÖffentlicher WireGuard-Schlüssel.length: 0…120
endpointstringneinÖffentlicher Endpoint des Peers.length: 0…255
Beispiel
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

#Agent-Einrichtungsschlüssel erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
status_page_idintegerjaZiel-Statusseite.
namestringjaSchlüssel- oder Agentname.length: 0…120
max_usesintegerneinMaximale Anzahl Nutzungen.default: 1 · range: 1…10
expires_in_hoursintegerneinGültigkeitsdauer.default: 24 · range: 1…168
Beispiel
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

#Status-Agent einrichten

Authentifizierung
Einrichtungsschlüssel im Body
Rollen
Keine
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
enrollment_tokenstringjaKurzlebiger cps_… Schlüssel.length: 0…128
namestringjaAgentname.length: 0…120
hostnamestringneinHostname der Maschine.length: 0…255
versionstringneinAgentversion.length: 0…80
capabilitiesarray<string>neinUnterstützte Prüfarten.items: 0…20
Beispiel
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

#Agentkonfiguration lesen

Authentifizierung
Bearer-Token des Agents
Rollen
Keine
Erfolg
200
Beispiel
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

#Agent-Heartbeat senden

Authentifizierung
Bearer-Token des Agents
Rollen
Keine
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
hostnamestringneinAktueller Hostname.length: 0…255
versionstringneinAktuelle Version.length: 0…80
capabilitiesarray<string>neinUnterstützte Funktionen, maximal zwanzig.items: 0…20
metricsobjectneinSichere lokale Messwerte wie Last und Speichernutzung.
Beispiel
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

#Prüfergebnisse senden

Authentifizierung
Bearer-Token des Agents
Rollen
Keine
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
resultsarray<object>jaEin bis hundert Ergebnisse mit monitor_id und healthy; configuration_version, latency_ms, checked_at, details und error_message sind optional.items: 1…100
Beispiel
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

#Partner-POPs auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
200
Beispiel
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

#Partner-POP erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
company_namestringjaRechtlicher oder geschäftlicher Name des Betreibers.length: 0…160
display_namestringjaVorgeschlagener öffentlicher POP-Name.length: 0…180
contact_emailstringjaBetriebliche E-Mail des Partners.format: email · length: 0…180
website_urlstringneinÖffentliche Website des Betreibers.format: uri · length: 0…255
logo_urlstringneinHTTPS-URL des öffentlichen Logos.format: uri · length: 0…2048
provider_namestringneinName des Infrastrukturanbieters.length: 0…160
citystringjaStadt des POPs.length: 0…120
countrystringjaZweistelliger ISO-Ländercode.length: 2…2
submitted_ipv4stringneinVorgeschlagene IPv4-Adresse.format: ipv4
submitted_ipv6stringneinVorgeschlagene IPv6-Adresse.format: ipv6
capacity_mbpsintegerjaNetzwerkkapazität in Mbit/s.range: 100…1000000
notesstringneinTechnische oder betriebliche Hinweise.length: 0…5000
requirements_acceptedbooleanjaBestätigt die Annahme der Partner-POP-Anforderungen.
Beispiel
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

#POP-Installationstoken erstellen

Der POP muss zur Organisation gehören. Auch der Antragsteller darf das Token erstellen.

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
partnerPopintegerjaPOP-ID.
namestringneinName des Installationstokens.length: 0…120
Beispiel
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

#Kontodaten exportieren

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Konto löschen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
passwordstringjaAktuelles Passwort zur Bestätigung erforderlich.format: password
Beispiel
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

#Einwilligungen lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Einwilligungen ändern

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
analyticsbooleanneinNicht notwendige Analysen erlauben.
marketingbooleanneinMarketingkommunikation erlauben.
Beispiel
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

#Tarife auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Aktuelles Abonnement lesen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
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

#Checkout-Sitzung erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
planstringjaÖffentlicher Tarifcode.enum: starter | pro | enterprise
Beispiel
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

#Webhooks auflisten

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200
Beispiel
bash
curl --request GET \
  --url 'https://api.cdn.pizza/api/webhooks' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
POST /api/webhooks

#Webhook erstellen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
201

Anfragefelder

FeldTypErforderlichBeschreibung
urlstringjaÖffentliche HTTP(S)-Empfänger-URL; HTTPS wird empfohlen.format: uri · length: 0…500
eventsarray<string>jaAbonnierte Ereignisse.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
secretstringneinVom Kunden gewähltes Signaturgeheimnis.length: 0…255
Beispiel
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}

#Webhook löschen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
idintegerjaWebhook-ID.
Beispiel
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

#GraphQL-Abfrage ausführen

Authentifizierung
Persönliches Bearer-Token
Rollen
owner, admin, member, viewer
Erfolg
200

Anfragefelder

FeldTypErforderlichBeschreibung
querystringjaQuery-Dokument; nur vier Root-Felder sind verfügbar.
variablesobjectneinVariablen der Abfrage.
Beispiel
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 } }"}'
KundendokumentationReferenz aus veröffentlichten Schnittstellen generiert