Sandbox API v1

Create an isolated sandbox environment to test site changes and Akamai property configurations locally before deploying to the content delivery network.

Learn more:


Overview

Resolving issues with your website and applications after a property is pushed to the content delivery network is inefficient and a drain on resources. With Sandbox, you can tweak your site delivery options and test in an isolated development environment to identify issues locally before merging.

Incorporate the Sandbox API into your agile development workflow to improve efficiency and identify potential issues well in advance of deployment. Quickly test and validate code changes on your local development server through a secure connection to your sandbox.

Create a sandbox based on:

  • an existing Akamai property, which contains rules for how your website and applications process requests.

  • a specific rule tree.

  • a sandbox preconfigured by another developer within your Akamai Control Center group.

Who should use this API

Developers who want to test site and Akamai property changes within an isolated development environment.

Get started

  1. Create an API client in Control Center that includes authorization for both Sandbox and Property Manager. Follow the steps in Get Started with APIs to learn how to create authentication credentials.

  2. Download and configure the Sandbox Client, a proxy server that routes bidirectional requests between your development machine and the Akamai network via a secure gateway. Follow the Configure your Sandbox client instructions in the user guide.

Hypermedia

This API supports a hypermedia-based workflow. When available, the API provides relative links to execute related operations, indicated as href elements in the response object.

The hypermedia format follows the Hypertext Application Language (HAL) standard. You will see the link relations in the response body prefixed by a _links data member.

In this example, self indicates a rule tree object, with other available links to GET the property or sandbox that contains it:

"_links": {
    "self": {
        "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
    },
    "sandbox": {
        "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
    },
    "property": {
        "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
    }
}

Resource limiting

There is a limit of 100 sandbox instances for each Control Center account. The X-Limit-Sandboxes-Remaining value in the response header indicates how many Sandbox instances you have remaining to create.

Resources

The first thing you’ll do with the Sandbox API is Create a sandbox. You can mark the sandbox clonable to make it easier for other developers to quickly create an instance in their local environment with the same settings.

Familiarize yourself with these concepts before using the Sandbox API.

  • Sandbox: An isolated environment configured for an individual developer that replicates the functionality of an Akamai server. The sandbox communicates with your development origin through a secure, bidirectional connection.

  • JSON Web Token: Also referred to as a JWT, allows the Sandbox client to authenticate your sandbox to the network. Returned in the response object of the Create a sandbox operation. You can also Rotate the JWT to prevent access to the sandbox by anyone who had a previous token.

  • Property: Also referred to as a configuration, provides the main way to control how Akamai servers respond to end-user requests for web content. Properties apply rules to a set of hostnames. Each sandbox contains at least one property.

  • Rule tree: Defines which browser requests to process and the behaviors to apply to those requests. Each property features one rule tree. You can apply a specific rule tree to a property within your sandbox.

  • Hostname: The portion of the URL end users enter into a browser to access your web content, such as www.example.com or dev.example.com . Within a sandbox, a property is associated with at least one hostname. Akamai uses the hostname to determine which rule tree to apply to the request.

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
List sandboxes GET /sandbox-api/v1/sandboxes
Create a sandbox POST /sandbox-api/v1/sandboxes
Get a sandbox GET /sandbox-api/v1/sandboxes/{sandboxId}
Modify a sandbox PUT /sandbox-api/v1/sandboxes/{sandboxId}
Delete a sandbox DELETE /sandbox-api/v1/sandboxes/{sandboxId}
Rotate the JWT POST /sandbox-api/v1/sandboxes/{sandboxId}/rotateJWT
Clone a sandbox POST /sandbox-api/v1/sandboxes/{sandboxId}/clone
List properties GET /sandbox-api/v1/sandboxes/{sandboxId}/properties
Add a property to a sandbox POST /sandbox-api/v1/sandboxes/{sandboxId}/properties
Read a property GET /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}
Update a property PUT /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}
Delete a property DELETE /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}
Get a rule tree GET /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules
Update a rule tree PUT /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules

List sandboxes

This operation returns a list of sandboxes. In the response object, you can see the sandboxId, the developer who created the sandbox, and the sandbox name. The X-Limit-Sandboxes-Remaining in the response header indicates the number of remaining sandboxes you can create. Generally, you will only see a list of sandboxes you created. If your Control Center user role has permission to edit Property Manager configurations, you have access to view all the sandboxes within the account. You’ll be able to Delete a sandbox returned in the list. You will only be able to Update a rule tree if your user role has permission to edit the property within your Property Manager configuration. For more information on user roles and permissions, refer to Identity and Access Management.

GET /sandbox-api/v1/sandboxes

Status 200 application/json

Headers:

X-Limit-Sandboxes-Limit: 100
X-Limit-Sandboxes-Remaining: 99

Object type: Sandbox

Download schema: Sandboxes.json

Response body:

{
    "accountId": "B-3-16O",
    "sandboxes": [
        {
            "sandboxId": "a7123f13-6f14-11e8-8592-0242ac110002",
            "createdBy": "devops@example.com",
            "name": "STAR-04",
            "_links": {
                "self": {
                    "href": "/sandbox-api/v1/sandboxes/a7123f13-6f14-11e8-8592-0242ac110002"
                },
                "rotateJWT": {
                    "href": "/sandbox-api/v1/sandboxes/a7123f13-6f14-11e8-8592-0242ac110002/rotateJWT"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes"
        }
    }
}

Create a sandbox

Refer to the REQUEST Parameters tab to determine how to form the JSON body for your POST request. Keep in mind that, to create a sandbox with this method, you need to have an API client for the Sandbox API with read-write access and Property Manager authorization enabled in Control Center.

POST /sandbox-api/v1/sandboxes

Content-Type: application/json

Object type: CreateSandbox

Download schema: PostSandboxRequest.json

Request body:

Create a sandbox based on a hostname within an existing Akamai property:

{
    "property":{
        "hostname":"www.example.com"
    },
    "name":"dev1_sandbox"
}

Create a sandbox based on a particular property version that can be cloned by other developers:

{
    "property":{
        "propertyName":"www.example.com",
        "propertyVersion":23
    },
    "name":"dev2_sandbox",
    "isClonable":true
}

Create a sandbox based on a property and override the request hostnames:

{
    "property":{
        "propertyName":"www.example.com",
        "requestHostnames":[
            "store.example.com",
            "portal.example.com"
        ],
        "propertyVersion":23
    },
    "name":"dev2_sandbox",
    "isClonable":true
}

Create a sandbox based on a property and override the rules:

{
    "property":{
        "propertyName":"www.example.com",
        "propertyVersion":23,
        "rules":{
            "name":"default",
            "children":[  ],
            "behaviors":[
                {
                    "name":"origin",
                    "options":{
                        "cacheKeyHostname":"ORIGIN_HOSTNAME",
                        "compress":true,
                        "enableTrueClientIp":false,
                        "forwardHostHeader":"REQUEST_HOST_HEADER",
                        "httpPort":80,
                        "httpsPort":443,
                        "originSni":true,
                        "originType":"CUSTOMER",
                        "verificationMode":"PLATFORM_SETTINGS",
                        "hostname":"my-origin.example.com",
                        "originCertificate":"",
                        "ports":""
                    }
                },
                {
                    "name":"cpCode",
                    "options":{
                        "value":{
                            "id":1090207,
                            "description":"my cpcode",
                            "products":[
                                "SPM"
                            ],
                            "createdDate":1251013390000,
                            "name":"my cpcode"
                        }
                    }
                },
                {
                    "name":"caching",
                    "options":{
                        "behavior":"MAX_AGE",
                        "mustRevalidate":false,
                        "ttl":"3m"
                    }
                }
            ],
            "options":{
                "is_secure":false
            },
            "variables":[  ]
        }
    },
    "name":"dev2_sandbox",
    "isClonable":true
}
Parameter Type Description
Required parameter. Choose one identifier for the property to include in your sandbox.
edgeHostname String The edge hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, hostname, or propertyName.
hostname String The hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, edgeHostname, or propertyName. Use this option only if there is a one-to-one correspondence between the hostname and property. This method will fail if more than one property reference the same hostname.
propertyId Number The unique identifier for the property as it appears in Property Manager. May be specified instead of hostname, edgeHostname, or propertyName.
propertyName String The name of the property as it appears in Property Manager. May be specified instead of propertyId, edgeHostname, or hostname. Use this if you have more than one property configuration that references the same hostname.
Optional parameters to include within the property section of the request body.
contractID String The identifier you can use to create a sandbox from a specific contract. If you use this, you also need to specify the groupId.
cpcode Number Unique code that enables you to isolate sandbox traffic in report data. If you do not specify a cpcode value, the system creates one.
groupId String The identifier you can use to create a sandbox from a specific group. If you use this, you also need to specify the contractID.
propertyVersion Number If not specified, the API will use the version that is active in production. If an active version is not found, the API uses the most recent version.
requestHostnames Array Specifies the hostnames for the request. If you try to create a sandbox with a requestHostname that is not already contained in the property configuration, you may get unexpected results. The Sandbox API automatically converts any specified request hostnames to lower case.
ruleFormat String Specifies the rule format. The rule format is a dated Property Manager API.
rules Object Defines how your website and applications process requests and the behaviors to apply to those requests. Include a rules object if you want to apply specific rules to test within your sandbox. The content-handling rules are defined in the Property Manager API.
Optional parameters to include in the POST body when you create a sandbox.
isClonable Boolean Indicates whether the sandbox can be cloned by other developers.
name String Descriptive name for the new sandbox. If you do not specify a name, the default name will be the sandboxId. You will get an error message if the name is not unique.

Status 201 application/json

Headers:

X-Limit-Sandboxes-Limit: 100
X-Limit-Sandboxes-Remaining: 98
Location: /sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002

Object type: Sandbox

Download schema: Sandbox.json

Response body:

{
    "sandboxId": "2956607f-854e-11e8-898a-0242ac110002",
    "createdBy": "joe@example.com",
    "createdOn": "2018-10-09T15:20:36.441Z",
    "name": "Sandbox-123",
    "jwtToken": "eyJ0eXA ... qggqqw",
    "isClonable": true,
    "status": "OK",
    "properties": [
        {
            "sandboxPropertyId": "e7b77afe-271b-4159-bdd1-c312ef560cdb",
            "requestHostnames": [
                "shop.exampledevops.com",
                "info.abc1234def.com"
            ],
            "additionalRequestHostnamesInProperty": [
                "www.abc1234def.com"
            ],
            "_links": {
                "property": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/e7b77afe-271b-4159-bdd1-c312ef560cdb"
                },
                "rules": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/e7b77afe-271b-4159-bdd1-c312ef560cdb/rules"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002"
        },
        "rotateJWT": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/rotateJWT"
        },
        "clone": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/clone"
        }
    }
}
Parameter Description
Response Header parameters
X-Limit-Sandboxes-Limit Number of sandboxes allowed for your account.
X-Limit-Sandboxes-Remaining Number of sandboxes available to create in your account.
Location: Link to sandbox details for the sandbox you just created.
Response Body parameters
sandboxId The unique identifier for the sandbox.
createdBy The identifier for the developer who created the sandbox.
createdOn A timestamp representing when the system created the sandbox.
jwtToken Java Web Token that is returned in the JSON response when you create a sandbox and is used for authentication. You need this string value to configure the Sandbox Client. Follow the instructions in the user guide.
name The name of the sandbox defined by the developer when the sandbox was created. If you do not specify a name, the name will default to the sandboxId.
isClonable Indicates whether the sandbox can be copied for another developer’s use.
status The status of the sandbox. OK indicates that the sandbox is able to send traffic.
statusReason Provides more information when the status field is ERROR.
properties A list of the properties available for testing in the sandbox environment. A sandbox can contain more than one property.
sandboxPropertyId The unique identifier for the sandbox property.
requestHostnames A set of hostnames for use in testing within a developer’s sandbox.
_links HAL-formatted hypermedia links relating to the sandbox. See Hypermedia for more information.

Beta createFromRules format

If you participated in the Sandbox Tech Preview or Beta program, note that the createFromRules format for the JSON POST body will still work. Here is an example of the previous approach.

{
  "createFromProperty": {
    "propertyName": "www.example.com",
    "propertyVersion": 23
  },
  "name": "dev1_sandbox",
  "isClonable": true,
  "createFromRules": {
    "rules": {
      "name": "default",
      "children": [],
      "behaviors": [
        {
          "name": "origin",
          "options": {
            "cacheKeyHostname": "ORIGIN_HOSTNAME",
            "compress": true,
            "enableTrueClientIp": false,
            "forwardHostHeader": "REQUEST_HOST_HEADER",
            "httpPort": 80,
            "httpsPort": 443,
            "originSni": true,
            "originType": "CUSTOMER",
            "verificationMode": "PLATFORM_SETTINGS",
            "hostname": "my-origin.example.com",
            "originCertificate": "",
            "ports": ""
          }
        },
        {
          "name": "cpCode",
          "options": {
            "value": {
              "id": 1090207,
              "description": "my cpcode",
              "products": [
                "SPM"
              ],
              "createdDate": 1251013390000,
              "name": "my cpcode"
            }
          }
        },
        {
          "name": "caching",
          "options": {
            "behavior": "MAX_AGE",
            "mustRevalidate": false,
            "ttl": "3m"
          }
        }
      ],
      "options": {
        "is_secure": false
      },
      "variables": []
    }
  }
}

Get a sandbox

Get a specific sandbox based on sandboxId.

GET /sandbox-api/v1/sandboxes/{sandboxId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 200 application/json

Object type: Sandbox

Download schema: Sandbox.json

Response body:

{
    "sandboxId": "2956607f-854e-11e8-898a-0242ac110002",
    "createdBy": "sandbox@akamai.com",
    "createdOn": "2018-07-11T21:05:38.227Z",
    "name": "Sandbox-clone-1",
    "isClonable": true,
    "status": "OK",
    "properties": [
        {
            "requestHostnames": [
                "shop.example.com"
            ],
            "_links": {
                "property": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/29b5e5a0-854e-11e8-898a-0242ac110002"
                },
                "rules": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/29b5e5a0-854e-11e8-898a-0242ac110002/rules"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002"
        },
        "rotateJWT": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/rotateJWT"
        },
        "clone": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/clone"
        }
    }
}
  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object.

  3. Make a GET request to /sandbox-api/v1/sandboxes/{sandboxId}.

  4. Alternatively, locate the link entitled self in the response object of the List sandboxes operation and GET the associated href.

Modify a sandbox

Enable isClonable if you have preconfigured the settings for the sandbox and want to make it available to other developers in your organization. You can also update the sandbox name to make it easy to identify.

PUT /sandbox-api/v1/sandboxes/{sandboxId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002

Content-Type: application/json

Object type: Sandbox

Download schema: Sandbox.json

Request body:

{
    "sandboxId": "2956607f-854e-11e8-898a-0242ac110002",
    "createdBy": "devops-99@example.com",
    "createdOn": "2018-06-14T14:56:11.391Z",
    "name": "SHOP-123212",
    "isClonable": true,
    "properties": [
        {
            "requestHostnames": [
                "my.example.com",
                "info.example.com",
                "shop.example.com"
            ]
        }
    ]
}
Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 204

  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Modify the JSON object with the Sandbox members you want to include. For example: specify a new name for the sandbox and enable isClonable so other developers can clone this preconfigured sandbox for their own use.

  4. Make a PUT request to /sandbox-api/v1/sandboxes/{sandboxId}.

Delete a sandbox

Remove a specific sandbox instance based on sandboxId. This is useful when you have completed testing and no longer need the sandbox, or when you are approaching the 100 sandboxes limit.

DELETE /sandbox-api/v1/sandboxes/{sandboxId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 204

  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object.

  3. Make a DELETE request to /sandbox-api/v1/sandboxes/{sandboxId}.

Rotate the JWT

Generate a new jwtToken (JSON Web Token) for the specified sandbox instance. Use this to prevent access to a particular sandbox by developers who had the previous JWT.

POST /sandbox-api/v1/sandboxes/{sandboxId}/rotateJWT

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/rotateJWT

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 200 application/json

Download schema: PostRotateResponse.json

Response body:

{
    "jwtToken": "eyJ0eXAiOiJKV1QiLC...NwpuL1f8z9U6Se3p_uYa_sgfWzw"
}
  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object.

  3. Make a POST request to /sandbox-api/v1/sandboxes/{sandboxId}/rotateJWT.

  4. Copy the jwtToken from the response object.

    NOTE: This is the only time you will see the jwtToken other than when you Create a sandbox.

  5. Modify the config.json file (generated by the Sandbox Client). Refer to the User Guide for instructions.

Clone a sandbox

Create a new sandbox instance based on the specified sandboxId. You can clone a sandbox that has isClonable enabled. This is useful if you want to copy a sandbox that was preconfigured by another developer within your organization.

POST /sandbox-api/v1/sandboxes/{sandboxId}/clone

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/clone

Content-Type: application/json

Object type: CloneSandbox

Download schema: PostCloneRequest.json

Request body:

{
    "name": "sandbox-clone-1"
}
Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 201 application/json

Headers:

X-Limit-Sandboxes-Limit: 100
X-Limit-Sandboxes-Remaining: 98
Location: /sandbox-api/v1/sandboxes/7ccfb989-68ce-11e8-bdfe-0242ac110002

Object type: Sandbox

Download schema: Sandbox.json

Response body:

{
    "sandboxId": "2956607f-854e-11e8-898a-0242ac110002",
    "createdBy": "joe@example.com",
    "createdOn": "2018-10-09T15:20:36.441Z",
    "name": "Sandbox-123",
    "jwtToken": "eyJ0eXA ... qggqqw",
    "isClonable": true,
    "status": "OK",
    "properties": [
        {
            "sandboxPropertyId": "e7b77afe-271b-4159-bdd1-c312ef560cdb",
            "requestHostnames": [
                "shop.exampledevops.com",
                "info.abc1234def.com"
            ],
            "additionalRequestHostnamesInProperty": [
                "www.abc1234def.com"
            ],
            "_links": {
                "property": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/e7b77afe-271b-4159-bdd1-c312ef560cdb"
                },
                "rules": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/e7b77afe-271b-4159-bdd1-c312ef560cdb/rules"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002"
        },
        "rotateJWT": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/rotateJWT"
        },
        "clone": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/clone"
        }
    }
}
  1. Get the sandboxId of the sandbox you want to clone from the developer who created it.

  2. Form a CloneSandbox object to include a meaningful name for the sandbox. If you do not specify a name, the default name will be the sandboxId.

  3. Make a POST request to /sandbox-api/v1/sandboxes/{sandboxId}/clone to create a sandbox instance for your individual use with the same settings.

  4. Alternatively, get the link entitled clone in the response object from the developer and GET the associated href.

List properties

This operation returns a list of sandbox properties available to the current user.

GET /sandbox-api/v1/sandboxes/{sandboxId}/properties

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 200 application/json

Object type: Property

Download schema: Properties.json

Response body:

{
    "properties": [
        {
            "sandboxPropertyId": "ad37282c-8549-11e8-898a-0242ac110002",
            "requestHostnames": [
                "shop.example.com"
            ],
            "additionalRequestHostnamesInProperty": [
                "portal.example.com"
            ],
            "propertyId": "prp_1712",
            "productId": "prd_Fresca",
            "cpcode": 725533,
            "ruleFormat": "latest",
            "validationStatus": "SUCCESS",
            "filteredRuleBehaviors": [
                "http2"
            ],
            "editedRuleBehaviors": [
                "cpCode"
            ],
            "_links": {
                "self": {
                    "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
                },
                "sandbox": {
                    "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
                },
                "rules": {
                    "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
                }
            }
        }
    ]
}

Add a property to a sandbox

You can add a property to a sandbox. Use this if you need to support more than one hostname in your sandbox environment.

POST /sandbox-api/v1/sandboxes/{sandboxId}/properties

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties

Content-Type: application/json

Object type: AddProperty

Download schema: PostPropertyRequest.json

Request body:

{
    "propertyId": "470031",
    "requestHostnames": [
        "portal.example.com"
    ],
    "ruleFormat": "latest"
}
Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.

Status 201 application/json

Headers:

Location: /sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/f48caeff-68e5-11e8-8870-0242ac110003

Object type: Property

Download schema: Property.json

Response body:

{
    "sandboxPropertyId": "e4ae2447-7430-11e8-8f80-0242ac110007",
    "requestHostnames": [
        "shop.example.com"
    ],
    "additionalRequestHostnamesInProperty": [
        "portal.example.com"
    ],
    "propertyId": 470031,
    "cpcode": 707514,
    "productId": "prd_Fresca",
    "ruleFormat": "latest",
    "validationStatus": "SUCCESS",
    "filteredRuleBehaviors": [
        "http2"
    ],
    "editedRuleBehaviors": [
        "cpCode"
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007/properties/e4ae2447-7430-11e8-8f80-0242ac110007"
        },
        "rules": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007/properties/e4ae2447-7430-11e8-8f80-0242ac110007/rules"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007"
        }
    }
}
  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object.

  3. Modify the JSON request body with the requestHostnames you want to add to the sandbox.

  4. Make a POST request to /sandbox-api/v1/sandboxes/{sandboxId}/properties.

Read a property

Get a specific property of a sandbox so you can review the information in the response body.

GET /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties/e4ae2447-7430-11e8-8f80-0242ac110007

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.
sandboxPropertyId String e4ae2447-7430-11e8-8f80-0242ac110007 Unique identifier for the property within a sandbox.

Status 200 application/json

Object type: Property

Download schema: Property.json

Response body:

{
    "sandboxPropertyId": "ad37282c-8549-11e8-898a-0242ac110002",
    "requestHostnames": [
        "shop.example.com"
    ],
    "additionalRequestHostnamesInProperty": [
        "portal.example.com"
    ],
    "propertyId": "prp_1712",
    "productId": "prd_Fresca",
    "cpcode": 725533,
    "ruleFormat": "latest",
    "validationStatus": "SUCCESS",
    "filteredRuleBehaviors": [
        "http2"
    ],
    "editedRuleBehaviors": [
        "cpCode"
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
        },
        "rules": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
        }
    }
}
  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Choose a sandboxPropertyId from the Property response object.

  4. Make a GET request to /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}.

Update a property

Update the requestHostnames of the sandbox property.

PUT /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties/e4ae2447-7430-11e8-8f80-0242ac110007

Content-Type: application/json

Object type: Property

Download schema: Property.json

Request body:

{
    "sandboxPropertyId": "e4ae2447-7430-11e8-8f80-0242ac110007",
    "requestHostnames": [
        "portal2.example.com"
    ],
    "propertyId": 470031,
    "cpcode": 707514,
    "productId": "prd_Fresca",
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007/properties/e4ae2447-7430-11e8-8f80-0242ac110007"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007"
        },
        "rules": {
            "href": "/sandbox-api/v1/sandboxes/e43a53d6-7430-11e8-8f80-0242ac110007/properties/e4ae2447-7430-11e8-8f80-0242ac110007/rules"
        }
    }
}
Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.
sandboxPropertyId String e4ae2447-7430-11e8-8f80-0242ac110007 Unique identifier for the property within a sandbox.

Status 204

  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Choose a sandboxPropertyId from the from the Property response object and run the Read a property operation.

  4. Modify the JSON with the Property members you want to change and run the Update a property operation.

Delete a property

Remove a property from a sandbox. This operation applies when the sandbox contains more than one property. You cannot delete the only property of a sandbox.

DELETE /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties/e4ae2447-7430-11e8-8f80-0242ac110007

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.
sandboxPropertyId String e4ae2447-7430-11e8-8f80-0242ac110007 Unique identifier for the property within a sandbox.

Status 204

  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Choose a sandboxPropertyId from the Property response object.

  4. Make a DELETE request to /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}.

Get a rule tree

Get a specific rule tree of a sandbox property. Each sandbox property references one rule tree. For more information on how content-handling rules are defined, review the Property Manager API.

GET /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties/e4ae2447-7430-11e8-8f80-0242ac110007/rules

Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.
sandboxPropertyId String e4ae2447-7430-11e8-8f80-0242ac110007 Unique identifier for the property within a sandbox.

Status 200 application/json

Object type: Rules

Download schema: Rules.json

Response body:

{
    "rules": {
        "name": "default",
        "children": [
            {
                "name": "Handle /my-path",
                "criteriaMustSatisfy": "all",
                "criteria": [
                    {
                        "name": "path",
                        "value": [
                            "/my-path"
                        ]
                    }
                ],
                "behaviors": [
                    {
                        "name": "caching",
                        "behavior": "max-age",
                        "ttl": "1m"
                    }
                ]
            }
        ]
    },
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
        },
        "property": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
        }
    }
}
  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Choose a sandboxPropertyId from the Property response object.

  4. Make a GET request to /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules.

Update a rule tree

Modify the Rules of a sandbox property to make changes to content-handling behaviors for testing purposes within your development environment. Once you are satisfied with the results in your sandbox, you can use the Property Manager API to apply the rule changes to your property configuration.

PUT /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules

Sample: /sandbox-api/v1/sandboxes/2956607f–854e–11e8-898a–0242ac110002/properties/e4ae2447-7430-11e8-8f80-0242ac110007/rules

Content-Type: application/json

Object type: Rules

Download schema: Rules.json

Request body:

{
    "rules": {
        "name": "default",
        "children": [
            {
                "name": "Handle /my-path",
                "criteriaMustSatisfy": "all",
                "criteria": [
                    {
                        "name": "path",
                        "value": [
                            "/my-path"
                        ]
                    }
                ],
                "behaviors": [
                    {
                        "name": "caching",
                        "behavior": "max-age",
                        "ttl": "5m"
                    }
                ]
            }
        ]
    }
}
Parameter Type Sample Description
URL parameters
sandboxId String 2956607f-854e-11e8-898a-0242ac110002 Unique identifier for the sandbox.
sandboxPropertyId String e4ae2447-7430-11e8-8f80-0242ac110007 Unique identifier for the property within a sandbox.

Status 204

  1. Run the List sandboxes operation to see the sandboxes you created.

  2. Choose a sandboxId from within the sandboxes array in the response object and run the Get a sandbox operation.

  3. Choose a sandboxPropertyId from the Property response object, and run the Get a rule tree operation.

  4. Change the content-handling settings within the Rules object as desired for testing.

  5. Make a PUT request to /sandbox-api/v1/sandboxes/{sandboxId}/properties/{sandboxPropertyId}/rules.

NOTE: The changes you apply to content-handling behaviors within the sandbox are for testing purposes.

Data

This section provides details for each type of data object the API exchanges.

Download the JSON schemas for this API.

The data schema tables below list membership requirements as follows:

Member is required in requests, or always present in responses, even if its value is empty or null.
Member is optional, and may be omitted in some cases.

Property

Each sandbox contains at least one property. The property configuration describes the origin location and content-handling specifications.

Download schema: Property.json

Sample GET response:

{
    "sandboxPropertyId": "ad37282c-8549-11e8-898a-0242ac110002",
    "requestHostnames": [
        "shop.example.com"
    ],
    "additionalRequestHostnamesInProperty": [
        "portal.example.com"
    ],
    "propertyId": "prp_1712",
    "productId": "prd_Fresca",
    "cpcode": 725533,
    "ruleFormat": "latest",
    "validationStatus": "SUCCESS",
    "filteredRuleBehaviors": [
        "http2"
    ],
    "editedRuleBehaviors": [
        "cpCode"
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
        },
        "rules": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
        }
    }
}

Property members

Member Type Required Description
Property: Each sandbox contains at least one property. The property configuration describes the origin location and content-handling specifications.
_links Object HAL-formatted hypermedia links relating to the property. See Hypermedia for more information.
additionalRequestHostnamesInProperty Array A list of hostnames found in the property configuration that were not specified in the Create a sandbox request.
cpcode Number Read-only. Unique identifier used for reporting traffic served. The Sandbox API tries to use the same CP code for all traffic within a particular Control Center access group.
editedRuleBehaviors Array Behaviors in the rule tree that were modified for use in the Sandbox.
filteredRuleBehaviors Array Behaviors in the rule tree that were removed because they are not supported by Sandbox.
productId String Read-only. The Akamai product associated with the property, as defined in Property Manager.
propertyId String Read-only. The identifier for the property from which the sandbox was created.
requestHostnames Array Customer-specific hostnames included in the property configuration that you can use to make requests and test changes in the sandbox. The Sandbox API defaults to the hostnames configured in the property unless you specify alternates.
ruleFormat String Read-only. The Property Manager rule format used within the property.
sandboxPropertyId String Read-only. Unique identifier for a property within the sandbox.
validationStatus String Read-only. The validation status for the property. If the status is OK the sandbox can serve traffic. If the status is ERROR you can find the statusReason in the Sandbox response object.
validationWarnings Array Contains warnings related to validating the rule tree when a sandbox is created or a property is added.

CreateSandbox

Create a JSON request body including data members as described in the table below.

Download schema: PostSandboxRequest.json

Sample POST request to create a sandbox:

{
    "property": {
        "propertyName": "exampledevops.com",
        "propertyVersion": 12345
    },
    "name": "Sandbox-123",
    "isClonable": true
}

CreateSandbox members

Member Type Required Description
CreateSandbox: Create a JSON request body including data members as described in the table below.
isClonable Boolean Indicates whether the sandbox can be cloned by other developers.
name String Descriptive name for the new sandbox. If you do not specify a name, the default name will be the sandboxId. You will get an error message if the name is not unique.
property CreateSandbox.property Contains information about the property within the sandbox.
CreateSandbox.property: Contains information about the property within the sandbox.
contractId String The identifier you can use to create a sandbox from a specific contract. If you use this, you also need to specify the groupId.
cpcode Number Unique code that enables you to isolate sandbox traffic in report data. If you do not specify a value, the system creates one.
edgeHostname String The edge hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, hostname, or propertyName.
groupId String The identifier you can use to create a sandbox from a specific group. If you use this, you also need to specify the contractId.
hostname String The hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, edgeHostname, or propertyName.
propertyId String The unique identifier for the property as it appears in Property Manager. May be specified instead of hostname, edgeHostname, or propertyName.
propertyName String The name of the property as it appears in Property Manager. May be specified instead of propertyId, edgeHostname, or hostname.
propertyVersion Number If not specified, the API uses the version that is active in production. If an active version is not found, the API uses the most recent version.
requestHostnames Array Specifies the hostnames for the request. If you try to create a sandbox property with a requestHostname that is not already contained in the property configuration, you may get unexpected results. The Sandbox API automatically converts any specified request hostnames to lower case.
ruleFormat String Specifies the rule format. The rule format is a dated version of the rule object in a property configuration. For more information, refer to the Property Manager API.
rules Object Defines how your website and applications process requests and the behaviors to apply to those requests. Include a rules object if you want to apply specific rules to test within your sandbox. The content-handling rules are defined in the Property Manager API.

CloneSandbox

You can clone a sandbox based on a preconfigured sandbox if you have the sandboxId.

Download schema: PostCloneRequest.json

Sample POST request to clone a sandbox:

{
    "name": "sandbox-clone-1"
}

CloneSandbox members

Member Type Required Description
CloneSandbox: You can clone a sandbox based on a preconfigured sandbox if you have the sandboxId.
name String Descriptive name for the new sandbox.

AddProperty

Create a JSON request body for the sandbox property including data members as described in the table below.

Download schema: PostPropertyRequest.json

Sample POST request to create a property:

{
    "propertyId": "470031",
    "requestHostnames": [
        "portal.example.com"
    ],
    "ruleFormat": "latest"
}

AddProperty members

Member Type Required Description
AddProperty: Create a JSON request body for the sandbox property including data members as described in the table below.
contractId String The identifier you can use to create a sandbox from a specific contract. If you use this, you also need to specify the groupId.
cpcode Number Unique code that enables you to isolate sandbox traffic in report data. If you do not specify a value, the system creates one.
edgeHostname String The edge hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, hostname, or propertyName.
groupId String The identifier you can use to create a sandbox from a specific group. If you use this, you also need to specify the contractId.
hostname String The hostname associated with the property as configured in Property Manager. May be specified instead of propertyId, edgeHostname, or propertyName.
propertyId String The unique identifier for the property as it appears in Property Manager. May be specified instead of hostname, edgeHostname, or propertyName.
propertyName String The name of the property as it appears in Property Manager. May be specified instead of propertyId, edgeHostname, or hostname.
propertyVersion Number If not specified, the API uses the version that is active in production. If an active version is not found, the API uses the most recent version.
requestHostnames Array Specifies the hostnames for the request. If you try to create a sandbox property with a requestHostname that is not already contained in the property configuration, you may get unexpected results. The Sandbox API automatically converts any specified request hostnames to lower case.
ruleFormat String Specifies the rule format. The rule format is a dated version of the rule object in a property configuration. For more information, refer to the Property Manager API.
rules Object Defines how your website and applications process requests and the behaviors to apply to those requests. Include a rules object if you want to apply specific rules to test within your sandbox. The content-handling rules are defined in the Property Manager API.

Rules

Each sandbox property references one rule tree.

Download schema: Rules.json

Sample GET response:

{
    "rules": {
        "name": "default",
        "children": [
            {
                "name": "Handle /my-path",
                "criteriaMustSatisfy": "all",
                "criteria": [
                    {
                        "name": "path",
                        "value": [
                            "/my-path"
                        ]
                    }
                ],
                "behaviors": [
                    {
                        "name": "caching",
                        "behavior": "max-age",
                        "ttl": "1m"
                    }
                ]
            }
        ]
    },
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002/rules"
        },
        "sandbox": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002"
        },
        "property": {
            "href": "/sandbox-api/v1/sandboxes/ac6ef62b-8549-11e8-898a-0242ac110002/properties/ad37282c-8549-11e8-898a-0242ac110002"
        }
    }
}

Rules members

Member Type Required Description
Rules: Each sandbox property references one rule tree.
_links Object HAL-formatted hypermedia links relating to the rule tree. See Hypermedia for more information.
rules Object Specifies the rule tree for this sandbox property. The content-handling rules are defined in the Property Manager API.

Sandbox

A sandbox is an isolated development environment used for testing. Each sandbox has a unique identifier, or sandboxId. If you create a sandbox with isClonable enabled, another developer can quickly create a sandbox with the same configuration settings. When you create a sandbox, give it a meaningful name.

Download schema: Sandbox.json

Sample GET response:

{
    "sandboxId": "2956607f-854e-11e8-898a-0242ac110002",
    "createdBy": "sandbox@akamai.com",
    "createdOn": "2018-07-11T21:05:38.227Z",
    "name": "Sandbox-clone-1",
    "isClonable": true,
    "status": "OK",
    "properties": [
        {
            "requestHostnames": [
                "shop.example.com"
            ],
            "_links": {
                "property": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/29b5e5a0-854e-11e8-898a-0242ac110002"
                },
                "rules": {
                    "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/properties/29b5e5a0-854e-11e8-898a-0242ac110002/rules"
                }
            }
        }
    ],
    "_links": {
        "self": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002"
        },
        "rotateJWT": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/rotateJWT"
        },
        "clone": {
            "href": "/sandbox-api/v1/sandboxes/2956607f-854e-11e8-898a-0242ac110002/clone"
        }
    }
}

Sandbox members

Member Type Required Description
Sandbox: A sandbox is an isolated development environment used for testing. Each sandbox has a unique identifier, or sandboxId. If you create a sandbox with isClonable enabled, another developer can quickly create a sandbox with the same configuration settings. When you create a sandbox, give it a meaningful name.
_links Object HAL-formatted hypermedia links relating to the sandbox. See Hypermedia for more information.
createdBy String Read-only. The identifier for the developer who created the sandbox.
createdOn String Read-only. A timestamp representing when the system created the sandbox.
isClonable Boolean Indicates whether the sandbox can be copied for another developer’s use.
jwtToken String Java Web Token that is returned in the JSON response when you create a sandbox and is used for authentication. You need this string value to configure the Sandbox Client.
name String The name of the sandbox defined by the developer when the sandbox was created. If you do not specify a name, the default is the sandboxId.
properties Sandbox.properties[] A list of the properties available for testing in the sandbox environment. A sandbox can contain more than one property, but a given hostname may only be associated to one property within a sandbox.
sandboxId String Read-only. The unique identifier for the sandbox.
status String Read-only. The status of the sandbox. OK indicates that the sandbox is able to send traffic.
statusReason String Read-only. Provides more information when the status field is ERROR.
Sandbox.properties[]: A list of the properties available for testing in the sandbox environment. A sandbox can contain more than one property, but a given hostname may only be associated to one property within a sandbox.
_links Object HAL-formatted hypermedia links relating to the sandbox’s properties. See Hypermedia for more information.
additionalRequestHostnamesInProperty Array A list of hostnames that are associated with the property referenced in the create sandbox POST request that were not included as request hostnames in the JSON body.
requestHostnames Array A set of hostnames you can use for testing requests within your sandbox.
sandboxPropertyId String Read-only. The unique identifier for the sandbox.

Errors

This section provides details on the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases.

Error responses

This API adheres to the Problem Details for HTTP APIs standard and returns detailed error responses, such as:

{
    "type": "/sandbox-api/error-types/property-manager-search-failed",
    "title": "We were unable to find the specified Property.",
    "detail": "No match found for search 'PropertyId=123'",
    "instance": "/sandbox-api/error-instances/d26808a4-fd0f-411c-801f-ab20ee4f455a",
    "status": 400,
}

Error types

The API returns error messages that follow this URL pattern /sandbox-api/error-types/{error}.

Error Description
duplicate-property The requested operation could not be performed because multiple properties were found.
invalid-create-from-property Invalid createFromProperty request.
invalid-create-request Invalid create sandbox request.
invalid-request-hostname The request hostname is not valid.
invalid-rule-tree-behavior The rule tree behavior is not valid.
message-not-readable The input object contains invalid JSON.
method-not-allowed The specified method is not allowed on this endpoint.
metadata-validation-error There was a problem related to validating the property configuration.
not-found The resource cannot be found.
not-clonable The sandbox resource cannot be cloned.
property-manager-api-error There is a problem related to the Property Manager API.
property-manager-search-failed The property cannot be found.
property-manager-api-validation-error The Property Manager API rule tree could not be validated.
quota-limit-exceeded The requested operation cannot be performed because it exceeds the quota limit.
unsupported-media-type The specified media type is not supported.
upgrade-failed The sandbox cannot be upgraded because it is not associated with a property. Follow the instructions to Create a sandbox.

HTTP status codes

This section lists the full range of response codes the API generates.

Code Description
200 The operation was successful.
201 The resource was created.
204 The request was successfully processed.
400 Bad Request.
403 Access is forbidden.
404 The resource was not found.
405 The method is not allowed.
409 Conflict with current state of resource.
415 Unsupported media type.
500 Internal server error.

Last modified: 6/5/2019