Global Traffic Management API v1

Manage Global Traffic Management (GTM) load balancing configurations.

Learn more:


Overview

The Internet domain name system (DNS) is a distributed system that allows computer programs to issue queries about domain names, to which the DNS returns one or more answers. The most common use for DNS is to convert hostnames, such as www.customer.com, into IP addresses, which identify a particular computer at a particular Internet location.

In the most traditional usage, a query’s answers are static. Someone types them into a configuration file, and they change only when the file changes.

A dynamic DNS system returns answers that are computed on the fly, and can vary from one query to the next. A typical usage would return the IP address of a server assigned dynamically via DHCP, an address that would occasionally change, as is common with most home Internet connections.

Akamai’s GTM system is a dynamic DNS system. It manages traffic to your data centers by choosing the best answers, from one moment to the next, to return client nameservers in response to their queries about GTM domains.

Getting started

The basic building block of a Traffic Management configuration is a Domain. DNS forms a tree-structured namespace. In the following list of domain names, each item is a domain:

  • com
  • customer.com
  • sales.customer.com

Each domain is also a subdomain of the one above it in the list. In Akamai’s GTM system, the term domain is used in a slightly restricted sense. A GTM domain is a DNS domain, whose name usually ends in .akadns.net. Several important attributes are specified at the GTM domain level, including Luna access control. Anyone with permission to edit a GTM domain has permission to modify or delete any of the properties (subdomains) within that domain.

This overview walks you through setting up a new domain, example.akadns.net. Run the Create or Update a Domain operation:

PUT /config-gtm/v1/domains/example.akadns.net HTTP/1.1
Accept: application/json
Content-type: application/json
Content-Length: 173

{
    "name": "example.akadns.net",
    "type": "weighted",
    "emailNotificationList": ["our.admin@example.com"],
    "modificationComments": "New Traffic Management domain."
}

This operation creates a weighted domain named example.akadns.net. It also specifies that our.admin@example.com is sent an email for each change the Traffic Management system processes, as well as other notifications such as propagation progress, validation, or error messages. The system confirms the domain creation with a 201 status code, and returns a full representation of the new domain:

HTTP/1.1 201 Created
Date: Mon, 04 Aug 2014 15:30:39 GMT
Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8

{
    "resource": {
        "cidrMaps": [],
        "datacenters": [],
        "defaultErrorPenalty": 75,
        "defaultSslClientCertificate": null,
        "defaultSslClientPrivateKey": null,
        "defaultTimeoutPenalty": 25,
        "emailNotificationList": [ "our.admin@example.com" ],
        "geographicMaps": [],
        "lastModified": "2014-08-04T15:30:40.057+0000",
        "lastModifiedBy": "admin",
        "loadFeedback": false,
        "loadImbalancePercentage": null,
        "modificationComments": "New Traffic Management domain.",
        "name": "example.akadns.net",
        "properties": [],
        "resources": [],
        "status": {
            "changeId": "abb94136-dd94-4779-bfb0-fcfac67fb843",
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-08-04T15:30:40.057+0000"
        },
        "type": "weighted"
    },
    "status": {
        "changeId": "abb94136-dd94-4779-bfb0-fcfac67fb843",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-08-04T15:30:40.057+0000"
    }
}

Notice that the API server fills in many fields such as defaultErrorPenalty and defaultTimeoutPenalty with default values.

Your set of available domain types is determined by your contract. The domain’s type also places a restriction on what type of property you can create under the domain. The following lists each domain type, along with the property types you can associate with them:

  failover-only static weighted basic full
failover
qtr
geographic
cidrmapping
asmapping
weighted-round-robin
weighted-hashed
weighted-round-robin-with-load-feedback
performance

While the new domain is a good start, it’s still incomplete. It needs at least two Datacenters defined, and at least one Property before it’s ready for use. This Create a Data Center operation creates two data centers for the domain, starting with a Winterfell data center:

POST /config-gtm/v1/domains/example.akadns.net/datacenters HTTP/1.1
Accept: application/json
Content-type: application/json
Content-Length: 145

{
    "city": "Downpatrick",
    "continent": "EU",
    "country": "GB",
    "latitude": 54.367,
    "longitude": -5.582,
    "nickname": "Winterfell"
}

The API assigns a datacenterId, which appears as a member in the data center’s JSON response, and helps form the Location header, which you can navigate to access the new data center:

HTTP/1.1 201 Created
Date: Mon, 04 Aug 2014 15:49:08 GMT
Location: /config-gtm/v1/domains/example.akadns.net/datacenters/3131
Transfer-Encoding: chunked
Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8

{
    "resource": {
        "city": "Downpatrick",
        "cloneOf": null,
        "continent": "EU",
        "country": "GB",
        "datacenterId": 3131,
        "defaultLoadObject": null,
        "latitude": 54.367,
        "longitude": -5.582,
        "nickname": "Winterfell",
        "stateOrProvince": null,
        "virtual": true
    },
    "status": {
        "changeId": "0a580f0a-d585-4fc0-a3ff-47c79e8fd7fc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-08-04T15:49:10.111+0000"
    }
}

The datacenterId is important, as it’s referenced by many other entities across the domain. Now run the operation again to add the second data center:

POST /config-gtm/v1/domains/example.akadns.net/datacenters HTTP/1.1
Accept: application/json
Content-type: application/json
Content-Length: 248

{
    "city": "Snæfellsjökull",
    "continent": "EU",
    "country": "IS",
    "latitude": 64.808,
    "longitude": -23.776,
    "nickname": "Frostfangs"
}

That data center is assigned a datacenterId of 3131, which now provides the minimum for a valid domain:

GET /config-gtm/v1/domains/example.akadns.net/datacenters
Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8

{
    "items": [
        {
            "city": "Downpatrick",
            "cloneOf": null,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3131,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 54.367,
            "longitude": -5.582,
            "nickname": "Winterfell",
            "stateOrProvince": null,
            "virtual": true
        },
        {
            "city": "Snæfellsjökull",
            "cloneOf": null,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3132,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 64.808,
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true
        }
    ]
}

The last piece you need is a Property, or subdomain, of the example.akadns.net domain. This Create or Update a Property operation creates a property named origin, as a weighted round-robin load balanced property with a 50/50 split:

PUT /config-gtm/v1/domains/example.akadns.net/properties/origin HTTP/1.1
Content-type: application/json
Accept: application/json
Content-Length: 534

{
    "name": "origin",
    "handoutMode": "normal",
    "failoverDelay" : 0,
    "failbackDelay" : 0,
    "trafficTargets": [
        {
            "datacenterId": 3131,
            "enabled": true,
            "servers": [ "1.2.3.5" ],
            "weight": 50.0
        },
        {
            "datacenterId": 3132,
            "enabled": true,
            "servers": [ "1.2.3.4" ],
            "weight": 50.0
        }
    ],
    "type": "weighted-round-robin",
    "scoreAggregationType": "mean"
}

This basic setup splits requests evenly between the Winterfell and Frostfangs data center, whose datacenterId values are 3131 and 3132. One thing you may want to change is for Traffic Management only to provide IPs that are alive. Run the operation again to specify a set of livenessTests:

PUT /config-gtm/v1/domains/example.akadns.net/properties/origin HTTP/1.1
Host: iamakamai.qaextranet.akamai.com
Content-type: application/json
Accept: application/json
Content-Length: 982

{
    "name": "origin",
    "handoutMode": "normal",
    "failoverDelay" : 0,
    "failbackDelay" : 0,
    "trafficTargets": [
        {
            "datacenterId": 3131,
            "enabled": true,
            "servers": [ "1.2.3.5" ],
            "weight": 50.0
        },
        {
            "datacenterId": 3132,
            "enabled": true,
            "servers": [ "1.2.3.4" ],
            "weight": 50.0
        }
    ],
    "type": "weighted-round-robin",
    "scoreAggregationType": "mean",
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testTimeout": 25.0
        }
    ]
}

With this configuration, server monitors assigned to your domain test each IP address every 60 seconds (the testInterval) by running the equivalent of this command:

curl -H "Host: foo.example.com" http://1.2.3.5/status

The server monitor treats status codes in the 300, 400, and 500 range as errors, controlled by the httpError3xx, httpError4xx, httpError3xx members, respectively; Test agents also time out tests after 25 seconds (the testTimeout).

API versioning

In the examples above, the response’s media type is application/vnd.config-gtm.v1.0+json. The API currently supports five media types:

  • application/json
  • application/vnd.config-gtm.v1.0+json
  • application/vnd.config-gtm.v1.1+json
  • application/vnd.config-gtm.v1.2+json
  • application/vnd.config-gtm.v1.3+json

The application/json type is synonymous with the earliest application/vnd.config-gtm.v1.0+json version, regardless of how many other versions are incrementally added over time as the service evolves. API clients may choose to adopt the new resource versions, or stay on the initial v1.0 version until the need arises to upgrade. Clients should specify the exact version of the representation, for example:

Accept: application/vnd.config-gtm.v1.0+json

Contracts and groups

When you create a new domain, you need to associate it with a contract and a group, important information when deploying various Akamai features:

  • Groups: Each account features a hierarchy of groups, which control access to domains and help consolidate reporting functions, typically mapping to an organizational hierarchy. Using either the Luna portal or the User Administration API, account administrators can assign domains to specific groups, each with its own set of users and accompanying roles. Your access to any given domain depends on the role set for you in its group. Along with information about the contract, you may need the group identifier to create a new domain.

  • Contracts: Each account features one or more contract, each of which has a fixed term of service during which specified Akamai products and modules are active. Along with information about the group, you may need the contract identifier to create a new domain.

Running the Create or Update a Domain operation may require you to provide a contractId or gid (group ID), under the following circumstances:

Client has access to… Required parameters…
One contract and group. Neither parameter is required. The API can derive the data automatically.
One contract, and more than one group. Requires the gid parameter. The API needs to know the group in which to create the domain. It derives the contract automatically.
More than one contract, and one group. Requires the contractId parameter. The API needs to know the contract under which to create the domain. It derives the group automatically.
More than one contract and group. Both contractId and gid parameters are required, since the API needs to know the contract and group under which to create the domain.

If you need to provide identifiers, but you don’t know what they are, run the List Contracts or List Groups operations.

NOTE: The Identity Management Application allows you to limit the groups a client has access to. If you are able to limit access to a single group, one linked with only one contract, then the client doesn’t the group or contract IDs when creating domains.

API hypermedia

The API’s data objects feature embedded link relations that provide URL paths that allow direct navigation to each object. For example, items within a list of domains feature link relations such as the following, where the href responds to a GET request, and a rel of self indicates that it identifies the unique object.

"links": [
    {
        "href": "/config-gtm/v1/domains/example.akadns.net",
        "rel": "self"
    }
],

Resources

This section provides details on the Traffic Management API’s available URL operations.

API summary

Operation Method Endpoint
Identity, Contracts, and Groups
Get Identity GET /config-gtm/v1/identity
List Contracts GET /config-gtm/v1/identity/contracts
List Groups GET /config-gtm/v1/identity/groups
Domains
List Domains GET /config-gtm/v1/domains/
Get a Domain GET /config-gtm/v1/domains/{domain}
Create or Update a Domain PUT /config-gtm/v1/domains/{domain}{?contractId,gid}
Data Centers
List Data Centers GET /config-gtm/v1/domains/{domain}/datacenters
Create a Data Center POST /config-gtm/v1/domains/{domain}/datacenters
Get a Data Center GET /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}
Update a Data Center PUT /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}
Remove a Data Center DELETE /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}
Properties
List Properties GET /config-gtm/v1/domains/{domain}/properties
Get a Property GET /config-gtm/v1/domains/{domain}/properties/{propertyName}
Create or Update a Property PUT /config-gtm/v1/domains/{domain}/properties/{propertyName}
Remove a Property DELETE /config-gtm/v1/domains/{domain}/properties/{propertyName}
Resources
List Resources GET /config-gtm/v1/domains/{domain}/resources
Get a Resource GET /config-gtm/v1/domains/{domain}/resources/{resourceName}
Create or Update a Resource PUT /config-gtm/v1/domains/{domain}/resources/{resourceName}
Remove a Resource DELETE /config-gtm/v1/domains/{domain}/resources/{resourceName}
Geographic Maps
List Geographic Maps GET /config-gtm/v1/domains/{domain}/geographic-maps
Get a Geographic Map GET /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}
Create or Update a Geographic Map PUT /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}
Remove a Geographic Map DELETE /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}
CIDR Maps
List CIDR Maps GET /config-gtm/v1/domains/{domain}/cidr-maps
Get a CIDR Map GET /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}
Create or Update a CIDR Map PUT /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}
Remove a CIDR Map DELETE /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}
Autonomous System Maps
Get an AS Map GET /config-gtm/v1/domains/{domain}/as-maps/{mapName}
Create or Update an AS Map PUT /config-gtm/v1/domains/{domain}/as-maps/{mapName}
Remove an AS Map DELETE /config-gtm/v1/domains/{domain}/as-maps/{mapName}
Status
Get Current Status GET /config-gtm/v1/domains/{domain}/status/current

Get identity

This provides high-level information about the API client, the Luna user it’s linked to, and contracts available to the client. Each contract lists available load balancing features, and the permissions the client has on the domains tied to the contract.

GET /config-gtm/v1/identity

Status 200 application/json

Response:


{
    "accountId": "1-1TJZFB",
    "userName": "ed@example.com",
    "userTimeZone": "-05:00"
    "locale": "en_US",
    "firstName": "Eddard",
    "lastName": "Stark",
    "email": "ed@example.com",
    "active": true,
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC",
                "WEIGHTED_ROUND_ROBIN",
                "WEIGHTED_ROUND_ROBIN_LOAD_FEEDBACK",
                "WEIGHTED_HASHED",
                "PERFORMANCE"
            ],
            "permissions": [
                "READ",
                "WRITE",
                "ADD"
            ]
        },
        {
            "contractId": "3-ZQ0H6H",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC"
            ],
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

List contracts

Each account features one or more contract, each of which has a fixed term of service during which specified Akamai products and modules are active. The client may need to specify a contractId when creating a domain, which this operation provides. See Contracts and Groups for more information.

GET /config-gtm/v1/identity/contracts

Status 200 application/json

Response:

{
    "accountId": "1-1TJZFB",
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "contractName": "Wolves",
            "contractTypeName": "DIRECT_CUSTOMER"
        },
        {
            "contractId": "3-ZQ0H6H",
            "contractName": "Stags",
            "contractTypeName": "DIRECT_CUSTOMER"
        }
    ]
}

List groups

Each account features a hierarchy of groups, which control access to domains and help consolidate reporting functions, typically mapping to an organizational hierarchy. (The User Administration API allows you to modify the group hierarchy.)

The client may need to specify a gid (group ID) parameter when creating a domain, for which this operation provides available values. Each group lists GTM contracts to which the group has access, and the set of permissions the client has on the group: READ, WRITE, and ADD. See Contracts and Groups for more information.

GET /config-gtm/v1/identity/groups

Status 200 application/json

Response:

{
    "groups": [
        {
            "contractIds": [
                "1-1TJZH5"
            ],
            "groupId": "15166",
            "groupName": "House Stark",
            "permissions": [
                "ADD",
                "READ",
                "WRITE"
            ]
        },
        {
            "contractIds": [
                "1-1TJZH5",
                "3-ZQ0H6H"
            ],
            "groupId": "41443",
            "groupName": "House Baratheon",
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

List domains

GET /config-gtm/v1/domains/

Status 200 application/json

Response:

{
    "items": [
        {
            "acgId": "1-2345",
            "lastModified": "2014-03-03T16:02:45.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net",
                    "rel": "self"
                }
            ],
            "name": "example.akadns.net",
            "status": "2014-02-20 22:56 GMT: Current configuration has been propagated to all toplevels"
        },
        {
            "acgId": "1-2345",
            "lastModified": "2013-11-09T12:04:45.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/demo.akadns.net",
                    "rel": "self"
                }
            ],
            "name": "demo.akadns.net",
            "status": "2014-02-20 22:56 GMT: Current configuration has been propagated to all toplevels"
        }
    ]
}

Get a domain

GET /config-gtm/v1/domains/{domain}

Example: /config-gtm/v1/domains/example.akadns.net

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net",
            "rel": "self"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
            "rel": "datacenters"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties",
            "rel": "properties"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
            "rel": "geographic-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
            "rel": "cidr-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources",
            "rel": "resources"
        }
    ],
    "cidrMaps": [
        {
            "assignments": [
                {
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ],
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men"
                },
                {
                    "blocks": [ "1.2.4.0/24" ],
                    "datacenterId": 3133,
                    "nickname": "Winterfell"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                    "rel": "self"
                }
            ],
            "name": "The North"
        }
    ],
    "datacenters": [
        {
            "city": "Downpatrick",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 54.367,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                    "rel": "self"
                }
            ],
            "longitude": -5.582,
            "nickname": "Winterfell",
            "stateOrProvince": null,
            "virtual": true
        },
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3134,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 56.185097,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                    "rel": "self"
                }
            ],
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 0.0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                    "rel": "self"
                }
            ],
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true
        }
    ],
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "emailNotificationList": [],
    "geographicMaps": [
        {
            "assignments": [
                {
                    "countries": [ "GB", "IE" ],
                    "datacenterId": 3133,
                    "nickname": "UK and Ireland users"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                    "rel": "self"
                }
            ],
            "name": "UK Delivery"
        }
    ],
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                    "rel": "self"
                }
            ],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "links": [],
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0
                }
            ],
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "1.2.3.5" ],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "1.2.3.4" ],
                    "weight": 1.0
                }
            ],
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                    "rel": "self"
                }
            ],
            "livenessTests": [],
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "2001:4878::5043:4078" ],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ],
                    "weight": 1.0
                }
            ],
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                    "rel": "self"
                }
            ],
            "livenessTests": [],
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                }
            ],
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                    "rel": "self"
                }
            ],
            "livenessTests": [],
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                }
            ],
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                    "rel": "self"
                }
            ],
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": [],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "XML load object via HTTP",
            "upperBound": 0
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                    "rel": "self"
                }
            ],
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": [],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "Non-XML load object via HTTP",
            "upperBound": 0
        }
    ],
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current".
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000"
    },
    "type": "full"
}

Create or update a domain

PUT /config-gtm/v1/domains/{domain}{?contractId,gid}

Example: /config-gtm/v1/domains/example.akadns.net

Content-Type: application/json

Request:

{
    "cidrMaps": [
        {
            "assignments": [
                {
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ],
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men"
                },
                {
                    "blocks": [ "1.2.4.0/24" ],
                    "datacenterId": 3133,
                    "nickname": "Winterfell"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "name": "The North"
        }
    ],
    "datacenters": [
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true
        },
        {
            "city": "Snæfellsjökull",
            "cloneOf": 0,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3134,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 64.808,
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 0.0,
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true
        }
    ],
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "emailNotificationList": [],
    "geographicMaps": [
        {
            "assignments": [
                {
                    "countries": [ "GB", "IE" ],
                    "datacenterId": 3133,
                    "nickname": "UK and Ireland users"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "name": "UK Delivery"
        }
    ],
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0
                }
            ],
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "1.2.3.5" ],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "1.2.3.4" ],
                    "weight": 1.0
                }
            ],
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "livenessTests": [],
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [ "2001:4878::5043:4078" ],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ],
                    "weight": 1.0
                }
            ],
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "livenessTests": [],
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "servers": [],
                    "weight": 0.0
                }
            ],
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "livenessTests": [],
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "mxRecords": [],
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "servers": [],
                    "weight": 1.0
                }
            ],
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": [],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "XML load object via HTTP",
            "upperBound": 0
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": [],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "Non-XML load object via HTTP",
            "upperBound": 0
        }
    ],
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "type": "full"
}

Parameter Type Sample Description
Required
domain String example.akadns.net The full Traffic Management domain name.
Optional query parameters
contractId String 1-1TJZFW Unique identifier for the contract. Optional unless your client credential has access to more than one contract with GTM, in which case you need to specify the contract under which to provision the domain. See Contracts and Groups for more information.
gid Integer 15166 Unique identifier for the contract. Optional unless your client credential has access to more than one group with GTM, in which case you need to specify which group to assign to the domain. See Contracts and Groups for more information.

Status 200 application/json

Response:

{
    "resource": {
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net",
                "rel": "self"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
                "rel": "datacenters"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/properties",
                "rel": "properties"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
                "rel": "geographic-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
                "rel": "cidr-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/resources",
                "rel": "resources"
            }
        ],
        "cidrMaps": [
            {
                "assignments": [
                    {
                        "blocks": [
                            "1.3.5.9",
                            "1.2.3.0/24"
                        ],
                        "datacenterId": 3134,
                        "nickname": "Frostfangs and the Fist of First Men"
                    },
                    {
                        "blocks": [ "1.2.4.0/24" ],
                        "datacenterId": 3133,
                        "nickname": "Winterfell"
                    }
                ],
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "All Other CIDR Blocks"
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                        "rel": "self"
                    }
                ],
                "name": "The North"
            }
        ],
        "datacenters": [
            {
                "city": "Doune",
                "cloneOf": 0,
                "continent": "EU",
                "country": "GB",
                "datacenterId": 3133,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "latitude": 56.185097,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                        "rel": "self"
                    }
                ],
                "longitude": -4.050264,
                "nickname": "Winterfell",
                "stateOrProvince": "Perthshire",
                "virtual": true
            },
            {
                "city": "Snæfellsjökull",
                "cloneOf": 0,
                "continent": "EU",
                "country": "IS",
                "datacenterId": 3134,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "latitude": 64.808,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                        "rel": "self"
                    }
                ],
                "longitude": -23.776,
                "nickname": "Frostfangs",
                "stateOrProvince": null,
                "virtual": true
            },
            {
                "city": null,
                "cloneOf": 0,
                "continent": null,
                "country": null,
                "datacenterId": 5400,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "latitude": 0.0,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                        "rel": "self"
                    }
                ],
                "longitude": 0.0,
                "nickname": "Default Datacenter",
                "stateOrProvince": null,
                "virtual": true
            }
        ],
        "defaultSslClientCertificate": null,
        "defaultSslClientPrivateKey": null,
        "defaultUnreachableThreshold": null,
        "emailNotificationList": [],
        "geographicMaps": [
            {
                "assignments": [
                    {
                        "countries": [ "GB", "IE" ],
                        "datacenterId": 3133,
                        "nickname": "UK and Ireland users"
                    }
                ],
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "Default Mapping"
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                        "rel": "self"
                    }
                ],
                "name": "UK Delivery"
            }
        ],
        "lastModified": "2014-04-08T18:25:51.000+0000",
        "lastModifiedBy": "admin@example.com",
        "loadFeedback": true,
        "loadImbalancePercentage": 10.0,
        "minPingableRegionFraction": null,
        "modificationComments": "CIDRMap example",
        "name": "example.akadns.net",
        "pingInterval": null,
        "properties": [
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                        "rel": "self"
                    }
                ],
                "livenessTests": [
                    {
                        "disableNonstandardPortWarning": false,
                        "hostHeader": "foo.example.com",
                        "httpError3xx": true,
                        "httpError4xx": true,
                        "httpError5xx": true,
                        "links": [],
                        "name": "health-check",
                        "requestString": null,
                        "responseString": null,
                        "sslClientCertificate": null,
                        "sslClientPrivateKey": null,
                        "testInterval": 60,
                        "testObject": "/status",
                        "testObjectPassword": null,
                        "testObjectPort": 80,
                        "testObjectProtocol": "HTTP",
                        "testObjectUsername": null,
                        "testTimeout": 25.0
                    }
                ],
                "mapName": null,
                "maxUnreachablePenalty": null,
                "mxRecords": [],
                "name": "www",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "servers": [],
                        "weight": 0.0
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "servers": [ "1.2.3.5" ],
                        "weight": 0.0
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "servers": [ "1.2.3.4" ],
                        "weight": 1.0
                    }
                ],
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": true,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                        "rel": "self"
                    }
                ],
                "livenessTests": [],
                "mapName": null,
                "maxUnreachablePenalty": null,
                "mxRecords": [],
                "name": "mail",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "servers": [],
                        "weight": 1.0
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "servers": [ "2001:4878::5043:4078" ],
                        "weight": 1.0
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "servers": [
                            "2001:4878::5043:4072",
                            "2001:4878::5043:4071"
                        ],
                        "weight": 1.0
                    }
                ],
                "type": "weighted-round-robin",
                "unreachableThreshold": null,
                "useComputedTargets": false
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                        "rel": "self"
                    }
                ],
                "livenessTests": [],
                "loadImbalancePercentage": null,
                "mapName": null,
                "maxUnreachablePenalty": null,
                "mxRecords": [],
                "name": "supplies",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "supplies.example.com",
                        "name": null,
                        "servers": [],
                        "weight": 1.0
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": "winter.supplies.example.com",
                        "name": null,
                        "servers": [],
                        "weight": 0.0
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "redcross.org",
                        "name": null,
                        "servers": [],
                        "weight": 0.0
                    }
                ],
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                        "rel": "self"
                    }
                ],
                "livenessTests": [],
                "loadImbalancePercentage": null,
                "mapName": "UK Delivery",
                "maxUnreachablePenalty": null,
                "mxRecords": [],
                "name": "shop",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "shop.example.com",
                        "name": null,
                        "servers": [],
                        "weight": 1.0
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "servers": [],
                        "weight": 1.0
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "uk.shop.example.com",
                        "name": null,
                        "servers": [],
                        "weight": 1.0
                    }
                ],
                "type": "geographic",
                "unreachableThreshold": null,
                "useComputedTargets": false
            }
        ],
        "resources": [
            {
                "aggregationType": "latest",
                "constrainedProperty": "mail",
                "decayRate": null,
                "description": "CPU utilization",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                        "rel": "self"
                    }
                ],
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "cpu",
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "loadServers": [ "1.2.3.8" ],
                        "useDefaultLoadObject": false
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "loadServers": [ "1.2.3.7" ],
                        "useDefaultLoadObject": false
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "loadServers": [],
                        "useDefaultLoadObject": false
                    }
                ],
                "type": "XML load object via HTTP",
                "upperBound": 0
            },
            {
                "aggregationType": "latest",
                "constrainedProperty": "**",
                "decayRate": null,
                "description": "Supply levels of Arbor Gold",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                        "rel": "self"
                    }
                ],
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "arbor-gold",
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "loadServers": [ "1.2.3.8" ],
                        "useDefaultLoadObject": false
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "loadServers": [ "1.2.3.7" ],
                        "useDefaultLoadObject": false
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "loadServers": [],
                        "useDefaultLoadObject": false
                    }
                ],
                "type": "Non-XML load object via HTTP",
                "upperBound": 0
            }
        ],
        "roundRobinPrefix": null,
        "servermonitorLivenessCount": null,
        "servermonitorLoadCount": null,
        "status": {
            "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/status/current".
                    "rel": "self"
                }
            ],
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-04-08T18:25:51.000+0000"
        },
        "type": "full"
    },
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current".
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000"
    }
 }

List data centers

GET /config-gtm/v1/domains/{domain}/datacenters

Example: /config-gtm/v1/domains/example.akadns.net/datacenters

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "items": [
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 56.185097,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                    "rel": "self"
                }
            ],
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true
        },
        {
            "city": "Snæfellsjökull",
            "cloneOf": 0,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3134,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "latitude": 64.808,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                    "rel": "self"
                }
            ],
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true
        }
    ]
}

Create a data center

POST /config-gtm/v1/domains/{domain}/datacenters

Example: /config-gtm/v1/domains/example.akadns.net/datacenters

Content-Type: application/json

Request:

 {
    "city": "Doune",
    "stateOrProvince": "Perthshire",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    },
    "latitude": 56.185096,
    "longitude": -4.050264,
    "nickname": "Winterfell"
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 201 application/json

Headers:

  • Location: /config-gtm/v1/domains/example.akadns.net/datacenters/3133

Response:

{
    "resource": {
        "city": "Doune",
        "cloneOf": 0,
        "continent": "EU",
        "country": "GB",
        "datacenterId": 3133,
        "defaultLoadObject": {
            "loadObject": null,
            "loadObjectPort": 0,
            "loadServers": null
        },
        "latitude": 56.185097,
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                "rel": "self"
            }
        ],
        "longitude": -4.050264,
        "nickname": "Winterfell",
        "stateOrProvince": "Perthshire",
        "virtual": true
    },
    "status": {
        "changeId": "f0c51967-d119-4665-9403-364a57ea5530",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Get a data center

GET /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}

Example: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Parameter Type Sample Description
Required
datacenterId Number 1 Numeric id of the data center.
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "city": "Downpatrick",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "datacenterId": 3133,
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    },
    "latitude": 54.367,
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
            "rel": "self"
        }
    ],
    "longitude": -5.582,
    "nickname": "Winterfell",
    "stateOrProvince": null,
    "virtual": true
}

Update a data center

PUT /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}

Example: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Content-Type: application/json

Request:

{
    "city": "Downpatrick",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "datacenterId": 3133,
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    },
    "latitude": 54.367,
    "longitude": -5.582,
    "nickname": "Winterfell"
}

Parameter Type Sample Description
Required
datacenterId Number 1 Numeric id of the data center.
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "resource": {
        "city": "Downpatrick",
        "cloneOf": 0,
        "continent": "EU",
        "country": "GB",
        "datacenterId": 3133,
        "defaultLoadObject": {
            "loadObject": null,
            "loadObjectPort": 0,
            "loadServers": null
        },
        "latitude": 54.367,
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                "rel": "self"
            }
        ],
        "longitude": -5.582,
        "nickname": "Winterfell",
        "stateOrProvince": null,
        "virtual": true
    },
    "status": {
        "changeId": "bd69be9b-ff44-433d-bff8-ae00d270ea33",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove a data center

DELETE /config-gtm/v1/domains/{domain}/datacenters/{datacenterId}

Example: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Parameter Type Sample Description
Required
datacenterId Number 1 Numeric id of the data center.
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "resource": null,
    "status": {
        "changeId": "66c7ff0b-4b9e-41cc-9fd0-34d4f75c2484",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-03T21:18:01.000+0000"
    }
}

List properties

GET /config-gtm/v1/domains/{domain}/properties

Example: /config-gtm/v1/domains/example.akadns.net/properties

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "items": [
        {
            "balanceByDownloadScore": false,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "ipv6": false,
            "lastModified": "2014-04-07T16:21:27.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                    "rel": "self"
                }
            ],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testTimeout": 25.0
                }
            ],
            "mxRecords": [],
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "servers": [ "1.2.3.5" ],
                    "weight": 0.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "servers": [ "1.2.3.4" ],
                    "weight": 1.0
                }
            ],
            "type": "failover",
            "useComputedTargets": false
        },
        {
            "balanceByDownloadScore": false,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "ipv6": true,
            "lastModified": "2014-04-07T16:21:27.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                    "rel": "self"
                }
            ],
            "livenessTests": [],
            "mxRecords": [],
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "trafficTargets": [
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "servers": [ "2001:4878::5043:4078" ],
                    "weight": 1.0
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ],
                    "weight": 1.0
                }
            ],
            "type": "weighted-round-robin",
            "useComputedTargets": false
        }
    ]
}

Get a property

GET /config-gtm/v1/domains/{domain}/properties/{propertyName}

Example: /config-gtm/v1/domains/example.akadns.net/properties/www

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
propertyName String www Name of property to create or update.

Status 200 application/json

Response:

{
    "backupCName": null,
    "backupIp": null,
    "balanceByDownloadScore": false,
    "cname": null,
    "comments": null,
    "dynamicTTL": 300,
    "failbackDelay": 0,
    "failoverDelay": 0,
    "handoutMode": "normal",
    "healthMax": null,
    "healthMultiplier": null,
    "healthThreshold": null,
    "ipv6": false,
    "lastModified": "2014-04-08T15:11:10.000+0000",
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
            "rel": "self"
        }
    ],
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "requestString": null,
            "responseString": null,
            "sslClientCertificate": null,
            "sslClientPrivateKey": null,
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPassword": null,
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testObjectUsername": null,
            "testTimeout": 25.0
        }
    ],
    "loadImbalancePercentage": null,
    "mapName": null,
    "maxUnreachablePenalty": null,
    "mxRecords": [],
    "name": "www",
    "scoreAggregationType": "mean",
    "staticTTL": 600,
    "stickinessBonusConstant": 0,
    "stickinessBonusPercentage": 0,
    "trafficTargets": [
        {
            "datacenterId": 3134,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "servers": [ "1.2.3.5" ],
            "weight": 0.0
        },
        {
            "datacenterId": 3133,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "servers": [ "1.2.3.4" ],
            "weight": 1.0
        }
    ],
    "type": "failover",
    "unreachableThreshold": null,
    "useComputedTargets": false
}

Create or update a property

PUT /config-gtm/v1/domains/{domain}/properties/{propertyName}

Example: /config-gtm/v1/domains/example.akadns.net/properties/www

Content-Type: application/json

Request:

{
    "balanceByDownloadScore": false,
    "failbackDelay": 0,
    "failoverDelay": 0,
    "handoutMode": "normal",
    "healthMax": null,
    "healthMultiplier": null,
    "healthThreshold": null,
    "ipv6": false,
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "requestString": null,
            "responseString": null,
            "sslClientCertificate": null,
            "sslClientPrivateKey": null,
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPassword": null,
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testObjectUsername": null,
            "testTimeout": 25.0
        }
    ],
    "mxRecords": [],
    "name": "origin",
    "scoreAggregationType": "mean",
    "staticTTL": 600,
    "stickinessBonusConstant": 0,
    "stickinessBonusPercentage": 0,
    "trafficTargets": [
        {
            "datacenterId": 3134,
            "enabled": true,
            "servers": [ "1.2.3.5" ],
            "weight": 50.0
        },
        {
            "datacenterId": 3133,
            "enabled": true,
            "servers": [ "1.2.3.4" ],
            "weight": 50.0
        }
    ],
    "type": "weighted-round-robin",
    "useComputedTargets": false
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
propertyName String www Name of property to create or update.

Status 201 application/json

Response:

{
    "resource": {
        "backupCName": null,
        "backupIp": null,
        "balanceByDownloadScore": false,
        "cname": null,
        "comments": null,
        "dynamicTTL": 300,
        "failbackDelay": 0,
        "failoverDelay": 0,
        "handoutMode": "normal",
        "healthMax": null,
        "healthMultiplier": null,
        "healthThreshold": null,
        "ipv6": false,
        "lastModified": null,
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/properties/origin",
                "rel": "self"
            }
        ],
        "livenessTests": [
            {
                "disableNonstandardPortWarning": false,
                "hostHeader": "foo.example.com",
                "httpError3xx": true,
                "httpError4xx": true,
                "httpError5xx": true,
                "name": "health-check",
                "requestString": null,
                "responseString": null,
                "sslClientCertificate": null,
                "sslClientPrivateKey": null,
                "testInterval": 60,
                "testObject": "/status",
                "testObjectPassword": null,
                "testObjectPort": 80,
                "testObjectProtocol": "HTTP",
                "testObjectUsername": null,
                "testTimeout": 25.0
            }
        ],
        "loadImbalancePercentage": null,
        "mapName": null,
        "maxUnreachablePenalty": null,
        "mxRecords": [],
        "name": "origin",
        "scoreAggregationType": "mean",
        "staticTTL": 600,
        "stickinessBonusConstant": 0,
        "stickinessBonusPercentage": 0,
        "trafficTargets": [
            {
                "datacenterId": 3134,
                "enabled": true,
                "handoutCName": null,
                "name": null,
                "servers": [ "1.2.3.5" ],
                "weight": 50.0
            },
            {
                "datacenterId": 3133,
                "enabled": true,
                "handoutCName": null,
                "name": null,
                "servers": [ "1.2.3.4" ],
                "weight": 50.0
            }
        ],
        "type": "weighted-round-robin",
        "unreachableThreshold": null,
        "useComputedTargets": false
    },
    "status": {
        "changeId": "eee0c3b4-0e45-4f4b-822c-7dbc60764d18",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove a property

DELETE /config-gtm/v1/domains/{domain}/properties/{propertyName}

Example: /config-gtm/v1/domains/example.akadns.net/properties/www

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
propertyName String www Name of property to create or update.

Status 200 application/json

Response:

{
    "resource": null,
    "status": {
        "changeId": "426e9ea3-c968-47df-a41b-43a993c6f873",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T12:52:46.000+0000"
    }
}

List resources

GET /config-gtm/v1/domains/{domain}/resources

Example: /config-gtm/v1/domains/example.akadns.net/resources

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "items": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                    "rel": "self"
                }
            ],
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "Non-XML load object via HTTP",
            "upperBound": 0
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                    "rel": "self"
                }
            ],
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.8" ],
                    "useDefaultLoadObject": false
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "loadServers": [ "1.2.3.7" ],
                    "useDefaultLoadObject": false
                }
            ],
            "type": "XML load object via HTTP",
            "upperBound": 0
        }
    ]
}

Get a resource

GET /config-gtm/v1/domains/{domain}/resources/{resourceName}

Example: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
resourceName String cpu Name of Resource to create or update.

Status 200 application/json

Response:

{
    "aggregationType": "latest",
    "constrainedProperty": "**",
    "decayRate": null,
    "description": "Supply levels of Arbor Gold",
    "hostHeader": null,
    "leaderString": null,
    "leastSquaresDecay": null,
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
            "rel": "self"
        }
    ],
    "loadImbalancePercentage": null,
    "maxUMultiplicativeIncrement": null,
    "name": "arbor-gold",
    "resourceInstances": [
        {
            "datacenterId": 3134,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "loadServers": [ "1.2.3.8" ],
            "useDefaultLoadObject": false
        },
        {
            "datacenterId": 3133,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "loadServers": [ "1.2.3.7" ],
            "useDefaultLoadObject": false
        }
    ],
    "type": "Non-XML load object via HTTP",
    "upperBound": 0
}

Create or update a resource

PUT /config-gtm/v1/domains/{domain}/resources/{resourceName}

Example: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Content-Type: application/json

Request:

{
    "aggregationType": "latest",
    "constrainedProperty": "mail",
    "decayRate": null,
    "description": "Disk utilization",
    "hostHeader": null,
    "leaderString": null,
    "leastSquaresDecay": null,
    "loadImbalancePercentage": null,
    "maxUMultiplicativeIncrement": null,
    "name": "disk",
    "resourceInstances": [
        {
            "datacenterId": 3134,
            "loadObject": "/disk",
            "loadObjectPort": 80,
            "loadServers": [ "1.2.3.9" ],
            "useDefaultLoadObject": false
        },
        {
            "datacenterId": 3133,
            "loadObject": "/disk",
            "loadObjectPort": 80,
            "loadServers": [ "1.2.3.10" ],
            "useDefaultLoadObject": false
        }
    ],
    "type": "XML load object via HTTP",
    "upperBound": 0
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
resourceName String cpu Name of Resource to create or update.

Status 200 application/json

Response:

{
    "resource": {
        "aggregationType": "latest",
        "constrainedProperty": "mail",
        "decayRate": null,
        "description": "Disk utilization",
        "hostHeader": null,
        "leaderString": null,
        "leastSquaresDecay": null,
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/resources/disk",
                "rel": "self"
            }
        ],
        "loadImbalancePercentage": null,
        "maxUMultiplicativeIncrement": null,
        "name": "disk",
        "resourceInstances": [
            {
                "datacenterId": 3134,
                "loadObject": "/disk",
                "loadObjectPort": 80,
                "loadServers": [ "1.2.3.9" ],
                "useDefaultLoadObject": false
            },
            {
                "datacenterId": 3133,
                "loadObject": "/disk",
                "loadObjectPort": 80,
                "loadServers": [ "1.2.3.10" ],
                "useDefaultLoadObject": false
            }
        ],
        "type": "XML load object via HTTP",
        "upperBound": 0
    },
    "status": {
        "changeId": "79255c00-f6b6-48ea-9d67-c6d02a8742c9",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove a resource

DELETE /config-gtm/v1/domains/{domain}/resources/{resourceName}

Example: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
resourceName String cpu Name of Resource to create or update.

Status 200 application/json

Response:

{
    "resource": null,
    "status": {
        "changeId": "a97bedfe-c997-4634-84a4-cdb31529fb4c",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T13:44:53.000+0000"
    }
}

List geographic maps

GET /config-gtm/v1/domains/{domain}/geographic-maps

Example: /config-gtm/v1/domains/example.akadns.net/geographic-maps

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "items": [
        {
            "assignments": [
                {
                    "countries": [ "GB", "IE" ],
                    "datacenterId": 3133,
                    "nickname": "UK and Ireland users"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                    "rel": "self"
                }
            ],
            "name": "UK Delivery"
        }
    ]
}

Get a geographic map

GET /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of Geographic Map to create or update.

Status 200 application/json

Response:

{
    "assignments": [
        {
            "countries": [ "GB", "IE" ],
            "datacenterId": 3133,
            "nickname": "UK and Ireland users"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "Default Mapping"
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
            "rel": "self"
        }
    ],
    "name": "UK Delivery"
}

Create or update a geographic map

PUT /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Content-Type: application/json

Request:

{
    "assignments": [
        {
            "countries": [ "GB", "IE" ],
            "datacenterId": 3133,
            "nickname": "UK and Ireland users"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "Default Mapping"
    }
    "name": "UK Delivery"
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of Geographic Map to create or update.

Status 200 application/json

Response:

{
    "resource": {
        "assignments": [
            {
                "countries": [ "GB", "IE" ],
                "datacenterId": 3133,
                "nickname": "UK and Ireland users"
            }
        ],
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "Default Mapping"
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                "rel": "self"
            }
        ],
        "name": "UK Delivery"
    },
    "status": {
        "changeId": "f2977f97-565b-46af-abfb-1da7e3e8c54b",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove a geographic map

DELETE /config-gtm/v1/domains/{domain}/geographic-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of Geographic Map to create or update.

Status 200 application/json

Response:

{
    "resource": null,
    "status": {
        "changeId": "a97bedfe-c997-4634-84a4-cdb31529fb4c",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T13:44:53.000+0000"
    }
}

List CIDR maps

GET /config-gtm/v1/domains/{domain}/cidr-maps

Example: /config-gtm/v1/domains/example.akadns.net/cidr-maps

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "items": [
        {
            "assignments": [
                {
                    "blocks": [ "1.2.3.0/24" ],
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men"
                },
                {
                    "blocks": [ "1.2.4.0/24" ],
                    "datacenterId": 3133,
                    "nickname": "Winterfell"
                }
            ],
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                    "rel": "self"
                }
            ],
            "name": "The North"
        }
    ]
}

Get a CIDR map

GET /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of CIDR Map to create or update.

Status 200 application/json

Response:

{
    "assignments": [
        {
            "blocks": [ "1.2.3.0/24" ],
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men"
        },
        {
            "blocks": [ "1.2.4.0/24" ],
            "datacenterId": 3133,
            "nickname": "Winterfell"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other CIDR Blocks"
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
            "rel": "self"
        }
    ],
    "name": "The North"
}

Create or update a CIDR map

PUT /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Content-Type: application/json

Request:

{
    "assignments": [
        {
            "blocks": [
                "1.3.5.9",
                "1.2.3.0/24"
            ],
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men"
        },
        {
            "blocks": [ "1.2.4.0/24" ],
            "datacenterId": 3133,
            "nickname": "Winterfell"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other CIDR Blocks"
    }
    "name": "The North"
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of CIDR Map to create or update.

Status 200 application/json

Response:

{
    "resource": {
        "assignments": [
            {
                "blocks": [
                    "1.3.5.9",
                    "1.2.3.0/24"
                ],
                "datacenterId": 3134,
                "nickname": "Frostfangs and the Fist of First Men"
            },
            {
                "blocks": [ "1.2.4.0/24" ],
                "datacenterId": 3133,
                "nickname": "Winterfell"
            }
        ],
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "All Other CIDR Blocks"
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%2520North",
                "rel": "self"
            }
        ],
        "name": "The North"
    },
    "status": {
        "changeId": "93a48b86-4fc3-4a5f-9ca2-036835034cc6",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove a CIDR map

DELETE /config-gtm/v1/domains/{domain}/cidr-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of CIDR Map to create or update.

Status 200 application/json

Response:

{
    "resource": null,
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000"
    }
}

Get an AS map

GET /config-gtm/v1/domains/{domain}/as-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of AS Map to create, update or delete.

Status 200 application/vnd.config-gtm.v1.1+json

Response:

{
    "assignments": [
        {
            "asNumbers": [ 12222, 16702, 17334 ],
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men"
        },
        {
            "asNumbers": [ 16625 ],
            "datacenterId": 3133,
            "nickname": "Winterfell"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other AS numbers"
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%20North",
            "rel": "self"
        }
    ],
    "name": "The North"
}

Create or update an AS map

PUT /config-gtm/v1/domains/{domain}/as-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Content-Type: application/vnd.config-gtm.v1.1+json

Request:

{
    "assignments": [
        {
            "asNumbers": [ 16625 ],
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men"
        },
        {
            "asNumbers": [ 12222, 16702, 17334 ],
            "datacenterId": 3133,
            "nickname": "Winterfell"
        }
    ],
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other AS Numbers"
    }
    "name": "The North"
}

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of AS Map to create, update or delete.

Status 200 application/vnd.config-gtm.v1.1+json

Response:

{
    "resource": {
        "assignments": [
            {
                "asNumbers": [ 16625 ],
                "datacenterId": 3134,
                "nickname": "Frostfangs and the Fist of First Men"
            },
            {
                "asNumbers": [ 12222, 16702, 17334 ],
                "datacenterId": 3133,
                "nickname": "Winterfell"
            }
        ],
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "All Other AS Numbers"
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%2520North",
                "rel": "self"
            }
        ],
        "name": "The North"
    },
    "status": {
        "changeId": "93a48b86-4fc3-4a5f-9ca2-036835034cc6",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000"
    }
}

Remove an AS map

DELETE /config-gtm/v1/domains/{domain}/as-maps/{mapName}

Example: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.
mapName String Software-rollout Name of AS Map to create, update or delete.

Status 200 application/vnd.config-gtm.v1.1+json

Response:

{
    "resource": null,
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ],
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000"
    }
}

Get current status

GET /config-gtm/v1/domains/{domain}/status/current

Example: /config-gtm/v1/domains/example.akadns.net/status/current

Parameter Type Sample Description
Required
domain String example.akadns.net Name of Traffic Management domain.

Status 200 application/json

Response:

{
    "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
    "links": [
        "href": "/config-gtm/v1/domains/example.akadns.net/status/current".
        "rel": "self"
    ],
    "message": "Current configuration has been propagated to all toplevels",
    "passingValidation": true,
    "propagationStatus": "COMPLETE",
    "propagationStatusDate": "2014-03-08T15:39:00.000+0000"
}

Data

This section provides details on all the JSON object types the Traffic Management API exchanges, and their accompanying schemas.

JSON schemas

Version 1.0, application/json, application/vnd.config-gtm.v1.0+json:

Object Type JSON Schema
Datacenter datacenter-vnd.config-gtm.v1.0.schema.json
Property property-vnd.config-gtm.v1.0.schema.json
Resource resource-vnd.config-gtm.v1.0.schema.json
Geographic Map geographic-map-vnd.config-gtm.v1.0.schema.json
CIDR Map cidr-map-vnd.config-gtm.v1.0.schema.json
Domain domain-vnd.config-gtm.v1.0.schema.json

Version 1.1, application/vnd.config-gtm.v1.1+json:

Object Type JSON Schema
Datacenter datacenter-vnd.config-gtm.v1.1.schema.json
Property property-vnd.config-gtm.v1.1.schema.json
Resource resource-vnd.config-gtm.v1.1.schema.json
Geographic Map geographic-map-vnd.config-gtm.v1.1.schema.json
CIDR Map cidr-map-vnd.config-gtm.v1.1.schema.json
Autonomous System Map as-map-vnd.config-gtm.v1.1.schema.json
Domain domain-vnd.config-gtm.v1.1.schema.json

Version 1.2, application/vnd.config-gtm.v1.2+json:

Object Type JSON Schema
Datacenter datacenter-vnd.config-gtm.v1.2.schema.json
Property property-vnd.config-gtm.v1.2.schema.json
Resource resource-vnd.config-gtm.v1.2.schema.json
Geographic Map geographic-map-vnd.config-gtm.v1.2.schema.json
CIDR Map cidr-map-vnd.config-gtm.v1.2.schema.json
Autonomous System Map as-map-vnd.config-gtm.v1.2.schema.json
Domain domain-vnd.config-gtm.v1.2.schema.json

Version 1.3, application/vnd.config-gtm.v1.3+json:

Object Type JSON Schema
Datacenter datacenter-vnd.config-gtm.v1.3.schema.json
Property property-vnd.config-gtm.v1.3.schema.json
Resource resource-vnd.config-gtm.v1.3.schema.json
Geographic Map geographic-map-vnd.config-gtm.v1.3.schema.json
CIDR Map cidr-map-vnd.config-gtm.v1.3.schema.json
Autonomous System Map as-map-vnd.config-gtm.v1.3.schema.json
Domain domain-vnd.config-gtm.v1.3.schema.json

Datacenter

A data center or a region, is a group of servers that is a unit of load partitioning. Traffic Management balances load across data centers but not within data centers. Each property can be served from multiple customer data centers. For example, www might be in DC1 (SantaClara), DC2 (London) and DC3 (Tokyo), and foo in DC1 and DC3.

JSON schema: datacenter-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
city String Name of the city where data center is located.
cloneOf Number Integer identifying a clone of a physical or virtual data center used to sub-divide the collection of servers. This property tracks the datacenterId of the data center this data center is designated a clone of, if any.
continent Enumeration Two-letter continent code, either AF, AS, EU, NA, OC, OT, or SA, representing the continent where the data center is located. If omitted, Traffic Management fills it in based on looking up the country code in a country-to-continent mapping published by Akamai’s EdgeScape service.
country String Two-letter ISO 3166 country code of the country where data center is located.
datacenterId Number Integer identifier to new data centers.
defaultLoadObject DefaultLoadObject
latitude Number Latitude of the city where data center is located.
longitude Number Longitude of the city where data center is located.
nickname String Nickname for this data center, maximum 256 characters.
stateOrProvince String Name of the state or province where data center is located.
virtual Boolean A read-only, documentation-oriented field to convey to clients whether or not the data center is virtual or physical, the latter meaning the data center has an Akamai Network Agent installed, and its physical location (latitude, longitude, etc.) is fixed.

DefaultLoadObject

The load reporting interface between the customer and the Global Traffic Management system. A load object is a file that provides real-time information about the current, maximum allowable, and target load on each resource.

This default load object is intended to be shared. Individual Resources can specify useDefault to use it instead of specifying their own.

Member Type Required Description
loadObjectPort Number TCP port with which to connect when requesting the load object. A value of 0 means to use the default port, equivalent to either 80 or 443.
loadObject String Load object that Traffic Management requests. A load object is a file that provides real-time information about the current, maximum allowable, and target load on each resource. String may not begin with a : character, and has a maximum of 256 characters.
loadServers Array List of servers from which to request the load object. Must contain IPv4 or IPv6 addresses, or DNS names that contain A or AAAA records. If a DNS name has both A and AAAA records, then Traffic Management picks one randomly. For IP addresses, do not use non-routable RFC–1918 addresses.

Property

Representation of Traffic Management property, (e.g., www) which in DNS terms is a subdomain of the domain. Combined with its domain (e.g., example.akadns.net), the fully qualified domain name www.example.akadns.net is used for load balancing.

JSON schema: property-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
backupCName String If Traffic Management decides that all of the servers configured for your property are down, and you have configured a backup CNAME, then queries for the property return this backup CNAME. If this field is set, backupIp must not be set, and vise versa.
backupIp String Backup IP to hand out when all targets are declared down. The IP type coincides with property’s IPv6 setting. If this field is set, the backupCName field must not be set, and vise versa.
balanceByDownloadScore Boolean Enables download score based load balancing. Traffic Management estimates the load on your data centers based on how long they take to respond to liveness tests.
cname String The fully qualified name in your domain that is aliased to a particular property; the public name of the property.
comments String Maximum of 1,000 characters.
dynamicTTL Number The TTL (in integer seconds) for records that might change from moment to moment based on liveness and load balancing: A and AAAA records, and CNAMEs. Value ranges from 30 to 3600, defaulting to 300.
failbackDelay Number Failback delay in integer seconds, minimum 0. If specified, when a server has been down, and comes back up (its liveness test starts succeeding again), then Traffic Management won’t consider it up right away, but only after the failback delay has elapsed and tests continue to succeed.
failoverDelay Number Failover delay in seconds, minimum 0. If specified, when a server begins failing its liveness test, Traffic Management doesn’t consider it down right away, but only after the failover delay has elapsed and the errors persist.
handoutLimit Number Handout Limit limits the number of live IPs handed out to a DNS request. This setting will only apply if the handoutMode setting for the property is either normal or persistent. The default value is 8 if this field is unset (null).

Note: Requires application/vnd.config-gtm.v1.3+json to enable.
handoutMode Enumeration Relevant only when you have more than one server IP in a data center, this specifies behavior of how IPs are returned when more than one is alive and available. Either normal, persistent, one-ip, one-ip-hashed, or all-live-ips, defaulting to normal.
healthMax Number If a backup CNAMEs are provided for a property, then it is reasonable for all IPs to be declared unhealthy. healthMax defines the absolute limit beyond which IPs are called unhealthy. The value is multiplied by the smaller of the timeout penalty and the error penalty, and any server with a score greater than this product is declared down.
healthMultiplier Number Configures a cutoff value that is computed from the median scores; any server with a score over the cutoff value are considered dead, and load won’t be sent to it. The cutoff is computed from the minimum score across all data centers (for a given property) and two parameters: health_multiplier and health_threshold. The cutoff is either health_multiplier (default value: 1.5) times the minimum score, or the health_threshold (default value: 4), whichever is greater. For more information, see How GTM Determines Server Liveness in the Understanding and Using Global Traffic Management guide.
healthThreshold Number Configures a cutoff value that is computed from the median scores; any server with a score over the cutoff value are considered dead, and load won’t be sent to it. The cutoff is computed from the minimum score across all data centers (for a given property) and two parameters: health_multiplier and health_threshold. The cutoff is either health_multiplier (default value: 1.5) times the minimum score, or the health_threshold (default value: 4), whichever is greater. For more information, see How GTM Determines Server Liveness in the Understanding and Using Global Traffic Management guide.
ipv6 Boolean Specifies the type of IP address handed out by this property. A true value indicates that all IP addresses specified are IPv6, and all hostnames must resolve to an AAAA records. A false value indicates IPv4 addresses, with whose hostnames must resolve to A records. Requires access to IPv6 feature to enable.
lastModified String A date-time string.
livenessTests LivenessTest Liveness tests that are to be run periodically to determine whether your servers are alive.
loadImbalancePercentage Number The load imbalance percentage controls how imbalanced Traffic Management allows the load to be, the percentage by which the demand sent to a data center is permitted to exceed the configured value. Allowed range is 0 to 1000000.
mapName String Name of GeographicMap or CIDRMap to use if property type is either geographic or cidrmapping, in which case the member is required. Must reference an existing Geographic Map in the same domain if the type is geographic, or CIDR Map if the type is cidrmapping.
maxUnreachablePenalty Number Minimum of 0.
mxRecords MXRecord Configures MX Records to be handed out to MX record type queries. Note that no mapping nor liveness testing is done; the same MX records are handed out for every request.
name String A property is a subdomain within a Traffic Management domain; the property name is combined with the domain name, and is used for load balancing. The property’s name plus the domain name should not be longer than 255 characters. It may not begin or end with a dot (.), may not begin resource, or ax followed by a set of digits. It must match this pattern: ^[\w-]+(\.[\w-]+)*$
scoreAggregationType Enumeration Specifies how Traffic Management aggregates liveness test scores across different tests, when multiple tests are configured. Either mean, median, best, or worst, the default value.
staticTTL Number specifies the the TTL (in integer seconds from 30 to 3600) for record types that do not change moment-to-moment (MX, SPF and TXT records). These change only when the user makes a change to the configuration. Required if mxRecords are present.
stickinessBonusConstant Number Integer from 0 to 30000. The stickiness constant is one of two settings for configuring data center affinity; the other is stickinessBonusPercentage. The constant specifies that a user should not be switched unless the resulting improvement to their score exceeds a configured threshold. Correctly configured, this keeps small variations in scores from flipping users from one data center to the next, but allows users to be moved when the score difference is so great that their performance would otherwise suffer. This setting configures stickiness as an absolute score for a data center. It only applies if property’s type is performance and its domain type is full.
stickinessBonusPercentage Number Integer from 0 to 100. The stickiness bonus is one of two settings for configuring data center affinity; the other is stickinessBonusConstant. The bonus specifies that a user should not be switched unless the resulting improvement to their score exceeds a configured threshold. Correctly configured, this keeps small variations in scores from flipping users from one data center to the next, but allows users to be moved when the score difference is so great that their performance would otherwise suffer. This setting configures stickiness as a percentage of the score for a data center. It only applies if the property’s type is performance and the domain type is full.
trafficTargets TrafficTarget The traffic target is an option for where to direct traffic. Lists of traffic targets include only those that are available with the activity the customers are performing.
type Enumeration Specifies the type of load balancing behavior for this property, either failover, geographic, cidrmapping, weighted-round-robin, weighted-hashed, weighted-round-robin-load-feedback, qtr, or performance. An additional value of asmapping requires the application/vnd.config-gtm.v1.1+json media type. See API Versioning for more information.
unreachableThreshold Number Decimal between 0 and 1. For performance domains, a penalty is added to liveness test scores from data centers that have an aggregate loss fraction higher than unreachable threshold. A value of 1.0 (or null, the default) disables any unreachability penalty.
useComputedTargets Boolean Specifies that you want Traffic Management to automatically compute target load, meaning that only the current load is being reported by your load objects (either by omission, or by using non-xml load objects). For more information, see Computed Targets in the Understanding and Using Global Traffic Management guide. Only valid for load-feedback domains.

TrafficTarget

The traffic target is an option for where to direct traffic. Lists of traffic targets include only those that are available with the activity the customers are performing.

  • For geographic mapped properties, it is always a CNAME.

  • For Mirror Failover, it can be any set of servers.

  • For load balanced properties, this is a set of servers that are all within the same data center. Customers can have multiple traffic targets associated with the same data center (sub-data centers).

Member Type Required Description
datacenterId Number Integer identifier for an existing data center in the domain.
enabled Boolean
handoutCName String Maximum 63 characters for the labels, 255 characters overall. May contain alphanumeric, hyphens, and underscores, but not literal IPv4 addresses. No leading or trailing hyphens are allowed.
name String Nickname for this Traffic Target.
servers Array
weight Number Required when the enclosing property’s type is failover, weighted, weighted-with-load-feedback, or performance. For failover properties, set this value to 1 for the Traffic Target you want to mark as primary. For weighted, weighted-with-load-feedback or performance, set this to the percentage of the total load. The sum of this value, for all enabled targets, must add up to 100.

LivenessTest

You can optionally configure Traffic Management to perform liveness tests periodically to determine whether your servers are alive. When you do this, Traffic Management tries to return answers that contain only the A records for live servers. The liveness tests are performed by Akamai systems out in the Internet called web agents. Each of your data centers is liveness-tested by several agents, chosen for proximity to your data center (closer is better) and for network diversity (you don’t want all the tests conducted from the same ISP, otherwise a local problem in that ISP would falsely declare your data center down).

If all servers for a property are failing their liveness tests, GTM considers them all up, as it has no basis for preferring any of them.

A data center is considered up if any of the servers in it are considered up.

Member Type Required Description
answersRequired Boolean If testObjectProtocol is DNS, requires an answer to the DNS query to be considered a success.

Note: Requires application/vnd.config-gtm.v1.3+json to enable.
disableNonstandardPortWarning Boolean Disables warnings when using non-standard ports. For instance, Traffic Management does not emit a warning for specifying port 1234 when the testObjectProtocol is http, as HTTP typically uses port 80.
hostHeader String Sent if the testObjectProtocol is http or https
httpError3xx Boolean Treats a 3xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp
httpError4xx Boolean Treats a 4xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp
httpError5xx Boolean Treats a 5xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp
name String Maximum 128 characters.
peerCertificateVerification Boolean Validate origin certificate. Applies to tests with testObjectProtocol = https.

Note: Requires application/vnd.config-gtm.v1.3+json to enable.
recursionRequested Boolean If testObjectProtocol is DNS, DNS query will be recursive.

Note: Requires application/vnd.config-gtm.v1.3+json to enable.
requestString String Required if testObjectProtocol is tcp or tcps. Maximum 512 characters.
resourceType Enumeration If testObjectProtocol is DNS, specifies query type. Values must be one of : A, AAAA, AFSDB, CNAME, HINFO, LOC, MX, NAPTR, NS, PTR, RP, SOA, SPF, SRV, SSHFP, TXT, DNSKEY, DS, NSEC3, NSEC3PARAM, RRSIG. Additional support for unknown types (TYPENNNNN) where NNNNN is an integer from 1 through 65535.

Note: Requires application/vnd.config-gtm.v1.3+json to enable.
responseString String
sslClientCertificate String Base64-encoded certificate.
sslClientPrivateKey String Base64-encoded private key. Private keys are often protected with a passphrase, but Traffic Management has no mechanism for supplying a passphrase, so the private key used must not have a passphrase. The private key used to generate a certificate (or the CSR used to request the certificate) for this purpose must be a throwaway one not used for any other purpose.
testInterval Number Interval at which test is run, in integer seconds, minimum of 10.
testObjectPassword String Required if testObjectProtocol is ftp. Maximum 128 characters.
testObjectPort Number Integer ranging from 0 to 65535.
testObjectProtocol Enumeration Either HTTP, HTTPS, DNS, FTP, POP, POPS, SMTP, SMTPS, TCP, or TCPS.

Note: DNS requires application/vnd.config-gtm.v1.3+json to enable.
testObjectUsername String Required if testObjectProtocol is ftp. Maximum 256 characters.
testObject String Required if testObjectProtocol is http or https. Maximum 256 characters. The format /^:[\d]+/.*$/ is deprecated; use the port value instead.
testTimeout Number Range from 0.001 to 60 seconds.

MXRecord

Member Type Required Description
exchange String A valid domain name to handout for MX queries.
priority String Priority value set in rdata of DNS response for this host.

Resource

An abstract entity that governs the properties within a data center and has the ability to constrain the load on the properties that it governs. Consider a resource as something that can impose a capacity constraint on the load associated with one or more properties in a data center. The goal of resources is to encapsulate the architecture and topology of the network in a data center.

For example, each property normally has an associated resource that represents the capacity of the servers for that property. In addition, there might be a resource that constrains the aggregate bandwidth available to all properties in a data center.

JSON schema: resource-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
aggregationType Enumeration Either sum, median, or latest.
constrainedProperty String Must be either the name of an existing property in the domain, the literal string ** for all properties in the domain, or null for no properties.
decayRate Number Decimal between 0 and 1.
description String Maximum 256 characters.
hostHeader String Valid DNS hostname, maximum 255 characters.
leaderString String Maximum 256 characters.
leastSquaresDecay Number Decimal between 0 and 1.
loadImbalancePercentage Number Range of 0 to 1000000.
maxUMultiplicativeIncrement Number Minimum of 1.
name String Maximum 150 characters, with no spaces.
resourceInstances ResourceInstance
type Enumeration Either XML load object via HTTP, XML load object via HTTPS, Non-XML load object via HTTP, Non-XML load object via HTTPS, or Download score.
upperBound Number

ResourceInstance

Member Type Required Description
datacenterId Number Integer identifier for an existing data center in the domain.
loadObjectPort Number TCP port, an integer from 0 to 65535. A port of 0 means the default port, either 80 or 443.
loadObject String Maximum 256 characters, not starting with a colon (:).
loadServers Array Values must be a IPv4 or IPv6 address, or DNS name containing an A or AAAA record. If the DNS name has both A and AAAA records, GTM picks one randomly. IP addresses must not be non-routable RFC–1918 addresses.

GeographicMap

Geographic mapping allows you to configure a property that returns a CNAME based on the requester’s country. You can reuse maps for multiple properties or create new ones. The minimum number of definitions per-map is two so that:

  1. At least one maps one or more countries to a data center;
  2. One routes all other traffic.

JSON schema: geographic-map-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
assignments GeographicAssignment
defaultDatacenter GeographicDefaultDatacenter
name String From 1 to 128 non-space characters.

GeographicAssignment

Member Type Required Description
countries Array Array of country codes.
datacenterId Number Unique integer identifier for an existing data center in the domain.
nickname String From 1 to 128 non-space characters.

GeographicDefaultDatacenter

Member Type Required Description
datacenterId Number Integer identifier each property must use for the All Others CNAME. A value of 5400 is strongly recommended.
nickname String Maximum 256 characters. If blank, the value defaults to Default Mapping.

CIDRMap

CIDR mapping allows you to configure a property that returns a CNAME based on the requester’s nameserver’s source (v4) IP address. You can reuse maps for multiple properties or create new ones. The minimum number of definitions per-map is two so that:

  1. At least one maps one or more CIDR blocks to a data center.

  2. One routes all other traffic.

JSON schema: cidr-map-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
assignments CIDRAssignment
defaultDatacenter CIDRDefaultDatacenter
name String Requires 1 to 255 non-space characters.

CIDRAssignment

Member Type Required Description
blocks String Each entry represents a CIDR block to match on.
datacenterId Number Integer identifier for an existing data center in the domain.
nickname String Range of 1–128 non-space characters.

CIDRDefaultDatacenter

Member Type Required Description
datacenterId Number Integer identifier each property must use for the All Others CNAME. A value of 5400 is strongly recommended.
nickname String Maximum 256 characters. If omitted, defaults to All Other CIDR Blocks.

AutonomousSystemMap

Autonomous System (AS) mapping allows you to configure a property that returns a CNAME based on what Autonomous System the requester’s nameserver’s IP Address belongs to. You can reuse maps for multiple properties or create new ones. The minimum number of definitions per-map is two so that:

  1. At least one maps one or more AS Numbers to a data center;
  2. One routes all other traffic.

JSON schema: as-map-vnd.config-gtm.v1.1.schema.json

NOTE: AS Maps require the application/vnd.config-gtm.v1.1+json Media Type. See API Versioning for more information.

Member Type Required Description
assignments ASAssignment
defaultDatacenter ASDefaultDatacenter
name String Range of 1–128 non-space characters.

AutonomousSystemAssignment

Member Type Required Description
asNumbers Number Integer from 1 to 4294967295.
datacenterId Number Unique integer identifier for an existing data center in the domain.
nickname String Range of 1 to 128 non-space characters.

AutonomousSystemDefaultDatacenter

Member Type Required Description
datacenterId Number Integer identifier each property must use for the All Others CNAME. A value of 5400 is strongly recommended.
nickname String Maximum 256 characters. Defaults to Default Mapping.

Domain

A Traffic Management domain is a domain with one or more subdomains that share a number of attributes that can only be configured domain-wide. These attributes include use of load feedback, load imbalance factor, the set of available data centers, etc. Each Domain object is a representation of a complete Traffic Management domain (e.g., example.akadns.net)

JSON schema: domain-vnd.config-gtm.v1.0.schema.json

Member Type Required Description
cidrMaps CIDRMap
datacenters Datacenter
defaultErrorPenalty Number Integer, defaulting to 75.
defaultSslClientCertificate String Base64-encoded certificate If this value is specified, it applies to all liveness tests in the Domain, unless they have their own certificate and key specified. If that’s not what a user wants, they should leave this field blank and set the key/cert on a per-liveness test basis.
defaultSslClientPrivateKey String Base64-encoded private key Private keys are often protected with a passphrase, but Traffic Management has no mechanism for supplying a passphrase, so the private key used must not have a passphrase. The private key used to generate a certificate (or the CSR used to request the certificate) for this purpose must be a throwaway one not used for any other purpose. If this value is specified, it applies to all liveness tests in the Domain, unless they have their own certificate and key specified. If that’s not what a user wants, they should leave this field blank and set the key/cert on a per-liveness test basis.
defaultTimeoutPenalty Number Integer, defaulting to 25.
emailNotificationList Array Lists valid email address.
geographicMaps GeographicMap
lastModifiedBy String Read-only date value generated when a change occurs.
lastModified String Read-only date-time value, generated when a change occurs.
loadFeedback Boolean
loadImbalancePercentage Number Range of 0 to 1000000.
modificationComments String Maximum 4,000 characters.
name String Maximum 100 characters, ending in .akadns.net.
properties Property
resources Resource
status Status
type Enumeration Either failover-only, static, weighted, basic, or full.

Status

Member Type Required Description
changeId String Read-only value generated when a change occurs.
message String Read-only value generated when a change occurs.
passingValidation Boolean Read-only value generated when a change occurs.
propagationStatusDate String Read-only date-time value generated when a change occurs.
propagationStatus Enumeration Either DENIED, PENDING, or COMPLETE.

Errors

This section provides the full set of error messages and status codes the Traffic Management API may generate.

Code Message Description
400 Invalid Entity. Returned when the request entity failed validation of one form or another. The response entity’s detail field contains a message describing what failed validation, and in most cases gives a hint on how to correct the problematic value.
400 Malformed Request Entity. Returned when the server could not parse the JSON entity sent by the client. The response entity’s detail field contains the message returned from the JSON parsing library, but it may not contain enough information on what is wrong. The best course of action is for the client to validate the JSON payload using the appropriate JSON schema to identify the problem.
400 Datacenter in use. Returned when a client requests to DELETE a data center, but that data center is in use by one or more Properties, and/or one or more Resources. Reassign such Properties or Resources to use alternate data centers, at which point a subsequent request to DELETE is allowed and processed.
400 ACG ID Invalid. This error is returned at domain creation time. If the Domain representation contains an invalid ACG ID, or an ID which the client does not have access to. Best to leave this field blank, as the server assigns an appropriate ID automatically.
400 Type mismatch. This error is returned if a query string can not be parsed into the expected type (e.g. if the parameter expects an integer, and contains alphabetic characters). The response entity’s invalidValue field contains the value that could not be parsed.
400 Datacenter ID mismatch. Returned when when a client PUTs a JSON representation to a data center resource of a datacenterId (e.g. /datacenters/3131), but the JSON’s datacenterId field does not match that resource id (e.g., {"datacenterId": 3231, ...}).
400 Domain name mismatch. Returned when when a client PUTs a JSON representation to a Domain resource of a name (e.g. /domains/mydomain.akadns.net), but the JSON’s name field does not match that resource name (e.g., {"name": "myotherdomain.akadns.net", ...}).
400 Property name mismatch. Returned when when a client PUTs a JSON representation to a Property resource of a name (e.g. /properties/foo), but the JSON’s name field does not match that resource name (e.g., {"name": "baz", ...}).
400 Map name mismatch. Returned when when a client PUTs a JSON representation to a Geographic or CIDR Map resource of a name (e.g. /geographic-maps/mymap), but the JSON’s name field does not match that resource name (e.g., {"name": "myothermap", ...}).
400 Resource name mismatch. Returned when when a client PUTs a JSON representation to a Resource resource of a name (e.g. /resources/cpu), but the JSON’s name field does not match that resource name (e.g., {"name": "disk", ...}).
400 CIDR Map Default datacenterId must be assigned. This error occurs when creating a CIDR Map. Ensure that the request’s JSON representation has left the defaultDatacenter object’s datacenterId field blank, as it is assigned by the server.
400 Datacenter ID must be assigned. Returned when when a client POSTs a JSON representation to create a new data center, but the JSON’s datacenterId has not been left blank. This field must be blank, as a datacenterId must be assigned by the server.
400 Domain Type Required. This error only occurs when creating a domain. The JSON representation’s type field must be populated with one of the four valid domain types: failover-only, static, weighted, or basic.
400 Performance Plus Domains can not be created. This error only occurs when creating a domain. If the JSON specifies a type of full, this error is returned as domains of this type can not be created with this API. Please contact Akamai customer support for assistance in creating such domains.
400 Domain Type not allowed. This error only occurs when creating a domain, if the JSON specifies a domain type which is not permitted due to contractual restrictions. For instance, if Weighted Load Balancing has been purchased, only Failover and Weighted domains are allowed.
403 Forbidden. Returned when the client’s credentials were verified, but did not have authorization to access the requested resource.
404 Not Found. Returned when a named resource, be it a domain, data center, property, resource, geographic or CIDR map, or status, does not exist.
405 Method Not Supported. Returned when the server does not support a specific request method. The response entity’s detail field contains a list of supported methods for the Resource, for reference.
406 Not Acceptable. Returned when the server can not represent a resource using the requested media type. The response entity’s minimumMediaTypeRequired field lists the minimum version media type required to successfully render the resource. See API Versioning for more information.
409 Datacenter Conflict. Returned when a request to create a data center with a specific datacenterId, but a data center with that ID already exists.
415 Unsupported Media Type (entity content type) Returned when when a client POSTs, PUTs, or PATCHes content of a type that is not supported. For version 1, application/json, application/vnd.config-gtm.v1.0+json (both are synonymous with each other) and for version 2, application/vnd.config-gtm.v1.1+json, are supported.
415 Unsupported Media Type (acceptable entity type) Returned when the server cannot generate a response that is acceptable by the client. For version 1, application/json, application/vnd.config-gtm.v1.0+json (both are synonymous with each other) and for version 2, application/vnd.config-gtm.v1.1+json, are supported.
500 Unable to assign new domain. This error only ever occurs when creating a new domain, if the server is unable to find a suitable ACG ID for the new domain. This typically occurs when clients do not have Traffic Management enabled on their contract, or lack access to contracts that do have access. Please contact Akamai customer support for assistance if you believe this is not the case.
500 Internal Server Error. Something has gone wrong on the server side. The server does not have a modified state if this happens. Safegaurds are in place to make sure everything is as it was when the request began. A client may retry the request, but it is likely that failure will remain a consistent outcome, in which case the user is encouraged to contact Akamai customer support for assistance.

Last modified: 12/12/2016