This API method fetches a geohost configuration

Request

GET /geohost/geohost_name HTTP/1.0
Host: api.gslb.me 
Accept: encoding_type
Authorization: Basic base64_credentials

Where:

  • geohost_name is the name of the geohost you want to get configuration for (ie.: mygeohost.mydomain.com)
  • base64_credentials is username:password in base64-encoded format (HTTP Basic Authentication)
  • encoding_type is either application/xml or application/json (if the “Accept” header is omitted, response will be JSON-encoded)

Sample requests:

  • Raw request:
GET /geohost/mygeohost.mydomain.com HTTP/1.0
Host: api.gslb.me 
Accept: application/json
Authorization: Basic dGVzdHVzZXJAZ3NsYi5tZTp0ZXN0cGFzc3dvcmQK
  • Using curl:
curl -u testuser@gslb.me:testpassword -H "Accept: application/json" -k https://api.gslb.me/geohost/mygeohost.mydomain.com

Response

  • In case of invalid geohost:
HTTP/1.1 404 Not Found
Content-Type: application/json

{"message":"Zone not found","returncode":"2"}
  • In case of internal error:
HTTP/1.1 500 Server Error
Content-Type: application/json

{"message":"Internal error, please contact support@gslb.me","returncode":"4"}
  • In case of success:
HTTP/1.1 200 OK
Content-Type: application/json

{
  "geoHost":
  {
    "active":"false",
    "alerts":null,
    "cdn_minimumTargets":"0",
    "cdn_offload":"false",
    "cdn_offloadPercentage":"0",
    "howmanyreplies":"0",
    "lbAlgorithm":"geolb.proximity",
    "needscommit":"false",
    "TTL":"0",
    "georoutingRules":
    {"georoutingRule":[
        {
          "active":"true",
          "countries":
          {"georoutingRuleCountries":[
            {"countryCode":"BV","countryName":"Bouvet Island"},
            {"countryCode":"BW","countryName":"Botswana"},
            {"countryCode":"BR","countryName":"Brazil"}
          ]},
          "description":"",
          "fallbacklb":"geolb.roundrobin",
          "primarylb":"geolb.roundrobin",
          "targets":
          {"georoutingRuleTargets":[
            {"address":"canada-server.test.com","alias":"","priority":"primary"},
            {"address":"india-server.test.com","alias":"","priority":"primary"},
            {"address":"australia-server.test.com","alias":"","priority":"fallback"}
          ]}
        }
    }
    "targets":
    {
      "target":[
        {
          "active":"true",
          "address":"149.154.152.82",
          "alias":"target-name.domain.com",
          "checks":
          {
            "check":
            {
              "active":"true",
              "name":"HTTP healthcheck GET /",
              "parameters":
              {
                "parameter":[
                  {"type":"check.http.port","value":"80"},
                  {"type":"check.http.uri","value":"/"},
                  {"type":"check.http.statuscode","value":"200"},
                  {"type":"check.http.host","value":"cdn.gslb.me"},
                  {"type":"check.http.regexp","value":""},
                  {"type":"check.http.username","value":""},
                  {"type":"check.http.password","value":""},
                  {"type":"check.http.authenabled","value":"false"}
                ]
              },
              "timeout":"30",
              "typeTag":"check.http"
            }
          },
          "geoHostName":"mygeohost",
          "geoHostZoneName":"mydomain.com",
          "priority":"1",
          "reqChecks":"1",
          "schedule":"30",
          "weight":"1"
        },
        {
          "active":"true",
          "address":"149.154.158.46",
          "alias":"",
          "checks":
          {
            "check":
            {
              "active":"true",
              "name":"HTTP healthcheck GET /",
              "parameters":
              {
                "parameter":[
                  {"type":"check.http.port","value":"80"},
                  {"type":"check.http.uri","value":"/"},
                  {"type":"check.http.statuscode","value":"200"},
                  {"type":"check.http.host","value":"cdn.gslb.me"},
                  {"type":"check.http.regexp","value":""},
                  {"type":"check.http.username","value":""},
                  {"type":"check.http.password","value":""},
                  {"type":"check.http.authenabled","value":"false"}
                ]
              },
              "timeout":"30",
              "typeTag":"check.http"
            }
          },
          "geoHostName":"mygeohost",
          "geoHostZoneName":"mydomain.com",
          "priority":"1",
          "reqChecks":"1",
          "schedule":"30",
          "weight":"1"
        }
      ]
    }
  }
}

Where:

  • active: the state of the geohost
  • alerts: an array detailing all alerts configured for the geohost
  • cdn_minimumTargets: the minimum number of healthy targets that is required in order *NOT* to offload to CDN. In order enable CDN offload, cdn_offload must be set to true
  • cdn_offload: true if CDN offload is enabled for the geohost, false otherwise
  • cdn_offloadPercentage: the percentage of DNS requests that are replied with your CDN CNAME. In order to enable CDN offload, cdn_offload must be set to true
  • howmanyreplies: the maximum number of rrsets that a DNS reply can include
  • lbAlgorithm: the geohost balancing algorithm name. Currently supported algorithms are: geolb.roundrobin, geolb.priority, geolb.any, geolb.proximity, geolb.weighted
  • needscommit: true if the geohost includes changes that have to be committed in order to become active. To commit a geohost use the Commit Geohost method
  • TTL: the geohost TTL
  • georoutingRules: the set of configurations needed to enable georouting
  • georoutingRule: each georouting rule, which is built around a set of parameters:
    • active: set to true if the rule is active, set to false if disabled
    • countries: list of countries for which the rule is matched. The list is a georoutingRuleCountries object, that includes:
      • countryCode: the two letters country code
      • countryName: the descriptive country name
    • description: the mnemonic rule description
    • primarylb: the balancing algorithm used to select primary targets
    • fallbacklb: the balancing algorithm used to select fallback targets
    • targets: the list of primary and fallback targets used by the georouting rule. Each target is defined by the following parameters:
      • address: the IP address of FQDN for the target
      • alias: the IP address of FQDN for the target alias, if configured
      • priority: set to “primary” if the target is used as a primary, set to “fallback”if the target is used as a fallback
  • targets: array of targets. Each target is an IP address that is health-monitored through a set of “checks”:
    • active: set to true if the target is enabled, set to false otherwise
    • address: the IP address of the target
    • checks: the array of checks for the target. Fields are self-explanatory
    • geoHostName: the name of the geohost. Together with the field “geoHostZoneName” it defines the DNS FQDN of the geohost. The FQDN of the geohost is “geoHostName.geoHostZoneName
    • geoHostZoneName: the name of the DNS zone this geohost belongs to
    • priority: the target priority, only used if lbAlgorithm is set to geolb.priority
    • reqChecks: the minimum number of “healthy” checks needed to mark the target as “healthy”
    • schedule: schedule interval in seconds to run all checks for the target
    • weight: the target “weight”, only used if lbAlgorithm is set to geolb.weighted