OpenAPI Türkçe gyrohosting.com ↗

Managed DNS

Authoritative DNS on ns1.gyrodns.net (Istanbul) + ns2.gyrodns.net (Germany): zones, records (A/AAAA/CNAME/MX/TXT/SRV/CAA/ALIAS/NS/PTR), BIND import/export, one-click DNSSEC, health-checked failover records.

#GET/cloud/dns/acme-challenge

Is the challenge record live?Scope: dns_acmeacmeChallengeStatusOpenAPI for this operation

Asks both authoritative name servers (ns1/ns2.gyrodns.net) directly. ready is true when both publish value. Poll every few seconds after adding (usually < 1 minute).

Parameters

FieldinTypeDescription
name requiredquerystring_acme-challenge.<domain>
valuequerystringChallenge value (key authorization digest)

Responses

200Status — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed / action_not_allowed
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-challenge status
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/acme-challenge

Add an ACME challenge TXT valueScope: dns_acmeacmeChallengeAddOpenAPI for this operation

Adds value to the TXT record set at name (TTL 60); other values stay, so the apex and the wildcard of one certificate can be validated together (max 10 values per name). The service and the zone are found from the name (longest Gyro DNS zone of yours that covers it; hosting/cPanel zones are not supported). Idempotent.

Request body

FieldTypeDescription
name requiredstring_acme-challenge.<domain> (for *.example.com: _acme-challenge.example.com)
value requiredstringChallenge value (base64url, 16-128 characters)

Responses

202Added — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "_acme-challenge.example.com", "value": "string"}'
gyro dns acme-challenge add --help    # all flags
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", headers=h, json={"name": "_acme-challenge.example.com", "value": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "_acme-challenge.example.com", "value": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/acme-challenge

Remove an ACME challenge TXT valueScope: dns_acmeacmeChallengeRemoveOpenAPI for this operation

Removes only value (query or JSON body); the record set is deleted when it becomes empty.

Parameters

FieldinTypeDescription
name requiredquerystring_acme-challenge.<domain>
valuequerystringChallenge value (key authorization digest)

Responses

202Removed — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-challenge remove
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/acme-challenge", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/acme-challenge

Is the challenge record live? (service)Scope: dns_acmeacmeChallengeStatusSOpenAPI for this operation

Asks both authoritative name servers (ns1/ns2.gyrodns.net) directly. ready is true when both publish value. Poll every few seconds after adding (usually < 1 minute).

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id
name requiredquerystring_acme-challenge.<domain>
valuequerystringChallenge value (key authorization digest)

Responses

200Status — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed / action_not_allowed
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-challenge status-in-service 12345
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/acme-challenge

Add an ACME challenge TXT value (service)Scope: dns_acmeacmeChallengeAddSOpenAPI for this operation

Adds value to the TXT record set at name (TTL 60); other values stay, so the apex and the wildcard of one certificate can be validated together (max 10 values per name). The service and the zone are found from the name (longest Gyro DNS zone of yours that covers it; hosting/cPanel zones are not supported). Idempotent.

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id

Request body

FieldTypeDescription
name requiredstring_acme-challenge.<domain> (for *.example.com: _acme-challenge.example.com)
value requiredstringChallenge value (base64url, 16-128 characters)

Responses

202Added — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "_acme-challenge.example.com", "value": "string"}'
gyro dns acme-challenge add-in-service 12345 --help    # all flags
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", headers=h, json={"name": "_acme-challenge.example.com", "value": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "_acme-challenge.example.com", "value": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/acme-challenge

Remove an ACME challenge TXT value (service)Scope: dns_acmeacmeChallengeRemoveSOpenAPI for this operation

Removes only value (query or JSON body); the record set is deleted when it becomes empty.

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id
name requiredquerystring_acme-challenge.<domain>
valuequerystringChallenge value (key authorization digest)

Responses

202Removed — data: AcmeChallenge
401Missing, invalid or revoked key
403zone_not_allowed
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-challenge remove-in-service 12345
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-challenge", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/acme-keys

List ACME keysScope: services_readlistAcmeKeysOpenAPI for this operation

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id

Responses

200Keys — data: array<AcmeKey>
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-key list 12345
# resource gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
  service_id = 12345 # Gyro DNS service
  name       = "k8s-prod"
  zones      = ["example.com"]
}

# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
  metadata {
    name      = "gyro-acme"
    namespace = "cert-manager"
  }
  data = { token = gyro_dns_acme_key.k8s.token }
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/acme-keys

Create an ACME keyScope: services_writecreateAcmeKeyOpenAPI for this operation

A key for certificate automation that can only add/remove _acme-challenge TXT records (scope dns_acme), optionally only in zones and only from ips. It cannot read zones, change other records or reach any other endpoint. The token is returned once. Max 10 per service.

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id

Request body

FieldTypeDescription
namestringLabel (e.g. web-01)
zonesarray<string>Allowed zones (empty = all zones of the service)
ipsarray<string>Allowed client IPs (empty = any)

Responses

201Created (token shown once) — data: AcmeKey
401Missing, invalid or revoked key
403subkey_forbidden
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "zones": ["string"], "ips": ["string"]}'
gyro dns acme-key create 12345 --help    # all flags
# resource gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
  service_id = 12345 # Gyro DNS service
  name       = "k8s-prod"
  zones      = ["example.com"]
}

# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
  metadata {
    name      = "gyro-acme"
    namespace = "cert-manager"
  }
  data = { token = gyro_dns_acme_key.k8s.token }
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", headers=h, json={"name": "string", "zones": ["string"], "ips": ["string"]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "zones": ["string"], "ips": ["string"]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/acme-keys/{kid}

Delete an ACME keyScope: services_writedeleteAcmeKeyOpenAPI for this operation

Revokes the key at once.

Parameters

FieldinTypeDescription
id requiredpathintegerGyro DNS service id
kid requiredpathintegerACME key id

Responses

200Deleted — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns acme-key delete 12345
# resource gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
  service_id = 12345 # Gyro DNS service
  name       = "k8s-prod"
  zones      = ["example.com"]
}

# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
  metadata {
    name      = "gyro-acme"
    namespace = "cert-manager"
  }
  data = { token = gyro_dns_acme_key.k8s.token }
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/zones

List DNS zonesScope: services_readtyped_get_dns__id__zonesOpenAPI for this operation

Zones of this DNS service (items, state active|pending with the TXT verification token), read-only zones copied from your cPanel hosting (cpanel), plan limits and our name servers.

Parameters

FieldinTypeDescription
id requiredpathintegerService id

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns zone list 12345
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/zones

Add a zoneScope: services_writetyped_post_dns__id__zonesOpenAPI for this operation

Claims a domain. It is published on ns1/ns2.gyrodns.net after ownership is verified: delegation to our name servers (immediate when already delegated) or the TXT record _gyrodns-dogrulama.<zone> = txt_value at your current DNS. Optional bind (zone file) is imported on activation (SOA and apex NS are ignored).

Parameters

FieldinTypeDescription
id requiredpathintegerService id

Request body

FieldTypeDescription
name requiredstringZone name (IDN allowed)
bindstringOptional BIND zone file (max 2 MB)
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "bind": "string", "confirm": true}'
gyro dns zone create 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", headers=h, json={"name": "string", "bind": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "bind": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/zones/{zone}

Get a zone with its recordsScope: services_readtyped_get_dns__id__zones__zoneOpenAPI for this operation

Zone state, serial, DNSSEC flag (+DS) and all record sets. Pending zones return the verification details.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns zone get 12345
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/zones/{zone}

Delete a zoneScope: services_writetyped_delete_dns__id__zones__zoneOpenAPI for this operation

Removes the zone and its health checks from our name servers at once. Needs "confirm": true.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns zone delete 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/zones/{zone}/verify

Verify ownership nowScope: services_writetyped_post_dns__id__zones__zone__verifyOpenAPI for this operation

Checks delegation / TXT now (the system also re-checks automatically for 14 days).

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/verify' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns zone verify 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/verify", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/verify", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/zones/{zone}/import

Import a BIND zone fileScope: services_writetyped_post_dns__id__zones__zone__importOpenAPI for this operation

merge replaces record sets present in the file and keeps the others; replace also deletes record sets not in the file. SOA and apex NS are ignored; unsupported types are listed in skipped. Needs "confirm": true.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
bind requiredstring
modestring (merge, replace)
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/import' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"bind": "string", "mode": "merge", "confirm": true}'
gyro dns zone import 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/import", headers=h, json={"bind": "string", "mode": "merge", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/import", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"bind": "string", "mode": "merge", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/zones/{zone}/export

Export the zone fileScope: services_readtyped_get_dns__id__zones__zone__exportOpenAPI for this operation

Returns the zone in BIND format (bind).

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/export' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns zone export 12345
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/export", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/export", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/zones/{zone}/records

List record setsScope: services_readtyped_get_dns__id__zones__zone__recordsOpenAPI for this operation

All record sets (rrsets: name, type, ttl, records, read_only, health_check). source=cpanel reads a zone of your cPanel hosting (read only).

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name
sourcequerystringgyrodns (default) | cpanel

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns rrset list 12345
# resource gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "www"
  type       = "A"
  ttl        = 300
  records    = [gyro_server.web.ipv4]
}

resource "gyro_dns_record" "mx" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "@"
  type       = "MX"
  records    = ["10 mx1.example.com.", "20 mx2.example.com."]
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#PUT/cloud/dns/{id}/zones/{zone}/records

Create or replace a record setScope: services_writetyped_put_dns__id__zones__zone__recordsOpenAPI for this operation

Upserts one record set (name + type). CNAME and ALIAS take one value; no CNAME at the apex (use ALIAS); apex NS and SOA are managed by us.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
name requiredstringRecord name relative to the zone (@ = apex, * = wildcard) or FQDN with trailing dot
type requiredstring (A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, NS, PTR)
ttlinteger60-86400 s
records requiredarray<string>Values in zone file syntax, one per item (TXT quotes optional)
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": true}'
gyro dns rrset set 12345 --help    # all flags
# resource gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "www"
  type       = "A"
  ttl        = 300
  records    = [gyro_server.web.ipv4]
}

resource "gyro_dns_record" "mx" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "@"
  type       = "MX"
  records    = ["10 mx1.example.com.", "20 mx2.example.com."]
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", headers=h, json={"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/zones/{zone}/records

Delete a record setScope: services_writetyped_delete_dns__id__zones__zone__recordsOpenAPI for this operation

Deletes the record set given by name and type (query). Needs "confirm": true.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name
namequerystringRecord name
typequerystringRecord type

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns rrset delete 12345 --help    # all flags
# resource gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "www"
  type       = "A"
  ttl        = 300
  records    = [gyro_server.web.ipv4]
}

resource "gyro_dns_record" "mx" {
  service_id = gyro_dns_zone.example.service_id
  zone       = gyro_dns_zone.example.name
  name       = "@"
  type       = "MX"
  records    = ["10 mx1.example.com.", "20 mx2.example.com."]
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/zones/{zone}/dnssec

DNSSEC status and DS recordsScope: services_readtyped_get_dns__id__zones__zone__dnssecOpenAPI for this operation

dnssec flag and ds (enter at your registrar).

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns dnssec status 12345
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/zones/{zone}/dnssec

Enable DNSSECScope: services_writetyped_post_dns__id__zones__zone__dnssecOpenAPI for this operation

Signs the zone (ECDSA P-256) and returns the DS records. No effect until the DS is at the registrar. Not with ALIAS records.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns dnssec enable 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/zones/{zone}/dnssec

Disable DNSSECScope: services_writetyped_delete_dns__id__zones__zone__dnssecOpenAPI for this operation

Remove the DS at your registrar and wait for its TTL first, otherwise validating resolvers fail. Needs "confirm": true.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
zone requiredpathstringZone name

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns dnssec disable 12345 --help    # all flags
# resource gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
  service_id = 789 # Gyro DNS service
  name       = "example.com"
  dnssec     = true
}

# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/dns/{id}/health-checks

List health-checked recordsScope: services_readtyped_get_dns__id__health_checksOpenAPI for this operation

Checks with primary/backup IP, which one is active and the last state (gmon majority of 3 locations).

Parameters

FieldinTypeDescription
id requiredpathintegerService id

Responses

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro dns health list 12345
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#POST/cloud/dns/{id}/health-checks

Create a health-checked recordScope: services_writetyped_post_dns__id__health_checksOpenAPI for this operation

Points name (A/AAAA) to primary; when the check fails from the majority of locations the record switches to backup, and back after 3 good passes. Uses one health-check add-on unit.

Parameters

FieldinTypeDescription
id requiredpathintegerService id

Request body

FieldTypeDescription
zone requiredstring
name requiredstring
type requiredstring (A, AAAA)
primary requiredstring
backup requiredstring
check requiredstring (http, https, tcp, ping)
portinteger
pathstring
ttlinteger30-300 s
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": true}'
gyro dns health create 12345 --help    # all flags
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks", headers=h, json={"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/dns/{id}/health-checks/{hid}

Delete a health checkScope: services_writetyped_delete_dns__id__health_checks__hidOpenAPI for this operation

Stops checking; the record keeps its current value. Needs "confirm": true.

Parameters

FieldinTypeDescription
id requiredpathintegerService id
hid requiredpathstringHealth check id

Request body

FieldTypeDescription
confirmboolean

Responses

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Examples

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
gyro dns health delete 12345 --help    # all flags
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/health-checks/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);