RESTful JSON-API für DynDNS, DNS, Healthchecks, DNS-Failover, CDN, Cloud Router und DNS64.
137 Endpunkte, OpenAPI 3.1, Anmeldung mit deinem API-Key.
Authorization mit.https://ipv64.net/api/v2.curl "https://ipv64.net/api/v2/me" \
-H "Authorization: Bearer DEIN_API_KEY"
Die Antwort zeigt deinen Account, dein Paket und den Verbrauch. Die vollständige Beschreibung gibt es als OpenAPI 3.1 zum Import in Postman, Insomnia, Bruno oder Code-Generatoren.
update.php bleiben unverändert bestehen. Für Router und einfache Geräte ist update.php weiterhin der richtige Weg.Jeder API-Key aus Account > API funktioniert, ebenso der Account-API-Key. Abgelaufene Keys und Keys gesperrter Accounts werden abgelehnt. Zwei Schreibweisen sind möglich:
Authorization: Bearer DEIN_API_KEY
X-API-Key: DEIN_API_KEY
Keys gehören nicht in URLs, weil URLs in Logs und im Browserverlauf landen. Über /api-keys kannst du Keys auch per API anlegen und löschen.
Hat dir jemand in den Settings über die Account-Freigabe die Verwaltung seines Accounts erlaubt, kannst du mit deinem eigenen Key in seinem Account arbeiten. Dazu den Header X-IPv64-Act-As mit seiner Account-ID oder E-Mail mitschicken. Die IDs stehen unter /me/account-links.
curl "https://ipv64.net/api/v2/domains" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "X-IPv64-Act-As: kunde@example.com"
Content-Type: application/json geschickt. Formulardaten gehen auch. Höchstens 1 MB.{"data": ..., "meta": {...}}. meta gibt es nur bei Listen mit Blättern.2026-10-10T12:00:00+02:00. Eingaben ebenso.Allow die erlaubten Methoden. Clients ohne PATCH oder DELETE schicken POST mit X-HTTP-Method-Override./me.Viele Änderungen bei CDN, Cloud Router, DNS64 und DNS-Failover setzen Hintergrunddienste auf den Servern um. Die API antwortet dann mit 202 und dem neuen Zustand. Fertig ist die Änderung, wenn
state auf ready steht,pending leer ist,status nicht mehr auf failover_requested oder fallback_requested steht.Ruf dazu den Eintrag alle paar Sekunden mit GET ab. Während ein Gateway oder Peer eingerichtet wird, antworten weitere Änderungen mit 409 und retry_after.
Logs und Healthcheck-Events werden mit einem Cursor abgerufen statt mit Seitenzahlen. So fehlen keine Einträge, wenn währenddessen neue dazukommen.
limit legt die Anzahl fest.before holt ältere Einträge. Den Wert liefert meta.next_before.after holt neuere Einträge, aufsteigend sortiert. Ideal, um regelmäßig nur Neues abzuholen.since beschränkt auf einen Zeitraum ab einem Zeitpunkt.Die API hat eigene Limits gegen Überlastung, unabhängig vom API-Limit deines Pakets. Sie arbeiten als Token Bucket: Ein Vorrat erlaubt kurze Spitzen und füllt sich gleichmäßig wieder auf.
| Was | Vorrat | Nachfüllen |
|---|---|---|
| Anfragen pro Account | 300 | 10 pro Sekunde |
| Anfragen pro IP-Adresse | 600 | 20 pro Sekunde |
| Fehlgeschlagene Anmeldungen pro IP | 20 | 1 alle 5 Sekunden |
| Testnachrichten pro Healthcheck oder Integration | 1 | 1 alle 30 Sekunden |
| Bestätigungen per E-Mail oder SMS | 3 | 1 alle 10 Minuten |
Jede Antwort enthält die Header RateLimit-Limit und RateLimit-Remaining. Bei Überschreitung kommt 429 mit dem Header Retry-After in Sekunden.
Fehler kommen als application/problem+json nach RFC 9457. Für Programme ist code gedacht, für Menschen detail. Betrifft der Fehler ein Eingabefeld, steht es in field.
HTTP/1.1 422 Unprocessable Content
Content-Type: application/problem+json
{
"type": "https://ipv64.net/api/v2/errors#missing_field",
"title": "Unprocessable Content",
"status": 422,
"detail": "Field 'name' is required.",
"code": "missing_field",
"field": "name"
}
invalid_json | 400 | Der Body ist kein gültiges JSON. |
invalid_parameter | 400 | Ein Query-Parameter hat einen ungültigen Wert. |
missing_parameter | 400 | Ein Pflicht-Query-Parameter fehlt. |
invalid_time | 400 | Ein Zeitpunkt ist nicht im Format ISO 8601. |
payload_too_large | 413 | Der Body ist größer als 1 MB. |
image_too_large | 413 | Das Bild ist größer als 1 MB oder 1024 x 1024 Pixel. |
unsupported_media_type | 415 | Bitte Content-Type application/json verwenden. |
invalid_image | 415 | Nur JPEG, PNG oder WebP. |
unauthenticated | 401 | Es wurde kein API-Key mitgeschickt. |
invalid_token | 401 | Der API-Key ist falsch, abgelaufen oder der Account ist nicht aktiv. |
act_as_denied | 403 | Für den Account im Header X-IPv64-Act-As gibt es keine aktive Account-Freigabe. |
limit_reached | 403 | Das Limit deines Pakets ist erreicht, zum Beispiel die Anzahl der Domains oder Healthchecks. |
plan_required | 403 | Diese Funktion gibt es erst in einem höheren Paket. |
traffic_limit_reached | 403 | Der CDN-Traffic des Monats ist aufgebraucht. |
not_found | 404 | Den Endpunkt oder Eintrag gibt es nicht. |
domain_not_found | 404 | Domain nicht gefunden oder sie gehört nicht zu deinem Account. |
record_not_found | 404 | Record nicht gefunden. |
healthcheck_not_found | 404 | Healthcheck nicht gefunden. |
integration_not_found | 404 | Integration nicht gefunden. Als 422, wenn sie in einer Liste angegeben wurde. |
policy_not_found | 404 | Failover-Policy nicht gefunden. |
monitor_not_found | 404 | Monitor nicht gefunden. |
rule_not_found | 404 | Failover-Regel nicht gefunden. |
status_page_not_found | 404 | Statusseite nicht gefunden. |
offline_page_not_found | 404 | Offline-Page nicht gefunden. |
cdn_not_found | 404 | CDN-Domain nicht gefunden. |
mapping_not_found | 404 | Port-Mapping nicht gefunden. |
router_not_found | 404 | Cloud Router nicht gefunden. |
gateway_not_found | 404 | Gateway nicht gefunden. |
peer_not_found | 404 | Peer nicht gefunden. |
dns64_client_not_found | 404 | DNS64-Client nicht gefunden oder wird gerade gelöscht. |
api_key_not_found | 404 | API-Key nicht gefunden. |
method_not_allowed | 405 | Diese HTTP-Methode gibt es hier nicht. Der Header Allow nennt die erlaubten. |
domain_taken | 409 | Der Domainname ist schon vergeben. |
domain_inactive | 409 | Die Domain ist deaktiviert. |
record_exists | 409 | Genau diesen Record gibt es schon. |
cname_conflict | 409 | Ein CNAME darf nicht neben anderen Records auf demselben Präfix stehen. |
record_locked | 409 | Der Record wird vom CDN oder DNS-Failover verwaltet. |
failover_active | 409 | Ein DNS-Failover ist gerade aktiv. Erst zurückschalten. |
invalid_state | 409 | Die Aktion passt nicht zum aktuellen Zustand, zum Beispiel Fallback ohne aktiven Failover. |
monitor_exists | 409 | Dieser Healthcheck ist schon Monitor der Policy. |
rule_exists | 409 | Dieser Record ist schon in einer Failover-Policy. |
in_use | 409 | Die Offline-Page wird noch von einer Failover-Regel genutzt. |
slug_taken | 409 | Die Adresse der Statusseite ist schon vergeben. |
integration_pending | 409 | Die Integration ist noch nicht bestätigt. |
cannot_delete_current_key | 409 | Ein API-Key kann sich nicht selbst löschen. |
cdn_exists | 409 | Die Domain ist schon im CDN. |
cdn_server_pending | 409 | Der CDN-Server wird noch zugewiesen. Kurz warten. |
cdn_deleting | 409 | Die CDN-Domain wird gerade gelöscht. |
records_enabled | 409 | Erst das CDN für alle Records abschalten. |
no_records | 409 | Erst mindestens einen Record über das CDN leiten. |
proxy_disabled | 409 | Erst den Reverse Proxy einschalten. |
already_enabled | 409 | Der Record läuft schon über das CDN. |
not_enabled | 409 | Der Record läuft nicht über diese CDN-Domain. |
certificate_pending | 409 | Ein Zertifikat wird gerade ausgestellt. |
move_pending | 409 | Ein Serverumzug läuft bereits. |
mapping_exists | 409 | Dieses Port-Mapping gibt es schon. |
port_in_use | 409 | Der gewünschte Port ist auf dem CDN-Server belegt. |
exists | 409 | Der Eintrag steht schon in der Liste. |
duplicate | 409 | Diesen Port-Forward gibt es schon. |
gateway_busy | 409 | Das Gateway wird gerade eingerichtet. retry_after nennt die Wartezeit. |
gateway_deleting | 409 | Das Gateway wird gerade gelöscht. |
router_busy | 409 | Der Cloud Router hat noch keinen Server. |
peer_busy | 409 | Der Peer wird gerade eingerichtet. |
peer_deleting | 409 | Der Peer wird gerade gelöscht. |
busy | 409 | Der Eintrag wird gerade umgesetzt. Kurz warten. |
ospf_deleting | 409 | OSPF wird gerade entfernt. |
address_in_use | 409 | Die Tunnel-Adresse nutzt schon ein anderer Peer. |
no_public_ip | 409 | Der Router hat noch keine öffentliche IP dieser Familie. |
system_route | 409 | Systemrouten können nicht gelöscht werden. |
missing_field | 422 | Ein Pflichtfeld fehlt oder ist leer. field nennt das Feld. |
invalid_field | 422 | Ein Feld hat ein falsches Format. field nennt das Feld. |
out_of_range | 422 | Eine Zahl liegt außerhalb des erlaubten Bereichs. |
invalid_type | 422 | Unbekannter Typ, zum Beispiel beim Record oder Healthcheck. |
invalid_domain | 422 | Der Domainname ist nicht erlaubt. |
invalid_record | 422 | Der Inhalt passt nicht zum Record-Typ oder der Record ist hier nicht erlaubt. |
rejected_by_nameserver | 422 | Der Nameserver hat den Record abgelehnt. Details stehen im Account-Log. |
invalid_healthcheck | 422 | Die Healthcheck-Einstellungen sind ungültig. |
invalid_interval | 422 | Die Sekunden lassen sich nicht als ganze Minuten, Stunden oder Tage darstellen. |
interval_too_low | 422 | Das Intervall ist für dein Paket zu kurz. |
invalid_target | 422 | Das Ziel ist ungültig, nicht auflösbar oder nicht erlaubt. |
invalid_url | 422 | Die URL muss mit http:// oder https:// beginnen. |
internal_target | 422 | Die URL zeigt auf eine private oder reservierte Adresse. |
invalid_key | 422 | Der WireGuard-Schlüssel ist ungültig oder das Paar passt nicht. |
family_mismatch | 422 | Quelle und Ziel gehören zu verschiedenen IP-Familien. |
missing_file | 422 | Die Datei fehlt im Multipart-Feld. |
too_many | 422 | Zu viele Einträge auf einmal. |
rate_limited | 429 | Zu viele Anfragen. Nach Retry-After Sekunden erneut versuchen. |
internal_error | 500 | Unerwarteter Fehler. Bitte mit Uhrzeit melden. |
database_error | 500 | Datenbankfehler. |
unknown_result | 500 | Die Aktion lieferte ein unerwartetes Ergebnis. |
no_free_port | 503 | Auf dem CDN-Server ist kein Port mehr frei. |
Ohne ipv4 und ipv6 nimmt die API die Adresse, von der die Anfrage kommt.
curl -X POST "https://ipv64.net/api/v2/domains/meinname.ipv64.de/dyndns" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prefix":"nas","ipv6":"2001:db8::10"}'
TXT-Record anlegen, warten bis das Zertifikat ausgestellt ist, dann genau diesen Record wieder löschen.
curl -X POST "https://ipv64.net/api/v2/domains/meinname.ipv64.de/records" \
-H "Authorization: Bearer DEIN_API_KEY" -H "Content-Type: application/json" \
-d '{"type":"TXT","prefix":"_acme-challenge","content":"TOKEN_VOM_ACME_CLIENT"}'
curl -X DELETE "https://ipv64.net/api/v2/domains/meinname.ipv64.de/records?type=TXT&prefix=_acme-challenge&content=TOKEN_VOM_ACME_CLIENT" \
-H "Authorization: Bearer DEIN_API_KEY"
Der Check erwartet einmal am Tag einen Ping und schlägt nach einer Stunde Kulanz Alarm. Die Ping-Adresse steht danach in data.push.url.
curl -X POST "https://ipv64.net/api/v2/healthchecks" \
-H "Authorization: Bearer DEIN_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Backup NAS","type":"push","period_seconds":86400,"grace_seconds":3600,"integrations":[0]}'
Die höchste bekannte Event-ID merken und beim nächsten Mal als after übergeben.
curl "https://ipv64.net/api/v2/healthchecks/HEALTHCHECK_TOKEN/events?after=1057264859&limit=500" \
-H "Authorization: Bearer DEIN_API_KEY"
Öffentliche Endpunkte ohne Anmeldung.
/
API-Info
ohne Anmeldung curl "https://ipv64.net/api/v2/"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.name | string | Name |
data.version | string | Version |
data.documentation | string | Doku |
data.time | datetime | Serverzeit |
/health
Verfügbarkeit der API
ohne Anmeldung Prüft auch die Datenbankverbindung. Geeignet für Monitoring.
curl "https://ipv64.net/api/v2/health"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.status | string | Status |
data.version | string | Version |
/ip
Eigene öffentliche IP
ohne Anmeldung Liefert die Adresse, mit der du die API erreichst.
curl "https://ipv64.net/api/v2/ip"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.ip | string | IP-Adresse |
data.family | string | Familie Werte: ipv4, ipv6. |
/openapi.json
Diese Beschreibung als OpenAPI 3.1
ohne Anmeldung Zum Import in Postman, Insomnia, Bruno oder für Code-Generatoren.
curl "https://ipv64.net/api/v2/openapi.json"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | OpenAPI-Dokument (ohne data-Hülle) |
Account, Nutzung, Logs und Account-Freigaben.
/me
Account und Nutzung
Zeigt Paket, Verbrauch und Limits sowie die verwendete Anmeldung.
curl "https://ipv64.net/api/v2/me" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Account-ID |
data.email | string | E-Mail-Adresse |
data.username | string | null | Benutzername |
data.registered_at | datetime | null | Registriert seit |
data.last_login_at | datetime | null | Letzter Login auf der Webseite |
data.plan | object | |
data.plan.id | integer | Paket-ID |
data.plan.name | string | Paketname |
data.plan.valid_until | datetime | null | Laufzeitende, null beim Free-Paket |
data.usage | object | |
data.usage.dyndns_domains | object | DynDNS-Domains |
data.usage.dyndns_domains.used | number | Verbraucht |
data.usage.dyndns_domains.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.own_domains | object | Eigene Domains |
data.usage.own_domains.used | number | Verbraucht |
data.usage.own_domains.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.dyndns_updates_24h | object | DynDNS-Updates der letzten 24 Stunden |
data.usage.dyndns_updates_24h.used | number | Verbraucht |
data.usage.dyndns_updates_24h.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.healthchecks | object | Healthchecks |
data.usage.healthchecks.used | number | Verbraucht |
data.usage.healthchecks.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.healthcheck_pings_24h | object | Healthcheck-Pings der letzten 24 Stunden |
data.usage.healthcheck_pings_24h.used | number | Verbraucht |
data.usage.healthcheck_pings_24h.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.sms_24h | object | SMS der letzten 24 Stunden |
data.usage.sms_24h.used | number | Verbraucht |
data.usage.sms_24h.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.failover_policies | object | DNS-Failover-Policies |
data.usage.failover_policies.used | number | Verbraucht |
data.usage.failover_policies.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.failover_monitors | object | DNS-Failover-Monitore |
data.usage.failover_monitors.used | number | Verbraucht |
data.usage.failover_monitors.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.failover_rules | object | DNS-Failover-Regeln |
data.usage.failover_rules.used | number | Verbraucht |
data.usage.failover_rules.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.cdn_domains | object | CDN-Domains |
data.usage.cdn_domains.used | number | Verbraucht |
data.usage.cdn_domains.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.cdn_traffic_gb | object | CDN-Traffic im aktuellen Monat in GB |
data.usage.cdn_traffic_gb.used | number | Verbraucht |
data.usage.cdn_traffic_gb.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.usage.vpn_traffic_gb | object | Cloud-Router-Traffic in GB |
data.usage.vpn_traffic_gb.used | number | Verbraucht |
data.usage.vpn_traffic_gb.limit | integer | Limit in GB |
data.usage.vpn_traffic_gb.limited | boolean | Traffic-Limit erreicht |
data.usage.dns64_clients | object | DNS64-Clients |
data.usage.dns64_clients.used | number | Verbraucht |
data.usage.dns64_clients.limit | integer | null | Limit des Pakets, null = unbegrenzt |
data.log_retention_days | integer | So viele Tage werden Logs aufbewahrt |
data.auth | object | Verwendete Anmeldung |
data.auth.type | string | Art des Schlüssels Werte: api_key, account_key. |
data.auth.key_id | integer | null | ID des API-Keys |
data.auth.key_name | string | Name des API-Keys |
data.auth.acting_for | integer | Bei X-IPv64-Act-As: Account, für den gehandelt wird |
data.auth.acting_by | integer | Bei X-IPv64-Act-As: eigener Account |
Mögliche Fehler: 401429 Fehlercodes
/me/logs
Account-Log
Neueste Einträge zuerst. Zum Weiterblättern meta.next_before als before übergeben. Es werden nur Einträge innerhalb der Aufbewahrungszeit des Pakets geliefert.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
limit | Query, integer | Anzahl (1 bis 500) Standard: 50. | |
before | Query, integer | Nur Einträge mit kleinerer ID (Cursor) | |
since | Query, datetime | Nur Einträge ab diesem Zeitpunkt (ISO 8601) |
curl "https://ipv64.net/api/v2/me/logs" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | Log-ID, auch Cursor für before |
data[].domain_id | integer | null | Betroffene Domain |
data[].title | string | Kategorie |
data[].message | string | Text |
data[].time | datetime | Zeitpunkt |
meta | object | |
meta.limit | integer | Limit |
meta.next_before | integer | null | Cursor für die nächste Seite, null = Ende |
meta.retention_days | integer | Aufbewahrung |
Mögliche Fehler: 400401429 Fehlercodes
/me/account-links
Account-Freigaben
shared_with: wer deinen Account verwalten darf. managed: welche Accounts du verwalten darfst. Mit dem Header X-IPv64-Act-As handelst du für einen verwalteten Account.
curl "https://ipv64.net/api/v2/me/account-links" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.shared_with | object[] | |
data.shared_with[].id | integer | ID der Freigabe |
data.shared_with[].direction | string | shared_with = du hast freigegeben, managed = du verwaltest Werte: shared_with, managed. |
data.shared_with[].email | string | E-Mail des anderen Accounts |
data.shared_with[].status | string | Status Werte: active, pending. |
data.shared_with[].created_at | datetime | null | Angelegt |
data.shared_with[].last_used_at | datetime | null | Zuletzt benutzt |
data.shared_with[].account_id | integer | Nur bei managed: ID für X-IPv64-Act-As |
data.managed | object[] | |
data.managed[].id | integer | ID der Freigabe |
data.managed[].direction | string | shared_with = du hast freigegeben, managed = du verwaltest Werte: shared_with, managed. |
data.managed[].email | string | E-Mail des anderen Accounts |
data.managed[].status | string | Status Werte: active, pending. |
data.managed[].created_at | datetime | null | Angelegt |
data.managed[].last_used_at | datetime | null | Zuletzt benutzt |
data.managed[].account_id | integer | Nur bei managed: ID für X-IPv64-Act-As |
Mögliche Fehler: 401429 Fehlercodes
Dieselben Keys wie im Menü Account > API.
/api-keys
Alle API-Keys
Die Keys selbst werden nie wieder angezeigt, nur Anfang und Ende.
curl "https://ipv64.net/api/v2/api-keys" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].name | string | Name |
data[].token_hint | string | Anfang und Ende des Keys |
data[].created_at | datetime | null | Angelegt |
data[].expires_at | datetime | null | Ablauf, null = nie |
data[].expired | boolean | Abgelaufen |
data[].uses | integer | Anzahl Aufrufe |
Mögliche Fehler: 401429 Fehlercodes
/api-keys
API-Key anlegen
Der vollständige Key steht nur in dieser Antwort.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
expires_in | integer | Gültigkeit in Sekunden, 0 = unbegrenzt Bereich: 0 bis 315360000. |
curl -X POST "https://ipv64.net/api/v2/api-keys" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Backup-Server","expires_in":2592000}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Name |
data.token_hint | string | Anfang und Ende des Keys |
data.created_at | datetime | null | Angelegt |
data.expires_at | datetime | null | Ablauf, null = nie |
data.expired | boolean | Abgelaufen |
data.uses | integer | Anzahl Aufrufe |
data.token | string | Der vollständige Key. Wird nur dieses eine Mal angezeigt. |
Mögliche Fehler: 401422429 Fehlercodes
/api-keys/{id}
API-Key löschen
Der Key, mit dem du gerade angemeldet bist, kann sich nicht selbst löschen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/api-keys/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
DynDNS-Domains und eigene Domains. Überall, wo {domain} steht, geht die ID oder der vollständige Name.
/domains
Alle Domains
| Feld | Typ | Beschreibung | |
|---|---|---|---|
kind | Query, string | Nur DynDNS- oder nur eigene Domains Werte: dyndns, own. |
curl "https://ipv64.net/api/v2/domains" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | Domain-ID |
data[].name | string | Vollständiger Name |
data[].kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data[].zone | string | Zone |
data[].wildcard | boolean | Wildcard-Records *.name aktiv |
data[].ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data[].ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data[].active | boolean | Domain aktiv |
data[].update_token | string | Domain-Update-Token für update.php |
data[].update_count | integer | Anzahl DynDNS-Updates |
data[].created_at | datetime | null | Angelegt |
data[].updated_at | datetime | null | Letztes Update |
Mögliche Fehler: 400401429 Fehlercodes
/domains
Domain anlegen
DynDNS-Domain: name als <wunschname>.<zone>, Zonen: ipv64.net, ipv64.de, any64.de, api64.de, dns64.de, dyndns64.de, dynipv6.de, eth64.de, home64.de, iot64.de, lan64.de, nas64.de, root64.de, route64.de, srv64.de, tcp64.de, udp64.de, vpn64.de, wan64.de. Eigene Domain: own auf true setzen und danach die Nameserver ns1.ipv64.net und ns2.ipv64.net beim Registrar eintragen. Die Limits deines Pakets gelten.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Pflicht | Domainname |
own | boolean | Eigene Domain statt DynDNS |
curl -X POST "https://ipv64.net/api/v2/domains" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"meinname.ipv64.de"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Domain-ID |
data.name | string | Vollständiger Name |
data.kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data.zone | string | Zone |
data.wildcard | boolean | Wildcard-Records *.name aktiv |
data.ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data.ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data.active | boolean | Domain aktiv |
data.update_token | string | Domain-Update-Token für update.php |
data.update_count | integer | Anzahl DynDNS-Updates |
data.created_at | datetime | null | Angelegt |
data.updated_at | datetime | null | Letztes Update |
data.records | object[] | Alle Records der Domain |
data.records[].id | integer | Record-ID |
data.records[].domain_id | integer | Domain-ID |
data.records[].domain | string | Domain |
data.records[].prefix | string | Präfix, leer = Domain selbst |
data.records[].fqdn | string | Vollständiger Name |
data.records[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.records[].content | string | Inhalt |
data.records[].ttl | integer | TTL in Sekunden |
data.records[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.records[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.records[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.records[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401403409422429 Fehlercodes
/domains/{domain}
Domain mit Records
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
curl "https://ipv64.net/api/v2/domains/beispiel.ipv64.de" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Domain-ID |
data.name | string | Vollständiger Name |
data.kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data.zone | string | Zone |
data.wildcard | boolean | Wildcard-Records *.name aktiv |
data.ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data.ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data.active | boolean | Domain aktiv |
data.update_token | string | Domain-Update-Token für update.php |
data.update_count | integer | Anzahl DynDNS-Updates |
data.created_at | datetime | null | Angelegt |
data.updated_at | datetime | null | Letztes Update |
data.records | object[] | Alle Records der Domain |
data.records[].id | integer | Record-ID |
data.records[].domain_id | integer | Domain-ID |
data.records[].domain | string | Domain |
data.records[].prefix | string | Präfix, leer = Domain selbst |
data.records[].fqdn | string | Vollständiger Name |
data.records[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.records[].content | string | Inhalt |
data.records[].ttl | integer | TTL in Sekunden |
data.records[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.records[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.records[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.records[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404429 Fehlercodes
/domains/{domain}
Domain-Einstellungen ändern
Nur mitgeschickte Felder werden geändert.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
wildcard | boolean | Wildcard *.name an oder aus | |
ignore | string | Adressfamilie bei DynDNS-Updates ignorieren Werte: none, ipv4, ipv6. | |
ipv6_prefix | string | Fester IPv6-Präfix wie 2001:db8:1234:5600::/56, leer = aus |
curl -X PATCH "https://ipv64.net/api/v2/domains/beispiel.ipv64.de" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"wildcard":true,"ignore":"none"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Domain-ID |
data.name | string | Vollständiger Name |
data.kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data.zone | string | Zone |
data.wildcard | boolean | Wildcard-Records *.name aktiv |
data.ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data.ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data.active | boolean | Domain aktiv |
data.update_token | string | Domain-Update-Token für update.php |
data.update_count | integer | Anzahl DynDNS-Updates |
data.created_at | datetime | null | Angelegt |
data.updated_at | datetime | null | Letztes Update |
data.records | object[] | Alle Records der Domain |
data.records[].id | integer | Record-ID |
data.records[].domain_id | integer | Domain-ID |
data.records[].domain | string | Domain |
data.records[].prefix | string | Präfix, leer = Domain selbst |
data.records[].fqdn | string | Vollständiger Name |
data.records[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.records[].content | string | Inhalt |
data.records[].ttl | integer | TTL in Sekunden |
data.records[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.records[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.records[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.records[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404422429 Fehlercodes
/domains/{domain}
Domain löschen
Löscht die Domain mit allen Records. Nicht möglich, solange ein DNS-Failover aktiv ist.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
curl -X DELETE "https://ipv64.net/api/v2/domains/beispiel.ipv64.de" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
/domains/{domain}/rotate-token
Neuen Domain-Update-Token erzeugen
Der alte Token für update.php ist sofort ungültig.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
curl -X POST "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/rotate-token" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Domain-ID |
data.name | string | Vollständiger Name |
data.kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data.zone | string | Zone |
data.wildcard | boolean | Wildcard-Records *.name aktiv |
data.ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data.ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data.active | boolean | Domain aktiv |
data.update_token | string | Domain-Update-Token für update.php |
data.update_count | integer | Anzahl DynDNS-Updates |
data.created_at | datetime | null | Angelegt |
data.updated_at | datetime | null | Letztes Update |
Mögliche Fehler: 401404429 Fehlercodes
/domains/{domain}/reset
Domain zurücksetzen
Löscht alle aktiven Records und setzt die Zone neu auf.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
curl -X POST "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/reset" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Domain-ID |
data.name | string | Vollständiger Name |
data.kind | string | dyndns oder own (eigene Domain) Werte: dyndns, own. |
data.zone | string | Zone |
data.wildcard | boolean | Wildcard-Records *.name aktiv |
data.ignore | string | Diese Adressfamilie wird bei DynDNS-Updates ignoriert Werte: none, ipv4, ipv6. |
data.ipv6_prefix | string | null | Fester IPv6-Präfix für Interface-IDs |
data.active | boolean | Domain aktiv |
data.update_token | string | Domain-Update-Token für update.php |
data.update_count | integer | Anzahl DynDNS-Updates |
data.created_at | datetime | null | Angelegt |
data.updated_at | datetime | null | Letztes Update |
data.records | object[] | Alle Records der Domain |
data.records[].id | integer | Record-ID |
data.records[].domain_id | integer | Domain-ID |
data.records[].domain | string | Domain |
data.records[].prefix | string | Präfix, leer = Domain selbst |
data.records[].fqdn | string | Vollständiger Name |
data.records[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.records[].content | string | Inhalt |
data.records[].ttl | integer | TTL in Sekunden |
data.records[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.records[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.records[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.records[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404409429 Fehlercodes
IP-Updates über die API. Für Router und einfache Geräte bleibt update.php der richtige Weg.
/domains/{domain}/dyndns
IP aktualisieren
Setzt A- und AAAA-Records einer Domain oder eines Präfixes. Ohne ipv4 und ipv6 wird die Absenderadresse verwendet. Nur öffentliche Adressen sind erlaubt. Fehlende Records werden angelegt. Das Update zählt in der Statistik, ist über die API aber nicht durch das Tageslimit begrenzt.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
ipv4 | string | IPv4-Adresse | |
ipv6 | string | IPv6-Adresse | |
prefix | string | Präfix, leer = Domain selbst |
curl -X POST "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/dyndns" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ipv4":"203.0.113.10","ipv6":"2001:db8::10"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.domain | string | Domain |
data.prefix | string | Präfix |
data.changed | boolean | Mindestens ein Record geändert |
data.results | object[] | |
data.results[].ip | string | IP |
data.results[].type | string | A oder AAAA |
data.results[].result | string | Ergebnis je IP Werte: created, updated, unchanged, ignored, invalid_ip, cname_conflict, cdn_managed. |
Mögliche Fehler: 401404409422429 Fehlercodes
Records einer Domain. {record} ist die ID oder der Record-Token.
/domains/{domain}/records
Records einer Domain
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
type | Query, string | Nur dieser Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. | |
prefix | Query, string | Nur dieser Präfix |
curl "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/records" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | Record-ID |
data[].domain_id | integer | Domain-ID |
data[].domain | string | Domain |
data[].prefix | string | Präfix, leer = Domain selbst |
data[].fqdn | string | Vollständiger Name |
data[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data[].content | string | Inhalt |
data[].ttl | integer | TTL in Sekunden |
data[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 400401404429 Fehlercodes
/domains/{domain}/records
Record anlegen
TTL ist fest 60 Sekunden. Formate je Typ wie in der Weboberfläche, zum Beispiel MX als "10 mail.example.com".
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
type | string | Pflicht | Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
prefix | string | Präfix, leer oder @ = Domain selbst | |
content | string | Pflicht | Inhalt |
curl -X POST "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/records" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"TXT","prefix":"_acme-challenge","content":"gfj9Xq...Rg85nM"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Record-ID |
data.domain_id | integer | Domain-ID |
data.domain | string | Domain |
data.prefix | string | Präfix, leer = Domain selbst |
data.fqdn | string | Vollständiger Name |
data.type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.content | string | Inhalt |
data.ttl | integer | TTL in Sekunden |
data.state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404409422429 Fehlercodes
/domains/{domain}/records
Record nach Inhalt löschen
Praktisch für ACME-Clients: löscht den Record mit genau diesem Typ, Präfix und Inhalt.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | Pfad, string | Pflicht | Domain-ID oder vollständiger Name, z. B. beispiel.ipv64.de |
type | Query, string | Pflicht | Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
content | Query, string | Pflicht | Inhalt |
prefix | Query, string | Präfix |
curl -X DELETE "https://ipv64.net/api/v2/domains/beispiel.ipv64.de/records?type=TXT&content=gfj9Xq...Rg85nM" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 400401404429 Fehlercodes
/records/{record}
Einzelner Record
| Feld | Typ | Beschreibung | |
|---|---|---|---|
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
curl "https://ipv64.net/api/v2/records/4711" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Record-ID |
data.domain_id | integer | Domain-ID |
data.domain | string | Domain |
data.prefix | string | Präfix, leer = Domain selbst |
data.fqdn | string | Vollständiger Name |
data.type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.content | string | Inhalt |
data.ttl | integer | TTL in Sekunden |
data.state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404429 Fehlercodes
/records/{record}
Record ändern
Ändert sich nur die IP eines A- oder AAAA-Records, bleiben ID und Token erhalten. Bei anderen Änderungen wird der Record ersetzt und bekommt eine neue ID und einen neuen Token. Records, die vom CDN oder DNS-Failover verwaltet werden, sind gesperrt.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
type | string | Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. | |
prefix | string | Präfix | |
content | string | Inhalt |
curl -X PATCH "https://ipv64.net/api/v2/records/4711" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content":"203.0.113.20"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Record-ID |
data.domain_id | integer | Domain-ID |
data.domain | string | Domain |
data.prefix | string | Präfix, leer = Domain selbst |
data.fqdn | string | Vollständiger Name |
data.type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.content | string | Inhalt |
data.ttl | integer | TTL in Sekunden |
data.state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404409422429 Fehlercodes
/records/{record}
Record löschen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
curl -X DELETE "https://ipv64.net/api/v2/records/4711" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
Push-Checks (dein System meldet sich) und aktive Checks (ICMP, TCP, HTTP, Keyword). {token} ist der Healthcheck-Token.
/healthchecks
Alle Healthchecks
| Feld | Typ | Beschreibung | |
|---|---|---|---|
type | Query, string | Nur diese Art Werte: push, icmp, tcp, http, keyword. | |
status | Query, string | Nur dieser Status Werte: new, up, paused, warning, down, stabilizing. |
curl "https://ipv64.net/api/v2/healthchecks" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].token | string | Healthcheck-Token, identifiziert den Check |
data[].name | string | Name |
data[].type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data[].status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data[].notify | object | |
data[].notify.on_down | boolean | Bei DOWN benachrichtigen |
data[].notify.on_up | boolean | Bei UP benachrichtigen |
data[].notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data[].created_at | datetime | null | Angelegt |
data[].last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data[].last_alarm_at | datetime | null | Letzter Alarm |
data[].pings_total | integer | Anzahl Pings |
data[].failed_in_row | integer | Fehlschläge in Folge |
data[].push | object | Nur bei type push |
data[].push.url | string | Diese URL pingt dein System an |
data[].push.period_seconds | integer | Erwarteter Abstand der Pings |
data[].push.grace_seconds | integer | Kulanzzeit |
data[].push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data[].check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data[].check.target | string | Ziel bei icmp und tcp |
data[].check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data[].check.port | integer | Port bei tcp |
data[].check.url | string | URL bei http und keyword |
data[].check.verify_tls | boolean | Zertifikat prüfen |
data[].check.keyword | string | Suchbegriff bei keyword |
data[].check.interval_seconds | integer | Prüfintervall |
data[].check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data[].check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data[].check.next_check_at | datetime | null | Nächste Prüfung |
Mögliche Fehler: 400401429 Fehlercodes
/healthchecks
Healthcheck anlegen
Push-Check: Danach push.url aus der Antwort regelmäßig aufrufen. Aktive Checks: target bzw. url ist Pflicht.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Pflicht | Name |
type | string | Art. Erlaubt sind auch die Namen der Weboberfläche: health, ping, web. Werte: push, icmp, tcp, http, keyword. | |
integrations | integer[] | Integrationen für Benachrichtigungen, 0 = Account-E-Mail | |
notify_on_down | boolean | Bei DOWN benachrichtigen | |
notify_on_up | boolean | Bei UP benachrichtigen | |
period_seconds | integer | push: erwarteter Abstand der Pings. Ganze Minuten, Stunden oder Tage. Bereich: 60 bis …. | |
grace_seconds | integer | push: Kulanzzeit nach Ablauf der Periode. Ganze Minuten, Stunden oder Tage. Bereich: 60 bis …. | |
target | string | icmp und tcp: Hostname oder IP | |
prefer_ipv4 | boolean | icmp und tcp: IPv4 bevorzugen | |
port | integer | tcp: Port Bereich: 1 bis 65535. | |
url | string | http und keyword: URL | |
verify_tls | boolean | http und keyword: Zertifikat prüfen | |
keyword | string | keyword: Text, der auf der Seite stehen muss | |
interval_seconds | integer | Aktive Checks: Prüfintervall. Free-Paket mindestens 120 Sekunden. Bereich: 1 bis 86400. | |
retry_interval_seconds | integer | Aktive Checks: Intervall nach einem Fehler, mindestens 10 Sekunden Bereich: 1 bis 86400. | |
failures_before_alarm | integer | Aktive Checks: Fehlschläge bis zum Alarm Bereich: 1 bis 60. |
curl -X POST "https://ipv64.net/api/v2/healthchecks" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Webseite","type":"http","url":"https://example.com/","interval_seconds":300,"integrations":[0]}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
data.recent | object[] | Die letzten 20 Events |
data.recent[].id | integer | Event-ID, auch Cursor |
data.recent[].time | datetime | Zeitpunkt |
data.recent[].status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.recent[].message | string | Text |
data.recent[].latency_ms | number | null | Antwortzeit |
data.recent[].payload | object | null | Zusatzdaten des Pings |
Mögliche Fehler: 401403422429 Fehlercodes
/healthchecks/{token}
Healthcheck mit den letzten Events
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
data.recent | object[] | Die letzten 20 Events |
data.recent[].id | integer | Event-ID, auch Cursor |
data.recent[].time | datetime | Zeitpunkt |
data.recent[].status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.recent[].message | string | Text |
data.recent[].latency_ms | number | null | Antwortzeit |
data.recent[].payload | object | null | Zusatzdaten des Pings |
Mögliche Fehler: 401404429 Fehlercodes
/healthchecks/{token}
Healthcheck ändern
Nur mitgeschickte Felder werden geändert. Ein Wechsel von type setzt die Prüf-Einstellungen zurück.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
type | string | Art. Erlaubt sind auch die Namen der Weboberfläche: health, ping, web. Werte: push, icmp, tcp, http, keyword. | |
integrations | integer[] | Integrationen für Benachrichtigungen, 0 = Account-E-Mail | |
notify_on_down | boolean | Bei DOWN benachrichtigen | |
notify_on_up | boolean | Bei UP benachrichtigen | |
period_seconds | integer | push: erwarteter Abstand der Pings. Ganze Minuten, Stunden oder Tage. Bereich: 60 bis …. | |
grace_seconds | integer | push: Kulanzzeit nach Ablauf der Periode. Ganze Minuten, Stunden oder Tage. Bereich: 60 bis …. | |
target | string | icmp und tcp: Hostname oder IP | |
prefer_ipv4 | boolean | icmp und tcp: IPv4 bevorzugen | |
port | integer | tcp: Port Bereich: 1 bis 65535. | |
url | string | http und keyword: URL | |
verify_tls | boolean | http und keyword: Zertifikat prüfen | |
keyword | string | keyword: Text, der auf der Seite stehen muss | |
interval_seconds | integer | Aktive Checks: Prüfintervall. Free-Paket mindestens 120 Sekunden. Bereich: 1 bis 86400. | |
retry_interval_seconds | integer | Aktive Checks: Intervall nach einem Fehler, mindestens 10 Sekunden Bereich: 1 bis 86400. | |
failures_before_alarm | integer | Aktive Checks: Fehlschläge bis zum Alarm Bereich: 1 bis 60. |
curl -X PATCH "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"interval_seconds":60,"failures_before_alarm":2}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
data.recent | object[] | Die letzten 20 Events |
data.recent[].id | integer | Event-ID, auch Cursor |
data.recent[].time | datetime | Zeitpunkt |
data.recent[].status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.recent[].message | string | Text |
data.recent[].latency_ms | number | null | Antwortzeit |
data.recent[].payload | object | null | Zusatzdaten des Pings |
Mögliche Fehler: 401404422429 Fehlercodes
/healthchecks/{token}
Healthcheck löschen
Nicht möglich, solange der Check einen aktiven DNS-Failover steuert.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
/healthchecks/{token}/pause
Pausieren
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/pause" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
Mögliche Fehler: 401404409429 Fehlercodes
/healthchecks/{token}/resume
Fortsetzen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/resume" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
Mögliche Fehler: 401403404429 Fehlercodes
/healthchecks/{token}/rotate-token
Neuen Token erzeugen
Die Push-URL ändert sich dadurch. Events, Incidents und Failover-Monitore werden mitgenommen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/rotate-token" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.token | string | Healthcheck-Token, identifiziert den Check |
data.name | string | Name |
data.type | string | Art des Checks Werte: push, icmp, tcp, http, keyword. |
data.status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data.notify | object | |
data.notify.on_down | boolean | Bei DOWN benachrichtigen |
data.notify.on_up | boolean | Bei UP benachrichtigen |
data.notify.integrations | integer[] | IDs der Integrationen, 0 = Account-E-Mail |
data.created_at | datetime | null | Angelegt |
data.last_seen_at | datetime | null | Letzter Ping oder letzte Prüfung |
data.last_alarm_at | datetime | null | Letzter Alarm |
data.pings_total | integer | Anzahl Pings |
data.failed_in_row | integer | Fehlschläge in Folge |
data.push | object | Nur bei type push |
data.push.url | string | Diese URL pingt dein System an |
data.push.period_seconds | integer | Erwarteter Abstand der Pings |
data.push.grace_seconds | integer | Kulanzzeit |
data.push.expected_by | datetime | null | Spätester Zeitpunkt für den nächsten Ping |
data.check | object | null | Nur bei aktiven Checks (icmp, tcp, http, keyword). null, solange noch nichts eingestellt ist. |
data.check.target | string | Ziel bei icmp und tcp |
data.check.prefer_ipv4 | boolean | IPv4 bevorzugen |
data.check.port | integer | Port bei tcp |
data.check.url | string | URL bei http und keyword |
data.check.verify_tls | boolean | Zertifikat prüfen |
data.check.keyword | string | Suchbegriff bei keyword |
data.check.interval_seconds | integer | Prüfintervall |
data.check.retry_interval_seconds | integer | Intervall nach einem Fehler |
data.check.failures_before_alarm | integer | Fehlschläge bis zum Alarm |
data.check.next_check_at | datetime | null | Nächste Prüfung |
Mögliche Fehler: 401404429 Fehlercodes
/healthchecks/{token}/events
Events
Ohne Cursor die neuesten zuerst. Mit after werden ältere zuerst geliefert, ideal zum fortlaufenden Abholen neuer Events.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
limit | Query, integer | Anzahl (1 bis 1000) Standard: 100. | |
before | Query, integer | Nur Events mit kleinerer ID | |
after | Query, integer | Nur Events mit größerer ID, aufsteigend sortiert | |
since | Query, datetime | Nur Events ab diesem Zeitpunkt (ISO 8601) |
curl "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/events" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | Event-ID, auch Cursor |
data[].time | datetime | Zeitpunkt |
data[].status | string | Status Werte: new, up, paused, warning, down, stabilizing. |
data[].message | string | Text |
data[].latency_ms | number | null | Antwortzeit |
data[].payload | object | null | Zusatzdaten des Pings |
meta | object | |
meta.limit | integer | Limit |
meta.has_more | boolean | Weitere Events vorhanden |
meta.next_before | integer | null | Cursor ohne after |
meta.next_after | integer | null | Cursor mit after |
Mögliche Fehler: 400401404429 Fehlercodes
/healthchecks/{token}/incidents
Incidents
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
limit | Query, integer | Anzahl (1 bis 500) Standard: 50. |
curl "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/incidents" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].status | string | Status Werte: open, closed. |
data[].created_at | datetime | null | Beginn |
data[].closed_at | datetime | null | Ende |
data[].events | object[] | |
data[].events[].time | datetime | null | Zeitpunkt |
data[].events[].kind | string | Art |
data[].events[].message | string | Text |
Mögliche Fehler: 400401404429 Fehlercodes
/healthchecks/{token}/stats
Verfügbarkeit und Latenz
Berechnet aus den gespeicherten Events, mit Zeitreihe.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
range | Query, string | Zeitraum Werte: 1h, 24h, 7d, 30d. Standard: 24h. |
curl "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/stats" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.range | string | Zeitraum |
data.from | datetime | null | Beginn |
data.to | datetime | null | Ende |
data.measurements | integer | Anzahl Messungen |
data.availability_percent | number | null | Verfügbarkeit |
data.latency_ms | object | |
data.latency_ms.avg | number | null | Durchschnitt |
data.latency_ms.min | number | null | Minimum |
data.latency_ms.max | number | null | Maximum |
data.bucket_seconds | integer | Breite eines Zeitreihen-Punkts |
data.series | object[] | |
data.series[].time | datetime | Beginn des Intervalls |
data.series[].measurements | integer | Messungen |
data.series[].availability_percent | number | Verfügbarkeit |
data.series[].latency_avg_ms | number | null | Durchschnitt |
data.series[].latency_max_ms | number | null | Maximum |
Mögliche Fehler: 400401404429 Fehlercodes
/healthchecks/{token}/test-notification
Testnachricht senden
An alle Integrationen des Checks. Höchstens eine pro 30 Sekunden.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/healthchecks/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/test-notification" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.sent | boolean | Gesendet |
Mögliche Fehler: 401404429 Fehlercodes
Integrationen für Healthchecks und DNS-Failover. Die ID 0 steht immer für die E-Mail-Adresse des Accounts.
/integrations
Alle Integrationen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
include_secrets | Query, string | Tokens und URLs vollständig anzeigen Werte: true, false. |
curl "https://ipv64.net/api/v2/integrations" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID, 0 = Account-E-Mail |
data[].type | string | Art Werte: account_email, telegram, gotify, ntfy, pushover, discord, webhook, email, sms, app. |
data[].name | string | Name |
data[].status | string | E-Mail und SMS müssen erst bestätigt werden Werte: active, pending_verification. |
data[].default | boolean | null | Wird bei neuen Healthchecks vorausgewählt |
data[].options | object | Einstellungen je Typ. Geheimnisse sind gekürzt, außer mit include_secrets=true. |
data[].created_at | datetime | null | Angelegt |
data[].last_used_at | datetime | null | Zuletzt benutzt |
data[].uses | integer | Anzahl Nachrichten |
Mögliche Fehler: 400401429 Fehlercodes
/integrations
Integration anlegen
Je nach type sind andere Felder nötig:
- telegram: chat_id, api_token
- gotify: server_url, app_token, priority (0 bis 10)
- ntfy: server_url (inklusive Topic), priority_down und priority_up (1 bis 5)
- pushover: user_token, app_token, device, priority (-2 bis 1)
- discord: webhook_url, ping_user, ping_group
- webhook: url_down und/oder url_up
- email: email. Es wird ein Bestätigungslink verschickt.
- sms: number (deutsche Mobilnummer), country_code 0049. Es wird ein Bestätigungslink per SMS verschickt.
- app: device_token der IPv64-App
URLs müssen mit http oder https beginnen und auf öffentliche Adressen zeigen. E-Mail- und SMS-Bestätigungen sind auf wenige pro Stunde begrenzt.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
type | string | Pflicht | Art Werte: telegram, gotify, ntfy, pushover, discord, webhook, email, sms, app. |
name | string | Pflicht | Name |
default | boolean | Bei neuen Healthchecks vorauswählen | |
chat_id | string | telegram | |
api_token | string | telegram: Bot-Token | |
server_url | string | gotify, ntfy | |
app_token | string | gotify, pushover | |
user_token | string | pushover | |
device | string | pushover | |
priority | integer | gotify (0 bis 10), pushover (-2 bis 1) | |
priority_down | integer | ntfy (1 bis 5) | |
priority_up | integer | ntfy (1 bis 5) | |
webhook_url | string | discord | |
ping_user | string | discord: User-ID | |
ping_group | string | discord: Rollen-ID | |
url_down | string | webhook: wird bei DOWN aufgerufen | |
url_up | string | webhook: wird bei UP aufgerufen | |
email | string | ||
number | string | sms | |
country_code | string | sms | |
device_token | string | app |
curl -X POST "https://ipv64.net/api/v2/integrations" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"telegram","name":"Mein Telegram","chat_id":"123456789","api_token":"123456:ABC-DEF"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID, 0 = Account-E-Mail |
data.type | string | Art Werte: account_email, telegram, gotify, ntfy, pushover, discord, webhook, email, sms, app. |
data.name | string | Name |
data.status | string | E-Mail und SMS müssen erst bestätigt werden Werte: active, pending_verification. |
data.default | boolean | null | Wird bei neuen Healthchecks vorausgewählt |
data.options | object | Einstellungen je Typ. Geheimnisse sind gekürzt, außer mit include_secrets=true. |
data.created_at | datetime | null | Angelegt |
data.last_used_at | datetime | null | Zuletzt benutzt |
data.uses | integer | Anzahl Nachrichten |
Mögliche Fehler: 401403422429 Fehlercodes
/integrations/{id}
Einzelne Integration
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
include_secrets | Query, string | Tokens und URLs vollständig anzeigen Werte: true, false. |
curl "https://ipv64.net/api/v2/integrations/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID, 0 = Account-E-Mail |
data.type | string | Art Werte: account_email, telegram, gotify, ntfy, pushover, discord, webhook, email, sms, app. |
data.name | string | Name |
data.status | string | E-Mail und SMS müssen erst bestätigt werden Werte: active, pending_verification. |
data.default | boolean | null | Wird bei neuen Healthchecks vorausgewählt |
data.options | object | Einstellungen je Typ. Geheimnisse sind gekürzt, außer mit include_secrets=true. |
data.created_at | datetime | null | Angelegt |
data.last_used_at | datetime | null | Zuletzt benutzt |
data.uses | integer | Anzahl Nachrichten |
Mögliche Fehler: 400401404429 Fehlercodes
/integrations/{id}
Name oder Vorauswahl ändern
Für andere Änderungen die Integration neu anlegen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
default | boolean | Vorauswahl |
curl -X PATCH "https://ipv64.net/api/v2/integrations/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"default":true}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID, 0 = Account-E-Mail |
data.type | string | Art Werte: account_email, telegram, gotify, ntfy, pushover, discord, webhook, email, sms, app. |
data.name | string | Name |
data.status | string | E-Mail und SMS müssen erst bestätigt werden Werte: active, pending_verification. |
data.default | boolean | null | Wird bei neuen Healthchecks vorausgewählt |
data.options | object | Einstellungen je Typ. Geheimnisse sind gekürzt, außer mit include_secrets=true. |
data.created_at | datetime | null | Angelegt |
data.last_used_at | datetime | null | Zuletzt benutzt |
data.uses | integer | Anzahl Nachrichten |
Mögliche Fehler: 401404422429 Fehlercodes
/integrations/{id}
Integration löschen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/integrations/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
/integrations/{id}/test
Testnachricht senden
Mit der ID 0 geht die Nachricht an die Account-E-Mail. Höchstens eine pro 30 Sekunden und Integration.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X POST "https://ipv64.net/api/v2/integrations/12/test" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.sent | boolean | Gesendet |
Mögliche Fehler: 401404409429 Fehlercodes
Policies schalten Records automatisch auf ein Ersatzziel, wenn Healthchecks ausfallen. {id} ist die Policy-ID.
/failover/policies
Alle Policies
curl "https://ipv64.net/api/v2/failover/policies" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Policy-ID (16 Zeichen) |
data[].name | string | Name |
data[].status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data[].manual | boolean | Letzte Umschaltung war manuell |
data[].mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data[].fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data[].linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data[].notifications_enabled | boolean | Benachrichtigungen aktiv |
data[].integrations | integer[] | Integrationen für Benachrichtigungen |
data[].monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data[].last_check_at | datetime | null | Letzte Prüfung |
data[].monitors | object[] | |
data[].monitors[].healthcheck | string | Healthcheck-Token |
data[].monitors[].name | string | Name |
data[].monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data[].monitors[].healthcheck_status | string | null | Aktueller Status |
data[].rules | object[] | |
data[].rules[].record | string | Record-Token des geschützten Records |
data[].rules[].fqdn | string | null | Name |
data[].rules[].record_type | string | A oder AAAA |
data[].rules[].state | string | Zustand Werte: standby, failed_over. |
data[].rules[].target | object | |
data[].rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data[].rules[].target.ip | string | Ersatz-IP |
data[].rules[].target.record | string | Ziel-Record-Token |
data[].rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401429 Fehlercodes
/failover/policies
Policy anlegen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
mode | string | Umschaltverhalten Werte: auto_failover, auto_failover_and_fallback, manual. | |
fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore UP sind | |
linking | string | Verknüpfung der Monitore Werte: and, or. | |
notifications_enabled | boolean | Benachrichtigungen | |
integrations | integer[] | Integrationen, 0 = Account-E-Mail |
curl -X POST "https://ipv64.net/api/v2/failover/policies" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Webserver","mode":"auto_failover_and_fallback"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401403422429 Fehlercodes
/failover/policies/{id}
Einzelne Policy
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl "https://ipv64.net/api/v2/failover/policies/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404429 Fehlercodes
/failover/policies/{id}
Policy ändern
linking kann während eines aktiven Failovers nicht geändert werden.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
mode | string | Umschaltverhalten Werte: auto_failover, auto_failover_and_fallback, manual. | |
fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore UP sind | |
linking | string | Verknüpfung der Monitore Werte: and, or. | |
notifications_enabled | boolean | Benachrichtigungen | |
integrations | integer[] | Integrationen, 0 = Account-E-Mail |
curl -X PATCH "https://ipv64.net/api/v2/failover/policies/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"notifications_enabled":false}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404409422429 Fehlercodes
/failover/policies/{id}
Policy löschen
Nicht möglich, solange der Failover aktiv ist.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/failover/policies/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
/failover/policies/{id}/pause
Pausieren
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/pause" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404409429 Fehlercodes
/failover/policies/{id}/resume
Fortsetzen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/resume" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404429 Fehlercodes
/failover/policies/{id}/failover
Manuell umschalten
asynchron Nur im Status active.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/failover" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404409429 Fehlercodes
/failover/policies/{id}/fallback
Manuell zurückschalten
asynchron Nur im Status failed_over.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/fallback" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401404409429 Fehlercodes
/failover/policies/{id}/monitors
Monitor hinzufügen
Ein Healthcheck, der den Failover auslöst.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
healthcheck | string | Pflicht | Healthcheck-Token |
negate | boolean | Umgekehrt werten |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/monitors" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"healthcheck":"Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401403404409422429 Fehlercodes
/failover/policies/{id}/monitors/{token}
Monitor entfernen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/failover/policies/12/monitors/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
/failover/policies/{id}/rules
Regel hinzufügen
Schützt einen A- oder AAAA-Record. Als Ziel genau eines angeben: target_ip, target_record oder offline_page. Bei offline_page zeigt der Record im Failover auf die IPv64-Offline-Seite.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
record | string | Pflicht | Record-ID oder -Token des geschützten Records |
target_ip | string | Ersatz-IP derselben Familie | |
target_record | string | Anderer eigener Record, dessen IP übernommen wird | |
offline_page | string | default oder Offline-Page-ID |
curl -X POST "https://ipv64.net/api/v2/failover/policies/12/rules" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"record":"4711","target_ip":"198.51.100.5"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Policy-ID (16 Zeichen) |
data.name | string | Name |
data.status | string | pending = wird eingerichtet, active = überwacht, failed_over = Ersatz aktiv, paused, failover_requested / fallback_requested = Umschaltung läuft Werte: pending, active, failed_over, paused, failover_requested, fallback_requested. |
data.manual | boolean | Letzte Umschaltung war manuell |
data.mode | string | auto_failover = automatisch umschalten, manuell zurück; auto_failover_and_fallback = beides automatisch; manual = nur manuell Werte: auto_failover, auto_failover_and_fallback, manual. |
data.fallback_requires_all | boolean | Rückschaltung erst, wenn alle Monitore wieder UP sind |
data.linking | string | and = alle Monitore müssen DOWN sein, or = einer reicht Werte: and, or. |
data.notifications_enabled | boolean | Benachrichtigungen aktiv |
data.integrations | integer[] | Integrationen für Benachrichtigungen |
data.monitors_down | integer | Anzahl Monitore, die gerade als DOWN zählen |
data.last_check_at | datetime | null | Letzte Prüfung |
data.monitors | object[] | |
data.monitors[].healthcheck | string | Healthcheck-Token |
data.monitors[].name | string | Name |
data.monitors[].negate | boolean | Umgekehrt werten (UP zählt als DOWN) |
data.monitors[].healthcheck_status | string | null | Aktueller Status |
data.rules | object[] | |
data.rules[].record | string | Record-Token des geschützten Records |
data.rules[].fqdn | string | null | Name |
data.rules[].record_type | string | A oder AAAA |
data.rules[].state | string | Zustand Werte: standby, failed_over. |
data.rules[].target | object | |
data.rules[].target.kind | string | Art des Ziels Werte: ip, record, offline_page. |
data.rules[].target.ip | string | Ersatz-IP |
data.rules[].target.record | string | Ziel-Record-Token |
data.rules[].target.offline_page | string | default oder Offline-Page-ID |
Mögliche Fehler: 401403404409422429 Fehlercodes
/failover/policies/{id}/rules/{record}
Regel entfernen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
curl -X DELETE "https://ipv64.net/api/v2/failover/policies/12/rules/4711" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
Öffentliche Statusseiten unter https://ipv64.net/status/<slug>.
/status-pages
Alle Statusseiten
curl "https://ipv64.net/api/v2/status-pages" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].name | string | Titel |
data[].slug | string | Adresse hinter /status/ |
data[].url | string | Öffentliche Adresse |
data[].description | string | Beschreibung |
data[].password_protected | boolean | Mit Passwort geschützt |
data[].design | integer | Design 1 bis 4 |
data[].autorefresh | boolean | Seite lädt automatisch neu |
data[].healthchecks | string[] | Angezeigte Healthchecks in dieser Reihenfolge |
data[].created_at | datetime | null | Angelegt |
data[].last_viewed_at | datetime | null | Zuletzt aufgerufen |
Mögliche Fehler: 401429 Fehlercodes
/status-pages
Statusseite anlegen
Ohne slug wird eine zufällige Adresse vergeben.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Titel | |
description | string | Beschreibung | |
slug | string | Adresse, 3 bis 128 Zeichen a-z, A-Z, 0-9 | |
password | string | Passwort, leer = öffentlich | |
design | integer | Design Bereich: 1 bis 4. | |
autorefresh | boolean | Automatisch neu laden | |
healthchecks | string[] | Angezeigte Healthchecks |
curl -X POST "https://ipv64.net/api/v2/status-pages" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Mein Status","healthchecks":["Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z"]}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Titel |
data.slug | string | Adresse hinter /status/ |
data.url | string | Öffentliche Adresse |
data.description | string | Beschreibung |
data.password_protected | boolean | Mit Passwort geschützt |
data.design | integer | Design 1 bis 4 |
data.autorefresh | boolean | Seite lädt automatisch neu |
data.healthchecks | string[] | Angezeigte Healthchecks in dieser Reihenfolge |
data.created_at | datetime | null | Angelegt |
data.last_viewed_at | datetime | null | Zuletzt aufgerufen |
Mögliche Fehler: 401409422429 Fehlercodes
/status-pages/{id}
Einzelne Statusseite
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl "https://ipv64.net/api/v2/status-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Titel |
data.slug | string | Adresse hinter /status/ |
data.url | string | Öffentliche Adresse |
data.description | string | Beschreibung |
data.password_protected | boolean | Mit Passwort geschützt |
data.design | integer | Design 1 bis 4 |
data.autorefresh | boolean | Seite lädt automatisch neu |
data.healthchecks | string[] | Angezeigte Healthchecks in dieser Reihenfolge |
data.created_at | datetime | null | Angelegt |
data.last_viewed_at | datetime | null | Zuletzt aufgerufen |
Mögliche Fehler: 401404429 Fehlercodes
/status-pages/{id}
Statusseite ändern
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Titel | |
description | string | Beschreibung | |
slug | string | Adresse, 3 bis 128 Zeichen a-z, A-Z, 0-9 | |
password | string | Passwort, leer = öffentlich | |
design | integer | Design Bereich: 1 bis 4. | |
autorefresh | boolean | Automatisch neu laden | |
healthchecks | string[] | Angezeigte Healthchecks |
curl -X PATCH "https://ipv64.net/api/v2/status-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"slug":"meinstatus","design":2}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Titel |
data.slug | string | Adresse hinter /status/ |
data.url | string | Öffentliche Adresse |
data.description | string | Beschreibung |
data.password_protected | boolean | Mit Passwort geschützt |
data.design | integer | Design 1 bis 4 |
data.autorefresh | boolean | Seite lädt automatisch neu |
data.healthchecks | string[] | Angezeigte Healthchecks in dieser Reihenfolge |
data.created_at | datetime | null | Angelegt |
data.last_viewed_at | datetime | null | Zuletzt aufgerufen |
Mögliche Fehler: 401404409422429 Fehlercodes
/status-pages/{id}
Statusseite löschen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/status-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
Eigene Wartungsseiten als Ziel für den DNS-Failover. {id} ist die Offline-Page-ID.
/offline-pages
Alle Offline-Pages
curl "https://ipv64.net/api/v2/offline-pages" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Offline-Page-ID (16 Zeichen) |
data[].name | string | Überschrift |
data[].domain | string | Domain, unter der die Seite erscheint |
data[].email | string | Kontakt-E-Mail |
data[].phone | string | Telefon |
data[].alternative_url | string | Ausweichadresse |
data[].text | string | Text als HTML |
data[].icon_url | string | null | Logo |
data[].views | integer | Aufrufe |
data[].in_use_by_policy | string | null | Failover-Policy, die diese Seite nutzt |
data[].active | boolean | Wird gerade ausgeliefert |
data[].preview_url | string | Vorschau |
Mögliche Fehler: 401429 Fehlercodes
/offline-pages
Offline-Page anlegen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Überschrift | |
domain | string | Domain, für die die Seite gilt | |
email | string | Kontakt-E-Mail | |
phone | string | Telefon, Ziffern und optional führendes + | |
alternative_url | string | Ausweichadresse | |
text | string | Text. Zeilenumbrüche bleiben erhalten, HTML wird maskiert. |
curl -X POST "https://ipv64.net/api/v2/offline-pages" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Wartungsarbeiten","domain":"www.example.com","text":"Wir sind gleich wieder da."}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Offline-Page-ID (16 Zeichen) |
data.name | string | Überschrift |
data.domain | string | Domain, unter der die Seite erscheint |
data.email | string | Kontakt-E-Mail |
data.phone | string | Telefon |
data.alternative_url | string | Ausweichadresse |
data.text | string | Text als HTML |
data.icon_url | string | null | Logo |
data.views | integer | Aufrufe |
data.in_use_by_policy | string | null | Failover-Policy, die diese Seite nutzt |
data.active | boolean | Wird gerade ausgeliefert |
data.preview_url | string | Vorschau |
Mögliche Fehler: 401403422429 Fehlercodes
/offline-pages/{id}
Einzelne Offline-Page
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl "https://ipv64.net/api/v2/offline-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Offline-Page-ID (16 Zeichen) |
data.name | string | Überschrift |
data.domain | string | Domain, unter der die Seite erscheint |
data.email | string | Kontakt-E-Mail |
data.phone | string | Telefon |
data.alternative_url | string | Ausweichadresse |
data.text | string | Text als HTML |
data.icon_url | string | null | Logo |
data.views | integer | Aufrufe |
data.in_use_by_policy | string | null | Failover-Policy, die diese Seite nutzt |
data.active | boolean | Wird gerade ausgeliefert |
data.preview_url | string | Vorschau |
Mögliche Fehler: 401404429 Fehlercodes
/offline-pages/{id}
Offline-Page ändern
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Überschrift | |
domain | string | Domain, für die die Seite gilt | |
email | string | Kontakt-E-Mail | |
phone | string | Telefon, Ziffern und optional führendes + | |
alternative_url | string | Ausweichadresse | |
text | string | Text. Zeilenumbrüche bleiben erhalten, HTML wird maskiert. |
curl -X PATCH "https://ipv64.net/api/v2/offline-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Wartung bis 14 Uhr."}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Offline-Page-ID (16 Zeichen) |
data.name | string | Überschrift |
data.domain | string | Domain, unter der die Seite erscheint |
data.email | string | Kontakt-E-Mail |
data.phone | string | Telefon |
data.alternative_url | string | Ausweichadresse |
data.text | string | Text als HTML |
data.icon_url | string | null | Logo |
data.views | integer | Aufrufe |
data.in_use_by_policy | string | null | Failover-Policy, die diese Seite nutzt |
data.active | boolean | Wird gerade ausgeliefert |
data.preview_url | string | Vorschau |
Mögliche Fehler: 401404422429 Fehlercodes
/offline-pages/{id}
Offline-Page löschen
Nicht möglich, solange eine Failover-Regel sie nutzt.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/offline-pages/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404409429 Fehlercodes
/offline-pages/{id}/icon
Logo hochladen
Als multipart/form-data im Feld icon. JPEG, PNG oder WebP, höchstens 1 MB und 1024 x 1024 Pixel.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
icon | file | Pflicht | Bilddatei |
curl -X POST "https://ipv64.net/api/v2/offline-pages/12/icon" \
-H "Authorization: Bearer DEIN_API_KEY" \
-F "icon=@logo.png"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Offline-Page-ID (16 Zeichen) |
data.name | string | Überschrift |
data.domain | string | Domain, unter der die Seite erscheint |
data.email | string | Kontakt-E-Mail |
data.phone | string | Telefon |
data.alternative_url | string | Ausweichadresse |
data.text | string | Text als HTML |
data.icon_url | string | null | Logo |
data.views | integer | Aufrufe |
data.in_use_by_policy | string | null | Failover-Policy, die diese Seite nutzt |
data.active | boolean | Wird gerade ausgeliefert |
data.preview_url | string | Vorschau |
Mögliche Fehler: 401404413415422429 Fehlercodes
/offline-pages/{id}/icon
Logo löschen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/offline-pages/12/icon" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
Reverse Proxy und Portmapper. {token} ist die CDN-ID. Viele Änderungen setzt der CDN-Dienst im Hintergrund um, die Antwort ist dann 202 und pending zeigt den Fortschritt.
/cdn
Alle CDN-Domains
curl "https://ipv64.net/api/v2/cdn" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | CDN-ID |
data[].domain | string | null | Domain |
data[].domain_id | integer | Domain-ID |
data[].active | boolean | CDN aktiv |
data[].pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data[].dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data[].server | object | null | |
data[].server.name | string | Name |
data[].server.hostname | string | Hostname |
data[].server.ipv4 | string | IPv4 |
data[].server.ipv6 | string | IPv6 |
data[].proxy | object | |
data[].proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data[].proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data[].proxy.backend | object | |
data[].proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data[].proxy.backend.port | integer | Port deines Servers |
data[].proxy.websocket | boolean | WebSocket-Unterstützung |
data[].proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data[].proxy.caching | object | |
data[].proxy.caching.enabled | boolean | Cache aktiv |
data[].proxy.caching.time_minutes | integer | Cache-Dauer |
data[].proxy.caching.size_mb | integer | Cache-Größe |
data[].proxy.access_list | object | |
data[].proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data[].proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data[].portmapper | object | |
data[].portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data[].traffic_mb | object | |
data[].traffic_mb.in | number | Eingehend |
data[].traffic_mb.out | number | Ausgehend |
data[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401429 Fehlercodes
/cdn
Domain ins CDN aufnehmen
Danach wird automatisch ein CDN-Server zugewiesen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | string | Pflicht | Domain-ID oder Name |
curl -X POST "https://ipv64.net/api/v2/cdn" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"beispiel.ipv64.de"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.mappings | object[] | |
data.mappings[].id | string | Mapping-ID |
data.mappings[].name | string | Name |
data.mappings[].listen_port | integer | Öffentlicher Port am CDN-Server |
data.mappings[].transport | string | Protokoll Werte: tcp, udp. |
data.mappings[].target_port | integer | Port bei dir |
data.mappings[].record | string | Record-Token des Ziels |
data.mappings[].fqdn | string | null | Name des Ziels |
Mögliche Fehler: 401403409422429 Fehlercodes
/cdn/{token}
CDN-Domain mit Mappings
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.mappings | object[] | |
data.mappings[].id | string | Mapping-ID |
data.mappings[].name | string | Name |
data.mappings[].listen_port | integer | Öffentlicher Port am CDN-Server |
data.mappings[].transport | string | Protokoll Werte: tcp, udp. |
data.mappings[].target_port | integer | Port bei dir |
data.mappings[].record | string | Record-Token des Ziels |
data.mappings[].fqdn | string | null | Name des Ziels |
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}
Proxy-Einstellungen ändern
Nur mitgeschickte Felder werden geändert. HTTPS im Frontend stösst automatisch ein Let's-Encrypt-Zertifikat an.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
frontend | string | Frontend Werte: http, https_redirect, http_and_https. | |
backend_scheme | string | Protokoll zu deinem Server Werte: http, https. | |
backend_port | integer | Port deines Servers Bereich: 1 bis 65535. | |
websocket | boolean | WebSocket, nur bei aktivem Proxy | |
caching | object | ||
caching.enabled | boolean | Cache | |
caching.time_minutes | integer | 1 bis 600 | |
caching.size_mb | integer | 1 bis Paketlimit | |
access_list | object | ||
access_list.enabled | boolean | Zugriffsliste | |
access_list.mode | string | allowlist oder denylist Werte: allowlist, denylist. |
curl -X PATCH "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"frontend":"https_redirect","backend_port":8080,"caching":{"enabled":true,"time_minutes":60,"size_mb":100}}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.mappings | object[] | |
data.mappings[].id | string | Mapping-ID |
data.mappings[].name | string | Name |
data.mappings[].listen_port | integer | Öffentlicher Port am CDN-Server |
data.mappings[].transport | string | Protokoll Werte: tcp, udp. |
data.mappings[].target_port | integer | Port bei dir |
data.mappings[].record | string | Record-Token des Ziels |
data.mappings[].fqdn | string | null | Name des Ziels |
Mögliche Fehler: 401403404409422429 Fehlercodes
/cdn/{token}
Domain aus dem CDN entfernen
asynchron Vorher das CDN für alle Records abschalten.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404409429 Fehlercodes
/cdn/{token}/proxy/enable
Reverse Proxy einschalten
asynchron Mindestens ein Record muss über das CDN laufen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/proxy/enable" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/proxy/disable
Reverse Proxy ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/proxy/disable" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/portmapper/enable
Portmapper einschalten
asynchron Mindestens ein Record muss über das CDN laufen.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/portmapper/enable" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/portmapper/disable
Portmapper ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/portmapper/disable" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/redeploy
Konfiguration neu ausrollen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/redeploy" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/reset-traffic
Traffic-Zähler der Domain zurücksetzen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/reset-traffic" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}/move
Auf einen anderen CDN-Server umziehen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/move" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403404409429 Fehlercodes
/cdn/{token}/renew-certificate
Zertifikat neu ausstellen
asynchron Nur bei aktivem Proxy mit HTTPS-Frontend.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/renew-certificate" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | CDN-ID |
data.domain | string | null | Domain |
data.domain_id | integer | Domain-ID |
data.active | boolean | CDN aktiv |
data.pending | string[] | Offene Arbeiten des CDN-Bots Werte: server_assignment, dns, config_deploy, certificate, server_move, deletion. |
data.dns_records_enabled | boolean | Mindestens ein Record läuft über das CDN |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.ipv4 | string | IPv4 |
data.server.ipv6 | string | IPv6 |
data.proxy | object | |
data.proxy.state | string | Reverse Proxy Werte: off, on, disabling. |
data.proxy.frontend | string | null | http, https_redirect (HTTP wird auf HTTPS umgeleitet) oder http_and_https Werte: http, https_redirect, http_and_https. |
data.proxy.backend | object | |
data.proxy.backend.scheme | string | Protokoll zu deinem Server Werte: http, https. |
data.proxy.backend.port | integer | Port deines Servers |
data.proxy.websocket | boolean | WebSocket-Unterstützung |
data.proxy.certificate | string | Zertifikat Werte: default, letsencrypt, issuing. |
data.proxy.caching | object | |
data.proxy.caching.enabled | boolean | Cache aktiv |
data.proxy.caching.time_minutes | integer | Cache-Dauer |
data.proxy.caching.size_mb | integer | Cache-Größe |
data.proxy.access_list | object | |
data.proxy.access_list.enabled | boolean | Zugriffsliste aktiv |
data.proxy.access_list.mode | string | allowlist = nur Einträge erlaubt, denylist = Einträge gesperrt Werte: allowlist, denylist. |
data.portmapper | object | |
data.portmapper.state | string | Portmapper Werte: off, on, disabling, suspended_traffic_limit. |
data.traffic_mb | object | |
data.traffic_mb.in | number | Eingehend |
data.traffic_mb.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404409429 Fehlercodes
/cdn/{token}/records
A- und AAAA-Records der Domain mit CDN-Zustand
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/records" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | Record-ID |
data[].domain_id | integer | Domain-ID |
data[].domain | string | Domain |
data[].prefix | string | Präfix, leer = Domain selbst |
data[].fqdn | string | Vollständiger Name |
data[].type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data[].content | string | Inhalt |
data[].ttl | integer | TTL in Sekunden |
data[].state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data[].pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data[].token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data[].updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}/records/{record}/enable
Record über das CDN leiten
asynchron full: der Name zeigt komplett auf das CDN. other_family_only: der Record bleibt direkt erreichbar und das CDN liefert nur die andere Adressfamilie, zum Beispiel IPv4 für einen reinen IPv6-Anschluss. other_family_only geht nur, wenn der Record der einzige auf seinem Präfix ist.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
mode | string | Modus Werte: full, other_family_only. |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/records/4711/enable" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"other_family_only"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Record-ID |
data.domain_id | integer | Domain-ID |
data.domain | string | Domain |
data.prefix | string | Präfix, leer = Domain selbst |
data.fqdn | string | Vollständiger Name |
data.type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.content | string | Inhalt |
data.ttl | integer | TTL in Sekunden |
data.state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404409422429 Fehlercodes
/cdn/{token}/records/{record}/disable
Record wieder direkt ausliefern
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
record | Pfad, string | Pflicht | Record-ID oder Record-Token |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/records/4711/disable" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | Record-ID |
data.domain_id | integer | Domain-ID |
data.domain | string | Domain |
data.prefix | string | Präfix, leer = Domain selbst |
data.fqdn | string | Vollständiger Name |
data.type | string | Record-Typ Werte: A, AAAA, CNAME, MX, TXT, NS, SRV, TLSA, CAA. |
data.content | string | Inhalt |
data.ttl | integer | TTL in Sekunden |
data.state | string | active, inactive, cdn_record (vom CDN verwaltet), cdn_proxied / cdn_partial (läuft über das CDN), failover_record (temporärer Ersatz), failover_replaced (durch Failover ersetzt) Werte: active, inactive, cdn_record, cdn_proxied, cdn_partial, failover_record, failover_replaced. |
data.pending_dns | boolean | Änderung wird noch an die Nameserver übertragen |
data.token | string | Record-Token. Bleibt bei IP-Änderungen gleich und kann statt der ID verwendet werden. |
data.updated_at | datetime | null | Letzte Änderung |
Mögliche Fehler: 401404409429 Fehlercodes
/cdn/{token}/mappings
Port-Mappings
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/mappings" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Mapping-ID |
data[].name | string | Name |
data[].listen_port | integer | Öffentlicher Port am CDN-Server |
data[].transport | string | Protokoll Werte: tcp, udp. |
data[].target_port | integer | Port bei dir |
data[].record | string | Record-Token des Ziels |
data[].fqdn | string | null | Name des Ziels |
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}/mappings
Port-Mapping anlegen
Leitet einen öffentlichen Port des CDN-Servers auf einen Port bei dir weiter. Ohne listen_port wird ein freier Port zwischen 50000 und 62000 vergeben. Für A und AAAA desselben Namens mit gleichem Ziel-Port wird derselbe Port verwendet.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
record | string | Pflicht | Record-ID oder -Token, der über das CDN läuft |
target_port | integer | Pflicht | Port bei dir Bereich: 1 bis 65535. |
transport | string | Protokoll Werte: tcp, udp. | |
name | string | Name | |
listen_port | integer | Wunsch-Port Bereich: 50000 bis 62000. |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/mappings" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"record":"4711","target_port":25565,"transport":"tcp","name":"Minecraft"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Mapping-ID |
data.name | string | Name |
data.listen_port | integer | Öffentlicher Port am CDN-Server |
data.transport | string | Protokoll Werte: tcp, udp. |
data.target_port | integer | Port bei dir |
data.record | string | Record-Token des Ziels |
data.fqdn | string | null | Name des Ziels |
Mögliche Fehler: 401403404409422429 Fehlercodes
/cdn/{token}/mappings/{mapping}
Port-Mapping löschen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
mapping | Pfad, string | Pflicht | Mapping-ID |
curl -X DELETE "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/mappings/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}/access-list
Zugriffsliste
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/access-list" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].address | string | IP oder Netz |
Mögliche Fehler: 401404429 Fehlercodes
/cdn/{token}/access-list
Eintrag hinzufügen
Ob die Liste erlaubt oder sperrt, steht in proxy.access_list.mode.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
address | string | Pflicht | IP oder Netz in CIDR |
curl -X POST "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/access-list" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"address":"198.51.100.0/24"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.address | string | IP oder Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/cdn/{token}/access-list/{id}
Eintrag entfernen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/cdn/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/access-list/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
WireGuard-Router mit Gateways, Routing, Firewall und öffentlichen IPv6-Adressen. Fast alle Änderungen setzt der VPN-Dienst im Hintergrund um (202).
/cloud-routers
Alle Cloud Router
curl "https://ipv64.net/api/v2/cloud-routers" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Router-ID |
data[].name | string | Name |
data[].vrf | string | Interner VRF-Name |
data[].traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data[].gateways | object[] | |
data[].gateways[].id | string | Gateway-ID |
data[].gateways[].name | string | Name |
data[].gateways[].state | string | Zustand Werte: ready, creating, applying, deleting. |
data[].gateways[].disabled | boolean | Deaktiviert |
data[].gateways[].traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data[].gateways[].server | object | null | |
data[].gateways[].server.name | string | Name |
data[].gateways[].server.hostname | string | Hostname |
data[].gateways[].server.location | string | Standort |
data[].gateways[].listen_port | integer | null | WireGuard-Port am Server |
data[].gateways[].ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data[].gateways[].ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data[].gateways[].public_key | string | null | Öffentlicher Schlüssel |
data[].gateways[].ospf | object | null | |
data[].gateways[].ospf.area_id | string | Area |
data[].gateways[].ospf.ospf_version | integer | Version |
data[].gateways[].ospf.cost | integer | Kosten |
data[].gateways[].traffic_bytes | object | |
data[].gateways[].traffic_bytes.in | number | Eingehend |
data[].gateways[].traffic_bytes.out | number | Ausgehend |
data[].gateways[].created_at | datetime | null | Angelegt |
data[].gateways[].peers | object[] | Nur in der Detailansicht |
data[].gateways[].peers[].id | string | Peer-ID |
data[].gateways[].peers[].name | string | Name |
data[].gateways[].peers[].state | string | Zustand Werte: ready, applying, deleting. |
data[].gateways[].peers[].disabled | boolean | Deaktiviert |
data[].gateways[].peers[].site_to_site | boolean | Als Site-to-Site markiert |
data[].gateways[].peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data[].gateways[].peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data[].gateways[].peers[].dns_server | string | null | DNS-Server in der Client-Config |
data[].gateways[].peers[].endpoint | string | null | Fester Endpunkt des Peers |
data[].gateways[].peers[].endpoint_port | integer | null | Port des Endpunkts |
data[].gateways[].peers[].keepalive | string | Keepalive hh:mm:ss |
data[].gateways[].peers[].public_key | string | null | Öffentlicher Schlüssel |
data[].gateways[].peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data[].gateways[].peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data[].gateways[].peers[].last_handshake | string | null | Letzter Handshake |
data[].gateways[].peers[].traffic_bytes | object | |
data[].gateways[].peers[].traffic_bytes.in | number | Eingehend |
data[].gateways[].peers[].traffic_bytes.out | number | Ausgehend |
data[].gateways[].peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data[].gateways[].peers[].allowed_ips[].id | integer | ID |
data[].gateways[].peers[].allowed_ips[].network | string | Netz |
data[].public_ips | object[] | Nur in der Detailansicht |
data[].public_ips[].id | integer | ID |
data[].public_ips[].ip | string | Adresse |
data[].public_ips[].type | string | Familie |
data[].public_ips[].disabled | boolean | Deaktiviert |
data[].public_ips[].state | string | Zustand Werte: ready, applying. |
data[].public_ips[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401429 Fehlercodes
/cloud-routers
Cloud Router anlegen
asynchron Legt Router und erstes Gateway an.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name |
curl -X POST "https://ipv64.net/api/v2/cloud-routers" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Home Lab"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Router-ID |
data.name | string | Name |
data.vrf | string | Interner VRF-Name |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways | object[] | |
data.gateways[].id | string | Gateway-ID |
data.gateways[].name | string | Name |
data.gateways[].state | string | Zustand Werte: ready, creating, applying, deleting. |
data.gateways[].disabled | boolean | Deaktiviert |
data.gateways[].traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways[].server | object | null | |
data.gateways[].server.name | string | Name |
data.gateways[].server.hostname | string | Hostname |
data.gateways[].server.location | string | Standort |
data.gateways[].listen_port | integer | null | WireGuard-Port am Server |
data.gateways[].ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.gateways[].ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.gateways[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].ospf | object | null | |
data.gateways[].ospf.area_id | string | Area |
data.gateways[].ospf.ospf_version | integer | Version |
data.gateways[].ospf.cost | integer | Kosten |
data.gateways[].traffic_bytes | object | |
data.gateways[].traffic_bytes.in | number | Eingehend |
data.gateways[].traffic_bytes.out | number | Ausgehend |
data.gateways[].created_at | datetime | null | Angelegt |
data.gateways[].peers | object[] | Nur in der Detailansicht |
data.gateways[].peers[].id | string | Peer-ID |
data.gateways[].peers[].name | string | Name |
data.gateways[].peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.gateways[].peers[].disabled | boolean | Deaktiviert |
data.gateways[].peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.gateways[].peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.gateways[].peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.gateways[].peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.gateways[].peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.gateways[].peers[].endpoint_port | integer | null | Port des Endpunkts |
data.gateways[].peers[].keepalive | string | Keepalive hh:mm:ss |
data.gateways[].peers[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.gateways[].peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.gateways[].peers[].last_handshake | string | null | Letzter Handshake |
data.gateways[].peers[].traffic_bytes | object | |
data.gateways[].peers[].traffic_bytes.in | number | Eingehend |
data.gateways[].peers[].traffic_bytes.out | number | Ausgehend |
data.gateways[].peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.gateways[].peers[].allowed_ips[].id | integer | ID |
data.gateways[].peers[].allowed_ips[].network | string | Netz |
data.public_ips | object[] | Nur in der Detailansicht |
data.public_ips[].id | integer | ID |
data.public_ips[].ip | string | Adresse |
data.public_ips[].type | string | Familie |
data.public_ips[].disabled | boolean | Deaktiviert |
data.public_ips[].state | string | Zustand Werte: ready, applying. |
data.public_ips[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401403422429 Fehlercodes
/cloud-routers/{token}
Cloud Router mit Gateways, Peers und IPs
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Router-ID |
data.name | string | Name |
data.vrf | string | Interner VRF-Name |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways | object[] | |
data.gateways[].id | string | Gateway-ID |
data.gateways[].name | string | Name |
data.gateways[].state | string | Zustand Werte: ready, creating, applying, deleting. |
data.gateways[].disabled | boolean | Deaktiviert |
data.gateways[].traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways[].server | object | null | |
data.gateways[].server.name | string | Name |
data.gateways[].server.hostname | string | Hostname |
data.gateways[].server.location | string | Standort |
data.gateways[].listen_port | integer | null | WireGuard-Port am Server |
data.gateways[].ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.gateways[].ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.gateways[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].ospf | object | null | |
data.gateways[].ospf.area_id | string | Area |
data.gateways[].ospf.ospf_version | integer | Version |
data.gateways[].ospf.cost | integer | Kosten |
data.gateways[].traffic_bytes | object | |
data.gateways[].traffic_bytes.in | number | Eingehend |
data.gateways[].traffic_bytes.out | number | Ausgehend |
data.gateways[].created_at | datetime | null | Angelegt |
data.gateways[].peers | object[] | Nur in der Detailansicht |
data.gateways[].peers[].id | string | Peer-ID |
data.gateways[].peers[].name | string | Name |
data.gateways[].peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.gateways[].peers[].disabled | boolean | Deaktiviert |
data.gateways[].peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.gateways[].peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.gateways[].peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.gateways[].peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.gateways[].peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.gateways[].peers[].endpoint_port | integer | null | Port des Endpunkts |
data.gateways[].peers[].keepalive | string | Keepalive hh:mm:ss |
data.gateways[].peers[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.gateways[].peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.gateways[].peers[].last_handshake | string | null | Letzter Handshake |
data.gateways[].peers[].traffic_bytes | object | |
data.gateways[].peers[].traffic_bytes.in | number | Eingehend |
data.gateways[].peers[].traffic_bytes.out | number | Ausgehend |
data.gateways[].peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.gateways[].peers[].allowed_ips[].id | integer | ID |
data.gateways[].peers[].allowed_ips[].network | string | Netz |
data.public_ips | object[] | Nur in der Detailansicht |
data.public_ips[].id | integer | ID |
data.public_ips[].ip | string | Adresse |
data.public_ips[].type | string | Familie |
data.public_ips[].disabled | boolean | Deaktiviert |
data.public_ips[].state | string | Zustand Werte: ready, applying. |
data.public_ips[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404429 Fehlercodes
/cloud-routers/{token}
Router umbenennen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name |
curl -X PATCH "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Buero"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Router-ID |
data.name | string | Name |
data.vrf | string | Interner VRF-Name |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways | object[] | |
data.gateways[].id | string | Gateway-ID |
data.gateways[].name | string | Name |
data.gateways[].state | string | Zustand Werte: ready, creating, applying, deleting. |
data.gateways[].disabled | boolean | Deaktiviert |
data.gateways[].traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.gateways[].server | object | null | |
data.gateways[].server.name | string | Name |
data.gateways[].server.hostname | string | Hostname |
data.gateways[].server.location | string | Standort |
data.gateways[].listen_port | integer | null | WireGuard-Port am Server |
data.gateways[].ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.gateways[].ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.gateways[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].ospf | object | null | |
data.gateways[].ospf.area_id | string | Area |
data.gateways[].ospf.ospf_version | integer | Version |
data.gateways[].ospf.cost | integer | Kosten |
data.gateways[].traffic_bytes | object | |
data.gateways[].traffic_bytes.in | number | Eingehend |
data.gateways[].traffic_bytes.out | number | Ausgehend |
data.gateways[].created_at | datetime | null | Angelegt |
data.gateways[].peers | object[] | Nur in der Detailansicht |
data.gateways[].peers[].id | string | Peer-ID |
data.gateways[].peers[].name | string | Name |
data.gateways[].peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.gateways[].peers[].disabled | boolean | Deaktiviert |
data.gateways[].peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.gateways[].peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.gateways[].peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.gateways[].peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.gateways[].peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.gateways[].peers[].endpoint_port | integer | null | Port des Endpunkts |
data.gateways[].peers[].keepalive | string | Keepalive hh:mm:ss |
data.gateways[].peers[].public_key | string | null | Öffentlicher Schlüssel |
data.gateways[].peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.gateways[].peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.gateways[].peers[].last_handshake | string | null | Letzter Handshake |
data.gateways[].peers[].traffic_bytes | object | |
data.gateways[].peers[].traffic_bytes.in | number | Eingehend |
data.gateways[].peers[].traffic_bytes.out | number | Ausgehend |
data.gateways[].peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.gateways[].peers[].allowed_ips[].id | integer | ID |
data.gateways[].peers[].allowed_ips[].network | string | Netz |
data.public_ips | object[] | Nur in der Detailansicht |
data.public_ips[].id | integer | ID |
data.public_ips[].ip | string | Adresse |
data.public_ips[].type | string | Familie |
data.public_ips[].disabled | boolean | Deaktiviert |
data.public_ips[].state | string | Zustand Werte: ready, applying. |
data.public_ips[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404422429 Fehlercodes
/cloud-routers/{token}/gateways
Weiteres Gateway anlegen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name |
curl -X POST "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/gateways" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Gateway 2"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401403404422429 Fehlercodes
/cloud-routers/{token}/routes
Routen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/routes" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].destination | string | Zielnetz |
data[].gateway | string | Next Hop |
data[].distance | integer | Distanz |
data[].peer | string | null | Peer-ID |
data[].system | boolean | Vom System angelegt, nicht löschbar |
data[].disabled | boolean | Deaktiviert |
data[].state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404429 Fehlercodes
/cloud-routers/{token}/routes
Route anlegen
asynchron Statische Route in ein Netz hinter einem Peer.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
destination | string | Pflicht | Zielnetz in CIDR |
gateway | string | Pflicht | Next Hop, gleiche Familie |
peer | string | Pflicht | Peer-ID |
distance | integer | Distanz Bereich: 1 bis 255. |
curl -X POST "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/routes" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"destination":"192.168.50.0/24","gateway":"10.7.0.2","peer":"Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.destination | string | Zielnetz |
data.gateway | string | Next Hop |
data.distance | integer | Distanz |
data.peer | string | null | Peer-ID |
data.system | boolean | Vom System angelegt, nicht löschbar |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404422429 Fehlercodes
/cloud-routers/{token}/routes/{id}
Route ein- oder ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
disabled | boolean | Deaktiviert |
curl -X PATCH "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/routes/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"disabled":true}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.destination | string | Zielnetz |
data.gateway | string | Next Hop |
data.distance | integer | Distanz |
data.peer | string | null | Peer-ID |
data.system | boolean | Vom System angelegt, nicht löschbar |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404409422429 Fehlercodes
/cloud-routers/{token}/routes/{id}
Route löschen
asynchron Systemrouten können nicht gelöscht werden.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/routes/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.state | string | Zustand |
Mögliche Fehler: 401404409429 Fehlercodes
/cloud-routers/{token}/firewall
Firewall-Regeln
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/firewall" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].chain | string | Kette Werte: forward, input, output. |
data[].action | string | Aktion Werte: accept, drop. |
data[].family | string | Familie Werte: ipv4, ipv6. |
data[].source | string | null | Quelle |
data[].destination | string | null | Ziel |
data[].disabled | boolean | Deaktiviert |
data[].state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404429 Fehlercodes
/cloud-routers/{token}/firewall
Firewall-Regel anlegen
asynchron source und destination müssen zur selben Familie gehören. Mindestens eines davon ist Pflicht.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
chain | string | Pflicht | Kette Werte: forward, input, output. |
action | string | Pflicht | Aktion Werte: accept, drop. |
source | string | Quelle als IP oder CIDR | |
destination | string | Ziel als IP oder CIDR |
curl -X POST "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/firewall" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"chain":"forward","action":"drop","source":"10.7.0.5","destination":"192.168.50.0/24"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.chain | string | Kette Werte: forward, input, output. |
data.action | string | Aktion Werte: accept, drop. |
data.family | string | Familie Werte: ipv4, ipv6. |
data.source | string | null | Quelle |
data.destination | string | null | Ziel |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404422429 Fehlercodes
/cloud-routers/{token}/firewall/{id}
Regel ein- oder ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
disabled | boolean | Deaktiviert |
curl -X PATCH "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/firewall/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"disabled":true}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.chain | string | Kette Werte: forward, input, output. |
data.action | string | Aktion Werte: accept, drop. |
data.family | string | Familie Werte: ipv4, ipv6. |
data.source | string | null | Quelle |
data.destination | string | null | Ziel |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404409422429 Fehlercodes
/cloud-routers/{token}/firewall/{id}
Regel löschen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/firewall/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.state | string | Zustand |
Mögliche Fehler: 401404409429 Fehlercodes
/cloud-routers/{token}/public-ips
Öffentliche IPs
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/public-ips" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].ip | string | Adresse |
data[].type | string | Familie |
data[].disabled | boolean | Deaktiviert |
data[].state | string | Zustand Werte: ready, applying. |
data[].created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404429 Fehlercodes
/cloud-routers/{token}/public-ips
Öffentliche IPv6 anlegen
asynchron Höchstens eine IPv6 je Router. Die Adresse wird zufällig aus dem Netz des VPN-Servers vergeben.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/public-ips" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.ip | string | Adresse |
data.type | string | Familie |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying. |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404409429 Fehlercodes
/cloud-routers/{token}/public-ips/{id}
IP ein- oder ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
disabled | boolean | Deaktiviert |
curl -X PATCH "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/public-ips/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"disabled":true}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.ip | string | Adresse |
data.type | string | Familie |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying. |
data.created_at | datetime | null | Angelegt |
Mögliche Fehler: 401404409422429 Fehlercodes
/cloud-routers/{token}/public-ips/{id}
IP löschen
asynchron Port-Forwards auf diese IP werden neu eingerichtet.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/cloud-routers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/public-ips/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.state | string | Zustand |
Mögliche Fehler: 401404409429 Fehlercodes
WireGuard-Gateways eines Cloud Routers. {token} ist die Gateway-ID. Während ein Gateway eingerichtet wird, antworten Änderungen mit 409 gateway_busy und retry_after.
/gateways/{token}
Gateway mit Peers
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404429 Fehlercodes
/gateways/{token}
Gateway ändern
Adressen in CIDR-Schreibweise. Leerer String entfernt die Adresse.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
ipv4 | string | Gateway-Adresse IPv4 | |
ipv6 | string | Gateway-Adresse IPv6 | |
disabled | boolean | Gateway deaktivieren |
curl -X PATCH "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ipv4":"10.7.0.1/24"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/gateways/{token}
Gateway mit allen Peers löschen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409429 Fehlercodes
/gateways/{token}/rotate-keys
Neues Schlüsselpaar für das Gateway
asynchron Danach müssen alle Peers die neue Konfiguration erhalten.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/rotate-keys" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409429 Fehlercodes
/gateways/{token}/reset-traffic
Traffic-Zähler zurücksetzen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/reset-traffic" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404429 Fehlercodes
/gateways/{token}/ospf
OSPF einschalten oder einstellen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
area_id | string | Area | |
version | integer | OSPF-Version Bereich: 2 bis 3. | |
cost | integer | Kosten Bereich: 1 bis 256. |
curl -X PUT "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/ospf" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"area_id":"0.0.0.0","version":2,"cost":10}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/gateways/{token}/ospf
OSPF ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/ospf" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Gateway-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, creating, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.traffic_limited | boolean | Durch Traffic-Limit gesperrt |
data.server | object | null | |
data.server.name | string | Name |
data.server.hostname | string | Hostname |
data.server.location | string | Standort |
data.listen_port | integer | null | WireGuard-Port am Server |
data.ipv4 | string | null | Gateway-Adresse IPv4 (CIDR) |
data.ipv6 | string | null | Gateway-Adresse IPv6 (CIDR) |
data.public_key | string | null | Öffentlicher Schlüssel |
data.ospf | object | null | |
data.ospf.area_id | string | Area |
data.ospf.ospf_version | integer | Version |
data.ospf.cost | integer | Kosten |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.created_at | datetime | null | Angelegt |
data.peers | object[] | Nur in der Detailansicht |
data.peers[].id | string | Peer-ID |
data.peers[].name | string | Name |
data.peers[].state | string | Zustand Werte: ready, applying, deleting. |
data.peers[].disabled | boolean | Deaktiviert |
data.peers[].site_to_site | boolean | Als Site-to-Site markiert |
data.peers[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.peers[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.peers[].dns_server | string | null | DNS-Server in der Client-Config |
data.peers[].endpoint | string | null | Fester Endpunkt des Peers |
data.peers[].endpoint_port | integer | null | Port des Endpunkts |
data.peers[].keepalive | string | Keepalive hh:mm:ss |
data.peers[].public_key | string | null | Öffentlicher Schlüssel |
data.peers[].has_preshared_key | boolean | Preshared Key gesetzt |
data.peers[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data.peers[].last_handshake | string | null | Letzter Handshake |
data.peers[].traffic_bytes | object | |
data.peers[].traffic_bytes.in | number | Eingehend |
data.peers[].traffic_bytes.out | number | Ausgehend |
data.peers[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.peers[].allowed_ips[].id | integer | ID |
data.peers[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409429 Fehlercodes
/gateways/{token}/port-forwards
Port-Forwards
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/port-forwards" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | integer | ID |
data[].name | string | Name |
data[].destination | string | Ziel-IP im Tunnel |
data[].target_port | integer | Ziel-Port |
data[].protocol | string | Protokoll Werte: tcp, udp. |
data[].public_port | integer | null | Vom Server vergebener öffentlicher Port |
data[].public_ip | string | server = Adresse des VPN-Servers, router = öffentliche IP des Routers Werte: server, router. |
data[].disabled | boolean | Deaktiviert |
data[].state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404429 Fehlercodes
/gateways/{token}/port-forwards
Port-Forward anlegen
asynchron Den öffentlichen Port vergibt der Server, er steht danach in public_port.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
destination | string | Pflicht | Ziel-IP im Tunnel |
target_port | integer | Pflicht | Ziel-Port Bereich: 1 bis 65499. |
protocol | string | Pflicht | Protokoll Werte: tcp, udp. |
name | string | Name | |
public_ip | string | server oder router (öffentliche IP des Routers, vorher anlegen) Werte: server, router. |
curl -X POST "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/port-forwards" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"destination":"10.7.0.2","target_port":443,"protocol":"tcp","name":"Webserver"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Name |
data.destination | string | Ziel-IP im Tunnel |
data.target_port | integer | Ziel-Port |
data.protocol | string | Protokoll Werte: tcp, udp. |
data.public_port | integer | null | Vom Server vergebener öffentlicher Port |
data.public_ip | string | server = Adresse des VPN-Servers, router = öffentliche IP des Routers Werte: server, router. |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404409422429 Fehlercodes
/gateways/{token}/port-forwards/{id}
Port-Forward ein- oder ausschalten
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
disabled | boolean | Deaktiviert |
curl -X PATCH "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/port-forwards/12" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"disabled":true}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.name | string | Name |
data.destination | string | Ziel-IP im Tunnel |
data.target_port | integer | Ziel-Port |
data.protocol | string | Protokoll Werte: tcp, udp. |
data.public_port | integer | null | Vom Server vergebener öffentlicher Port |
data.public_ip | string | server = Adresse des VPN-Servers, router = öffentliche IP des Routers Werte: server, router. |
data.disabled | boolean | Deaktiviert |
data.state | string | Zustand Werte: ready, applying, deleting. |
Mögliche Fehler: 401404409422429 Fehlercodes
/gateways/{token}/port-forwards/{id}
Port-Forward löschen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/port-forwards/12" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | integer | ID |
data.state | string | Zustand |
Mögliche Fehler: 401404409429 Fehlercodes
/gateways/{token}/peers
Peers des Gateways
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/peers" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Peer-ID |
data[].name | string | Name |
data[].state | string | Zustand Werte: ready, applying, deleting. |
data[].disabled | boolean | Deaktiviert |
data[].site_to_site | boolean | Als Site-to-Site markiert |
data[].ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data[].ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data[].dns_server | string | null | DNS-Server in der Client-Config |
data[].endpoint | string | null | Fester Endpunkt des Peers |
data[].endpoint_port | integer | null | Port des Endpunkts |
data[].keepalive | string | Keepalive hh:mm:ss |
data[].public_key | string | null | Öffentlicher Schlüssel |
data[].has_preshared_key | boolean | Preshared Key gesetzt |
data[].current_endpoint | string | null | Zuletzt gesehene Adresse |
data[].last_handshake | string | null | Letzter Handshake |
data[].traffic_bytes | object | |
data[].traffic_bytes.in | number | Eingehend |
data[].traffic_bytes.out | number | Ausgehend |
data[].allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data[].allowed_ips[].id | integer | ID |
data[].allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404429 Fehlercodes
/gateways/{token}/peers
Peer anlegen
asynchron Schlüssel und Adressen werden automatisch vergeben.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name |
curl -X POST "https://ipv64.net/api/v2/gateways/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/peers" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Laptop"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401403404409422429 Fehlercodes
WireGuard-Peers. {token} ist die Peer-ID.
/peers/{token}
Peer mit AllowedIPs
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404429 Fehlercodes
/peers/{token}
Peer ändern
name und dns_server wirken sofort (200). Alle anderen Felder werden am Gateway umgesetzt (202).
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
dns_server | string | DNS-Server für die Client-Config, leer = keiner | |
keepalive | string | Keepalive hh:mm:ss | |
endpoint | string | Fester Endpunkt (IP oder Hostname) | |
endpoint_port | integer | Port des Endpunkts Bereich: 0 bis 65535. | |
ipv4 | string | Tunnel-IPv4 in CIDR | |
ipv6 | string | Tunnel-IPv6 in CIDR | |
disabled | boolean | Deaktiviert | |
site_to_site | boolean | Site-to-Site |
curl -X PATCH "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keepalive":"00:00:25","dns_server":"1.1.1.1"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/peers/{token}
Peer löschen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409429 Fehlercodes
/peers/{token}/config
WireGuard-Konfiguration
Mit dem Header Accept: text/plain kommt die .conf-Datei direkt als Download. Sie enthält den privaten Schlüssel des Peers.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/config" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.peer | string | Peer-ID |
data.config | string | Inhalt der .conf-Datei |
Mögliche Fehler: 401404409429 Fehlercodes
/peers/{token}/rotate-keys
Neues Schlüsselpaar
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X POST "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/rotate-keys" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409429 Fehlercodes
/peers/{token}/keys
Eigene Schlüssel setzen
asynchron Ohne private_key wird nur der öffentliche Schlüssel hinterlegt. Die Config enthält dann keinen privaten Schlüssel.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
public_key | string | Pflicht | Öffentlicher Schlüssel (Base64) |
private_key | string | Privater Schlüssel, muss passen | |
preshared_key | string | Preshared Key (Base64) |
curl -X PUT "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/keys" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"public_key":"xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg="}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/peers/{token}/allowed-ips
AllowedIP hinzufügen
Zusätzliches Netz in der Client-Config, zum Beispiel ein Netz hinter einem anderen Peer.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
network | string | Pflicht | IP oder Netz in CIDR |
curl -X POST "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/allowed-ips" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"network":"192.168.50.0/24"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Peer-ID |
data.name | string | Name |
data.state | string | Zustand Werte: ready, applying, deleting. |
data.disabled | boolean | Deaktiviert |
data.site_to_site | boolean | Als Site-to-Site markiert |
data.ipv4 | string | null | Tunnel-IPv4 (CIDR) |
data.ipv6 | string | null | Tunnel-IPv6 (CIDR) |
data.dns_server | string | null | DNS-Server in der Client-Config |
data.endpoint | string | null | Fester Endpunkt des Peers |
data.endpoint_port | integer | null | Port des Endpunkts |
data.keepalive | string | Keepalive hh:mm:ss |
data.public_key | string | null | Öffentlicher Schlüssel |
data.has_preshared_key | boolean | Preshared Key gesetzt |
data.current_endpoint | string | null | Zuletzt gesehene Adresse |
data.last_handshake | string | null | Letzter Handshake |
data.traffic_bytes | object | |
data.traffic_bytes.in | number | Eingehend |
data.traffic_bytes.out | number | Ausgehend |
data.allowed_ips | object[] | Nur in der Detailansicht: zusätzliche AllowedIPs der Client-Config |
data.allowed_ips[].id | integer | ID |
data.allowed_ips[].network | string | Netz |
Mögliche Fehler: 401404409422429 Fehlercodes
/peers/{token}/allowed-ips/{id}
AllowedIP entfernen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/peers/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/allowed-ips/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
Persönliche DNS-Resolver mit DNS64, DoH, DoT, DoQ und Blocklisten. {token} ist die Client-ID.
/dns64/clients
Alle DNS64-Clients
curl "https://ipv64.net/api/v2/dns64/clients" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object[] | |
data[].id | string | Client-ID |
data[].name | string | Name |
data[].client_id | string | null | Kurzkennung in den Resolver-Adressen |
data[].state | string | Zustand Werte: ready, applying. |
data[].blocking_enabled | boolean | Filter aktiv |
data[].blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data[].servers | object[] | |
data[].servers[].location | string | Standort |
data[].servers[].hostname | string | Hostname |
data[].servers[].doh | string | DNS over HTTPS |
data[].servers[].dot | string | DNS over TLS |
data[].servers[].doq | string | DNS over QUIC |
data[].servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data[].servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data[].servers[].ipv6_shared | string | Gemeinsame IPv6 |
data[].servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data[].servers[].stamps.doh | string | |
data[].servers[].stamps.dot | string | |
data[].servers[].stamps.doq | string | |
data[].queries_total | integer | Anfragen gesamt |
data[].queries_blocked | integer | Davon blockiert |
data[].created_at | datetime | null | Angelegt |
data[].rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data[].rules[].id | integer | ID |
data[].rules[].domain | string | Domain |
data[].rules[].action | string | Aktion Werte: allow, block. |
data[].rules[].state | string | Zustand Werte: ready, applying. |
data[].sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data[].sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data[].sources[].kind | string | Art Werte: ip, record. |
data[].sources[].address | string | Adresse |
data[].sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401429 Fehlercodes
/dns64/clients
Client anlegen
asynchron Resolver-Adressen und client_id stehen bereit, sobald state ready ist.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name |
curl -X POST "https://ipv64.net/api/v2/dns64/clients" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Familie"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.name | string | Name |
data.client_id | string | null | Kurzkennung in den Resolver-Adressen |
data.state | string | Zustand Werte: ready, applying. |
data.blocking_enabled | boolean | Filter aktiv |
data.blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data.servers | object[] | |
data.servers[].location | string | Standort |
data.servers[].hostname | string | Hostname |
data.servers[].doh | string | DNS over HTTPS |
data.servers[].dot | string | DNS over TLS |
data.servers[].doq | string | DNS over QUIC |
data.servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data.servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data.servers[].ipv6_shared | string | Gemeinsame IPv6 |
data.servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data.servers[].stamps.doh | string | |
data.servers[].stamps.dot | string | |
data.servers[].stamps.doq | string | |
data.queries_total | integer | Anfragen gesamt |
data.queries_blocked | integer | Davon blockiert |
data.created_at | datetime | null | Angelegt |
data.rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data.rules[].id | integer | ID |
data.rules[].domain | string | Domain |
data.rules[].action | string | Aktion Werte: allow, block. |
data.rules[].state | string | Zustand Werte: ready, applying. |
data.sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data.sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data.sources[].kind | string | Art Werte: ip, record. |
data.sources[].address | string | Adresse |
data.sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401403422429 Fehlercodes
/dns64/clients/{token}
Client mit Regeln, Quellen und DNS-Stamps
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.name | string | Name |
data.client_id | string | null | Kurzkennung in den Resolver-Adressen |
data.state | string | Zustand Werte: ready, applying. |
data.blocking_enabled | boolean | Filter aktiv |
data.blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data.servers | object[] | |
data.servers[].location | string | Standort |
data.servers[].hostname | string | Hostname |
data.servers[].doh | string | DNS over HTTPS |
data.servers[].dot | string | DNS over TLS |
data.servers[].doq | string | DNS over QUIC |
data.servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data.servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data.servers[].ipv6_shared | string | Gemeinsame IPv6 |
data.servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data.servers[].stamps.doh | string | |
data.servers[].stamps.dot | string | |
data.servers[].stamps.doq | string | |
data.queries_total | integer | Anfragen gesamt |
data.queries_blocked | integer | Davon blockiert |
data.created_at | datetime | null | Angelegt |
data.rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data.rules[].id | integer | ID |
data.rules[].domain | string | Domain |
data.rules[].action | string | Aktion Werte: allow, block. |
data.rules[].state | string | Zustand Werte: ready, applying. |
data.sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data.sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data.sources[].kind | string | Art Werte: ip, record. |
data.sources[].address | string | Adresse |
data.sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401404429 Fehlercodes
/dns64/clients/{token}
Client ändern
Die Blocklisten adult und threats gibt es nicht im Free-Paket.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
name | string | Name | |
blocking_enabled | boolean | Filter aktiv | |
blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
curl -X PATCH "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"blocklists":["ads","threats"]}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.name | string | Name |
data.client_id | string | null | Kurzkennung in den Resolver-Adressen |
data.state | string | Zustand Werte: ready, applying. |
data.blocking_enabled | boolean | Filter aktiv |
data.blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data.servers | object[] | |
data.servers[].location | string | Standort |
data.servers[].hostname | string | Hostname |
data.servers[].doh | string | DNS over HTTPS |
data.servers[].dot | string | DNS over TLS |
data.servers[].doq | string | DNS over QUIC |
data.servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data.servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data.servers[].ipv6_shared | string | Gemeinsame IPv6 |
data.servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data.servers[].stamps.doh | string | |
data.servers[].stamps.dot | string | |
data.servers[].stamps.doq | string | |
data.queries_total | integer | Anfragen gesamt |
data.queries_blocked | integer | Davon blockiert |
data.created_at | datetime | null | Angelegt |
data.rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data.rules[].id | integer | ID |
data.rules[].domain | string | Domain |
data.rules[].action | string | Aktion Werte: allow, block. |
data.rules[].state | string | Zustand Werte: ready, applying. |
data.sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data.sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data.sources[].kind | string | Art Werte: ip, record. |
data.sources[].address | string | Adresse |
data.sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401403404422429 Fehlercodes
/dns64/clients/{token}
Client löschen
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
curl -X DELETE "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z" \
-H "Authorization: Bearer DEIN_API_KEY"
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.state | string | Zustand |
Mögliche Fehler: 401404429 Fehlercodes
/dns64/clients/{token}/rules
Domain erlauben oder sperren
asynchron | Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
domain | string | Pflicht | Domain |
action | string | Aktion Werte: allow, block. |
curl -X POST "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/rules" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com","action":"block"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.name | string | Name |
data.client_id | string | null | Kurzkennung in den Resolver-Adressen |
data.state | string | Zustand Werte: ready, applying. |
data.blocking_enabled | boolean | Filter aktiv |
data.blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data.servers | object[] | |
data.servers[].location | string | Standort |
data.servers[].hostname | string | Hostname |
data.servers[].doh | string | DNS over HTTPS |
data.servers[].dot | string | DNS over TLS |
data.servers[].doq | string | DNS over QUIC |
data.servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data.servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data.servers[].ipv6_shared | string | Gemeinsame IPv6 |
data.servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data.servers[].stamps.doh | string | |
data.servers[].stamps.dot | string | |
data.servers[].stamps.doq | string | |
data.queries_total | integer | Anfragen gesamt |
data.queries_blocked | integer | Davon blockiert |
data.created_at | datetime | null | Angelegt |
data.rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data.rules[].id | integer | ID |
data.rules[].domain | string | Domain |
data.rules[].action | string | Aktion Werte: allow, block. |
data.rules[].state | string | Zustand Werte: ready, applying. |
data.sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data.sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data.sources[].kind | string | Art Werte: ip, record. |
data.sources[].address | string | Adresse |
data.sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401404409422429 Fehlercodes
/dns64/clients/{token}/rules/{id}
Regel entfernen
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/rules/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes
/dns64/clients/{token}/sources
Quell-Adresse hinzufügen
asynchron Damit die gemeinsamen Resolver-IPs Anfragen deinem Client zuordnen. Entweder eine feste ip oder ein eigener A/AAAA-Record, dessen DynDNS-Adresse verfolgt wird. Je Art höchstens 5.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
| Feld | Typ | Beschreibung | |
|---|---|---|---|
ip | string | Feste IP | |
record | string | Record-ID oder -Token |
curl -X POST "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/sources" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"record":"4711"}'
| Feld | Typ | Beschreibung |
|---|---|---|
data | object | |
data.id | string | Client-ID |
data.name | string | Name |
data.client_id | string | null | Kurzkennung in den Resolver-Adressen |
data.state | string | Zustand Werte: ready, applying. |
data.blocking_enabled | boolean | Filter aktiv |
data.blocklists | string[] | Aktive Blocklisten Werte: ads, adult, threats. |
data.servers | object[] | |
data.servers[].location | string | Standort |
data.servers[].hostname | string | Hostname |
data.servers[].doh | string | DNS over HTTPS |
data.servers[].dot | string | DNS over TLS |
data.servers[].doq | string | DNS over QUIC |
data.servers[].ipv6 | string | Persönliche IPv6 des Resolvers |
data.servers[].ipv4_shared | string | Gemeinsame IPv4 (Zuordnung über Quell-Adressen) |
data.servers[].ipv6_shared | string | Gemeinsame IPv6 |
data.servers[].stamps | object | null | DNS-Stamps, nur in der Detailansicht |
data.servers[].stamps.doh | string | |
data.servers[].stamps.dot | string | |
data.servers[].stamps.doq | string | |
data.queries_total | integer | Anfragen gesamt |
data.queries_blocked | integer | Davon blockiert |
data.created_at | datetime | null | Angelegt |
data.rules | object[] | Nur in der Detailansicht: eigene Allow- und Blockliste |
data.rules[].id | integer | ID |
data.rules[].domain | string | Domain |
data.rules[].action | string | Aktion Werte: allow, block. |
data.rules[].state | string | Zustand Werte: ready, applying. |
data.sources | object[] | Nur in der Detailansicht: Quell-Adressen für die gemeinsamen Resolver-IPs |
data.sources[].id | string | Numerische ID bei kind ip, Record-Token bei kind record |
data.sources[].kind | string | Art Werte: ip, record. |
data.sources[].address | string | Adresse |
data.sources[].fqdn | string | Nur bei kind record |
Mögliche Fehler: 401403404409422429 Fehlercodes
/dns64/clients/{token}/sources/{id}
Quell-Adresse entfernen
{id} ist die numerische ID bei festen IPs oder der Record-Token bei Records.
| Feld | Typ | Beschreibung | |
|---|---|---|---|
token | Pfad, string | Pflicht | Token bzw. ID der Ressource (32 Zeichen) |
id | Pfad, string | Pflicht | ID der Ressource |
curl -X DELETE "https://ipv64.net/api/v2/dns64/clients/Ab3dEf6hIj9kLm2nOp5qRs8tUv1wXy4z/sources/12" \
-H "Authorization: Bearer DEIN_API_KEY"
Kein Inhalt.
Mögliche Fehler: 401404429 Fehlercodes