Case Management API v2

Manage support requests to resolve issues with your Akamai applications and services.

Learn more:


Overview

The Case Management API helps you manage support requests to resolve any issues with your Akamai applications and services.

Who should use this API

Use this API if you are administer Akamai products and want to develop your own set of tools to interact with Akamai customer service representatives outside of the Luna portal. Use this API to track the status of various support tickets, and to open new tickets. Use it to allow your own set of users to comment on support tickets and upload files that demonstrate problems. Use it also if you are a reseller who wants to develop a customer support layer for third-party users.

Getting started

Before using the Beta API for the first time:

  • Review Get Started for API tools that Akamai provides.

  • Review Authorize Your Client to create your Akamai API access credentials and authorizations. As detailed in The API Identity Model, you then access the API using custom hostnames that looks like this: https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net.

After provisioning the API token, the user associated with the unique token can submit cases on behalf of other users.

Hypermedia

The API uses links to standard hypermedia objects to help clients locate related resources relevant within a set of JSON data. For example, the JSON below shows the sort of response you get when uploading a file attachment. Its links array may accommodate various related resources, but in this case presents only the case ticket under which the file is tracked. The rel represents the link relation, in this case a conceptual parent object, and the href that provides a navigable path to the resource once you prefix it with your hostname token.

{
    "caseId": "F-CS-1203600",
    "links": [
        {
            "href": "/case-management/v2/cases/F-CS-1203600",
            "rel": "parent"
        }
    ],
    "statusMessage": "Ticket has been successfully updated with file"
}

Resources

This section provides details on the Case Management API’s various operations. The API supports two basic sets of operations, one workflow to create a new case, and another to add follow-up items to existing cases, including requests to the close the case.

This workflow summarizes the operations necessary to create a new support ticket. See the steps for each operation for more detailed information.

  1. First run List Categories to assign a top-level category.

  2. Run Get Subcategories to select one or more relevant subcategories for use in a new POST object.

  3. Run Get Case Attributes to prepare new data for the POST object.

  4. Based on the hypermedia link embedded in response object, optionally run Get a Questionnaire to answer questions relevant to the support ticket’s top-level category.

  5. Optionally run Get Severity Definitions and Get Response Times for help in assigning the appropriate severity level.

  6. Once you have assembled all this information, run the Create a New Case operation.

Run the remaining List Cases and Get a Case operations to select support tickets. Run Add a Note and Upload a File to update a ticket, and Download a File to get uploaded files. Run Close a Case once the support ticket has been addressed.

API summary

Operation Method Endpoint
Categories
List Categories GET /case-management/v2/categories
Get Subcategories GET /case-management/v2/categories/{categoryType}/sub-categories
Get Case Attributes GET /case-management/v2/categories/{categoryType}/case-attributes{?product,problem,area,service}
Get Severity Definitions GET /case-management/v2/categories/{categoryType}/severity-definitions{?product}
Get Response Times GET /case-management/v2/categories/{categoryType}/response-time-frequency{?product}
Questionnaires
Get a Questionnaire GET /case-management/v2/questionnaires/{questionnaireId}
Cases
Create a New Case POST /case-management/v2/cases/
List Cases GET /case-management/v2/cases/{?type}
Get a Case GET /case-management/v2/cases/{caseId}
Add a Note POST /case-management/v2/cases/{caseId}/notes
Close a Case POST /case-management/v2/cases/{caseId}/close-request
Upload a File POST /case-management/v2/cases/{caseId}/files
Download a File GET /case-management/v2/cases/{caseId}/files/{fileId}

List categories

To create a new support ticket, you first need to categorize it, both with a top-level category and a set of subcategories. This operation gets the top-level category necessary to list the subcategories.

GET /case-management/v2/categories

Example: /case-management/v2/categories

Status 200 application/json

Response:

[
    {
        "categoryType": "Technical",
        "displayName": "Technical Support Issue",
        "description": "Performance, Stale Content, Errors and Unexpected behaviors, and other break/fix issues, etc."
    },
    {
        "categoryType": "Business",
        "displayName": "Business Support Issue or Question",
        "description": "CP Code, User Access and Management, How To Use Luna Control Center, Reporting, Contract, etc."
    },
    {
        "categoryType": "Billing",
        "displayName": "Billing Support Issue or Question",
        "description": "Invoice issues, Billing discrepancies, Purchase Order details, etc."
    },
    {
        "categoryType": "Security",
        "displayName": "Managed Security Support",
        "description": null
    },
    {
        "categoryType": "Professional-Services",
        "displayName": "Professional Services Request (billable)",
        "description": null
    }
]

Run this operation to retrieve a categoryType value for use in gathering information to create a new support ticket:

  1. GET /case-management/v2/categories.

  2. From the response array, choose the appropriate Category object.

  3. Store the object’s categoryType.

Get subcategories

To create a new support ticket, you need to provide a top-level category and at least one relevant subcategory. This operation provides data from which to extract a subcategory type and unique value.

GET /case-management/v2/categories/{categoryType}/sub-categories

Example: /case-management/v2/categories/Technical/sub-categories

Parameter Type Sample Description
Required
categoryType Enumeration Technical The top-level category assigned to the support ticket, either Billing, Business, Professional-Services, Security, or Technical.

Status 200 application/json

Response:

{
    "subCategory": {
        "subCategoryType": "area",
        "displayName": "Area",
        "subCategories": [
            {
                "subCategoryType": "CP Code Management",
                "displayName": "CP Code Management",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Change Contract Association",
                            "displayName": "Change Contract Association"
                        },
                        {
                            "subCategoryType": "Delete CP Code",
                            "displayName": "Delete CP Code"
                        },
                        {
                            "subCategoryType": "Edit CP Code Details",
                            "displayName": "Edit CP Code Details"
                        },
                        {
                            "subCategoryType": "New CP Code",
                            "displayName": "New CP Code"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Context Selector",
                "displayName": "Context Selector",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Delete Context",
                            "displayName": "Delete Context"
                        },
                        {
                            "subCategoryType": "Merge Contexts",
                            "displayName": "Merge Contexts"
                        },
                        {
                            "subCategoryType": "Set up Context",
                            "displayName": "Set up Context"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "General Account Management",
                "displayName": "General Account Management",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Product Support",
                            "displayName": "Product Support"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Portal Reports",
                "displayName": "Portal Reports",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Contract Usage Report",
                            "displayName": "Contract Usage Report"
                        },
                        {
                            "subCategoryType": "Information Request",
                            "displayName": "Information Request"
                        },
                        {
                            "subCategoryType": "SLA Reports",
                            "displayName": "SLA Reports"
                        },
                        {
                            "subCategoryType": "Traffic Reports",
                            "displayName": "Traffic Reports"
                        },
                        {
                            "subCategoryType": "URL Reports",
                            "displayName": "URL Reports"
                        },
                        {
                            "subCategoryType": "Visitor Reports",
                            "displayName": "Visitor Reports"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Reporting Groups",
                "displayName": "Reporting Groups",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Create Reporting Group",
                            "displayName": "Create Reporting Group"
                        },
                        {
                            "subCategoryType": "Delete Reporting Group",
                            "displayName": "Delete Reporting Group"
                        },
                        {
                            "subCategoryType": "Edit Reporting Group",
                            "displayName": "Edit Reporting Group"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "SSL Certificate Validation",
                "displayName": "SSL Certificate Validation",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Information Request",
                            "displayName": "Information Request"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Storage Groups",
                "displayName": "Storage Groups",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Create Storage Group",
                            "displayName": "Create Storage Group"
                        },
                        {
                            "subCategoryType": "Create Upload Account",
                            "displayName": "Create Upload Account"
                        },
                        {
                            "subCategoryType": "Delete Storage Group",
                            "displayName": "Delete Storage Group"
                        },
                        {
                            "subCategoryType": "Delete Upload Account",
                            "displayName": "Delete Upload Account"
                        },
                        {
                            "subCategoryType": "Edit Storage Group Details",
                            "displayName": "Edit Storage Group Details"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Test Objects",
                "displayName": "Test Objects",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Delete SLA Test Object",
                            "displayName": "Delete SLA Test Object"
                        },
                        {
                            "subCategoryType": "Set up SLA Test Object",
                            "displayName": "Set up SLA Test Object"
                        },
                        {
                            "subCategoryType": "Set up SureRoute Test Object",
                            "displayName": "Set up SureRoute Test Object"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "Training",
                "displayName": "Training",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "LUNA Training",
                            "displayName": "LUNA Training"
                        },
                        {
                            "subCategoryType": "Product Training",
                            "displayName": "Product Training"
                        }
                    ]
                }
            },
            {
                "subCategoryType": "User Admin",
                "displayName": "User Admin",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "24x7 User Management",
                            "displayName": "24x7 User Management"
                        },
                        {
                            "subCategoryType": "Create New User",
                            "displayName": "Create New User"
                        },
                        {
                            "subCategoryType": "Delete User",
                            "displayName": "Delete User"
                        },
                        {
                            "subCategoryType": "Edit User Details",
                            "displayName": "Edit User Details"
                        },
                        {
                            "subCategoryType": "Forgot Username/Password",
                            "displayName": "Forgot Username/Password"
                        }
                    ]
                }
            }
        ]
    }
}

Run these steps to build an array of subcategories for use in creating a new support ticket.

  1. Run the steps for the List Categories operation to store a relevant categoryType value.

  2. Make a GET request to /case-management/v2/categories/{categoryType}/sub-categories.

  3. The response object is a recursive data structure that represents a hierarchy of subcategories. Store the subSelection object’s subSelectionType and displayName, which specify a topic for the subcategory.

  4. If there is a subCategories array, it specifies each relevant subcategory within the topic. Select a relevant object from the array and store its subSelectionType as subSelectionValue.

  5. If the subcategory features a nested subSelection member, optionally repeat the previous two steps until you have descended the tree to select the most appropriate pair of subSelectionType and subSelectionValue values.

  6. Push an object with the subSelectionType, subSelectionValue, and displayName values to an array.

  7. Optionally repeat if you want to assign more than one relevant subcategory to a support ticket.

Get case attributes

To create a new support ticket, this operation prompts for content you are expected to fill out. The response features various field names, expected data types, and enumerated values if appropriate.

GET /case-management/v2/categories/{categoryType}/case-attributes{?product,problem,area,service}

Example: /case-management/v2/categories/Technical/case-attributes?product=Alta&problem=Alerts&area=Company%20Registration&service=Address%20Change

Parameter Type Sample Description
Required
categoryType Enumeration Technical The top-level category assigned to the support ticket, either Billing, Business, Professional-Services, Security, or Technical.
Optional
area String Company Registration Filter results to subcategories whose subCategoryType is area, and where the parameter value matches the subCategoryValue.
problem String Alerts Filter results to subcategories whose subCategoryType is problem, and where the parameter value matches the subCategoryValue.
product String Alta Filter results to subcategories whose subCategoryType is product, and where the parameter value matches the subCategoryValue.
service String Address Change Filter results to subcategories whose subCategoryType is service, and where the parameter value matches the subCategoryValue.

Status 200 application/json

Response:

{
    "userDetail": {
        "userName": {
            "value": "Sample User",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Name",
                "maxlength": 100,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userPhone": {
            "value": 12345467890,
            "uiControls": {
                "fieldType": "text",
                "displayName": "Phone Number",
                "maxlength": 40,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userEmail": {
            "value": "sample@email.com",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Email",
                "maxlength": 80,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userCompany": {
            "value": "Sample Company",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Company Name",
                "maxlength": 100,
                "isRequired": true,
                "isDisabled": true
            }
        }
    },
    "severity": {
        "answerOptions": [
            {
                "answerId": "1-Major Impact",
                "answerValue": "1-Major Impact"
            },
            {
                "answerId": "2-Major Impact",
                "answerValue": "2-Major Impact"
            },
            {
                "answerId": "3-Major Impact",
                "answerValue": "3-Major Impact"
            }
        ],
        "value": "1-Major Impact",
        "uiControls": {
            "fieldType": "dropdown",
            "displayName": "Severity",
            "isRequired": true,
            "isDisabled": false
        },
        "links": [
            {
                "href": "/case-management/v2/categories/{categoryType}/severity-definitions?product=product_1_id",
                "rel": "severity-definitions"
            },
            {
                "href": "/case-management/v2/categories/{categoryType}/response-time-frequency?product=product_1_id",
                "rel": "response-time-frequency"
            }
        ]
    },
    "subject": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Subject",
            "maxlength": 100,
            "isRequired": true,
            "isDisabled": false
        }
    },
    "description": {
        "value": "",
        "uiControls": {
            "fieldType": "textarea",
            "displayName": "Description",
            "maxlength": 2000,
            "isRequired": true,
            "isDisabled": false,
            "rows": 25
        }
    },
    "additionalDetails": {
        "value": "",
        "uiControls": {
            "fieldType": "textarea",
            "displayName": "Additional Details",
            "maxlength": 2000,
            "isRequired": false,
            "isDisabled": false,
            "rows": 5
        }
    },
    "upload": {
        "value": "",
        "uiControls": {
            "fieldType": "file-upload",
            "displayName": "Upload File",
            "isRequired": false,
            "isDisabled": false,
            "maxSize": "5MB"
        }
    },
    "customer": {
        "answerOptions": [
            {
                "answerId": "c1",
                "answerValue": "Customer 1"
            },
            {
                "answerId": "c2",
                "answerValue": "Customer 2"
            },
            {
                "answerId": "c3",
                "answerValue": "Customer 3"
            },
            {
                "answerId": "c4",
                "answerValue": "Customer 4"
            }
        ],
        "value": "c1",
        "uiControls": {
            "fieldType": "dropdown",
            "displayName": "Customer",
            "isRequired": false,
            "isDisabled": false
        }
    },
    "partnerTicketNumber": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Partner Ticket Number",
            "maxlength": 30,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "endCustomerName": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "End Customer Name",
            "maxlength": 100,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "customerTrackingNumber": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Customer Tracking Number",
            "maxlength": 100,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "links": [
        {
            "href": "/case-management/v2/questionnaires/100",
            "rel": "questionnaire"
        }
    ]
}

Run these steps to get relevant values to add when POSTing a new support ticket.

  1. Run the steps for the List Categories operation to store a relevant categoryType value.

  2. Optionally set the area, problem, product or service parameters to filter attributes to a relevant type of subcategory.

  3. Make a GET request to /case-management/v2/categories/{categoryType}/case-attributes{?area,problem,product,service}.

  4. The response object specifies various field names, such as subject and description, to include in the POST object when creating a new support ticket. Iterate over the keys and corresponding object for these fields and other fields in the nested userDetail object.

  5. For each object, optionally present the value as an interface prompt.

  6. For each object, optionally check the uiControls.fieldType for guidance on the expected data type.

  7. For each object, if an answerOptions array is present, it collects fixed or previously cached values. Optionally choose the appropriate answerValue from one of the objects.

  8. For the severity object, optionally navigate its links for more information on severity levels. Make a GET request on these to run the Get Severity Definitions and Get Response Times operations.

  9. To include optional questionnaire items in the new support ticket, make a GET request on the href for the top-level hypermedia links. Add a questionnaire member to the POST object based on the steps for the Get a Questionnaire operation.

Once you have iterated through the fields for each case attribute, your POST object should be filled with appropriate top-level values, and a userDetail object should capture information about the user to whom the support ticket applies. An optional questionnaire should capture relevant questions and their answers.

Get severity definitions

To provide guidance when creating a new ticket, this operation provides details on each severity level.

GET /case-management/v2/categories/{categoryType}/severity-definitions{?product}

Example: /case-management/v2/categories/Technical/severity-definitions?product=Alta

Parameter Type Sample Description
Required
categoryType Enumeration Technical The top-level category assigned to the support ticket, either Billing, Business, Professional-Services, Security, or Technical.
Optional
product String Alta Filter results to subcategories whose subCategoryType is area, and where the parameter value matches the subCategoryValue.

Status 200 application/json

Response:

[
    {
        "severityLevelType": "1-Critical",
        "description": "An existing network or environment is down or there is a critical impact to an End User's business operation. There is no reasonable workaround currently available.",
        "escalationInstructions": "Open a ticket online in the Luna control center and optionally call +1-855-625-2624 (1-855-6-AKAMAI) or +1-617-444-4605",
        "standardResponseTime": "1 hour"
    },
    {
        "severityLevelType": "2-Major",
        "description": "Operation of customer's existing network or environment is severely degraded or significant aspects of End User's business operation are negatively impacted by unacceptable network or environment performance.",
        "escalationInstructions": "Open a ticket online in the Luna control center and optionally call +1-855-625-2624 (1-855-6-AKAMAI) or +1-617-444-4605",
        "standardResponseTime": "1 business hour"
    },
    {
        "severityLevelType": "3-Moderate",
        "description": "Operational performance of End User's network or environment is impaired, although most business operations remain functional.",
        "escalationInstructions": "Open a ticket online in the Luna control center",
        "standardResponseTime": "1 business day"
    },
    {
        "severityLevelType": "4-Low",
        "description": "Cisco or an End User requires information or assistance on Software capabilities, installation, or configuration.",
        "escalationInstructions": "Open a ticket online in the Luna control center",
        "standardResponseTime": "2 business days"
    }
]

Run these steps when creating a new support ticket only to get information about the possible severity level.

  1. Run the steps for the List Categories operation to store a relevant categoryType value.

  2. Optionally set product to filter results relevant only to a specific product.

  3. Make a GET request to /case-management/v2/categories/{categoryType}/severity-definitions{?product}.

  4. From the response array, select the object whose severityLevelType matches the proposed severity you may assign. The description characterizes the type of problem, while the escalationInstructions suggests alternate ways to contact Akamai about the problem.

The response’s standardResponseTime offers an estimate for how long it takes to address the ticket, but you can run the Get Response Times operation for a more detailed estimate.

Get response times

To provide guidance when creating a new ticket, this operation provides estimates for response times for each severity level.

GET /case-management/v2/categories/{categoryType}/response-time-frequency{?product}

Example: /case-management/v2/categories/Technical/response-time-frequency?product=Alta

Parameter Type Sample Description
Required
categoryType Enumeration Technical The top-level category assigned to the support ticket, either Billing, Business, Professional-Services, Security, or Technical.
Optional
product String Alta Filter results to subcategories whose subCategoryType is area, and where the parameter value matches the subCategoryValue.

Status 200 application/json

Response:

{
    "responseTimeAndFrequencyDetails": [
        {
            "supportTypeDisplayName": "Premium & Premium 2.0",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 30 minutes"
                        },
                        {
                            "severityLevelType": "2-Moderate",
                            "responseTime": "< 60 minutes"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "Hourly"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "Daily"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "Daily"
                        }
                    ]
                }
            ]
        },
        {
            "supportTypeDisplayName": "Named Enhanced Support",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 30 minutes"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "< 2 hours"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": " - "
                        }
                    ]
                }
            ]
        },
        {
            "supportTypeDisplayName": "Priority with Enhanced SLA",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 30 minutes"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "< 2 hours"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 4 hours"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "Daily"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "Daily"
                        }
                    ]
                }
            ]
        },
        {
            "supportTypeDisplayName": "Priority",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 1 hour"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "< 2 hours"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "4 hours"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "Daily"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "Daily"
                        }
                    ]
                }
            ]
        },
        {
            "supportTypeDisplayName": "Standard with Enhanced SLA",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 30 minutes"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "< 2 hours"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": " - "
                        }
                    ]
                }
            ]
        },
        {
            "supportTypeDisplayName": "Standard",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 2 hours"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "< 4 hours"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 2 business days"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": " - "
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": " - "
                        }
                    ]
                }
            ]
        }
    ],
    "additionalInformation": [
        "Initial Response = First communication from Akamai personnel to customer by phone or email",
        "Status Updates = Any subsequent Akamai communication to customer by phone or email",
        "* This 1-Major Impact SLA is applicable only when the issue is opened via phone"
    ]
}

Run these steps when creating a new support ticket only to get information about the possible severity level.

  1. Run the steps for the List Categories operation to store a relevant categoryType value.

  2. Optionally set product to filter results relevant only to a specific product.

  3. Make a GET request to /case-management/v2/categories/{categoryType}/response-time-frequency{?product}.

  4. From the response’s responseTimeAndFrequencyDetails array, select the appropriate type of support object based on the supportTypeDisplayName.

  5. From the support object’s interactionTypes array, choose the interaction with the most appropriate interactionType, either initialResponse or statusUpdates.

  6. From the responseTimes array, choose the most appropriate severityLevelType to consider when posting a severity level for a new ticket. The responseTime provides an estimated time, expressed as plain text.

Get a questionnaire

Provides a series of questions and answers relevant to the case category, for use in creating a new ticket.

GET /case-management/v2/questionnaires/{questionnaireId}

Example: /case-management/v2/questionnaires/100

Parameter Type Sample Description
Required
questionnaireId String 100 Unique identifier for a questionnaire.

Status 200 application/json

Response:

{
    "questionnaireId": 100,
    "questions": [
        {
            "questionId": 670,
            "questionText": "Question for Id 670",
            "helpText": "Help text for 670",
            "uiControls": {
                "fieldType": "Date",
                "isRequired": true,
                "isDisabled": false,
                "isClearable": true
            },
            "currentAnswers": [ "answer for question 670" ]
        },
        {
            "questionId": 671,
            "questionText": "Question for id 671",
            "helpText": "Help text for id 671",
            "uiControls": {
                "fieldType": "MultiSelect",
                "isRequired": true,
                "isDisabled": false,
                "isClearable": true
            },
            "answerOptions": [
                {
                    "answerId": 986,
                    "answerValue": "Akamai Site Analyzer",
                    "dependentQuestions": [
                        {
                            "questionId": 672,
                            "questionText": "Question for Id 672",
                            "helpText": "Help text for 672",
                            "uiControls": {
                                "fieldType": "Date",
                                "isRequired": true,
                                "isDisabled": false
                            },
                            "currentAnswers": [ "answer for question 672" ]
                        },
                        {
                            "questionId": 673,
                            "questionText": "Question for Id 673",
                            "helpText": "Help text for 673",
                            "uiControls": {
                                "fieldType": "Date",
                                "isRequired": true,
                                "isDisabled": false
                            },
                            "currentAnswers": [ "answer for question 673" ]
                        }
                    ]
                },
                {
                    "answerId": 987,
                    "answerValue": "Gomez",
                    "dependentQuestions": []
                },
                {
                    "answerId": 988,
                    "answerValue": "In-house monitoring",
                    "dependentQuestions": []
                },
                {
                    "answerId": 989,
                    "answerValue": "Keynote",
                    "dependentQuestions": []
                }
            ],
            "currentAnswers": [ "986" ]
        }
    ]
}

These steps produce a questionnaire object suitable to include within the POST request for a new support ticket. You run this operation based on a hypermedia link embedded within the response object for the Get Case Attributes operation. The required questionnaireId necessary to access the /case-management/v2/questionnaires/{questionnaireId} resource is available only within this category-specific context.

  1. Make a GET request on the supplied href link.

  2. Store the response’s questionnaireId in a questionnaire object.

  3. For each item in the questions array, evaluate the questionText and helpText. If the question is relevant, store the questionId, otherwise skip to the next question.

  4. Check the uiControls.fieldType for the answer’s expected data type.

  5. Iterate over any available answerOptions array within the question, and optionally pust its answerValue to a currentAnswers array. Otherwise push another value based on the data type.

  6. Store the questionId string and the currentAnswers array in an object, and push the object to the questionnaire object’s questions array.

  7. Within an answerOptions item, optionally answer any series of nested dependentQuestions as described above. These questions are relevant only to the answerOptions item.

After running these steps, the questionnaire object should be ready to include in a larger POST object that creates a new support ticket.

Create a new case

Create a new support ticket based on a chosen category and set of subcategories.

POST /case-management/v2/cases/

Example: /case-management/v2/cases/

Request:

{
    "questionnaire": {
        "questionnaireId": "100",
        "questions": [
            {
                "questionId": "670",
                "currentAnswers": [ "2015-11-29T11:58:53.273Z" ]
            },
            {
                "questionId": "671",
                "currentAnswers": [ "986" ]
            }
        ]
    },
    "userDetail": {
        "userName": "Customer name",
        "userPhone": "080398137489",
        "userEmail": "acn@akamai.com",
        "userCompany": "Software"
    },
    "severity": "1-Major Impact",
    "subject": "Subject",
    "description": "Test Description",
    "customer": "telefilm",
    "customerTrackingNumber": "TRACK-FSDJW452",
    "endCustomerName": "Customer 1",
    "partnerTicketNumber": "SDG232ASD23",
    "categoryType": "Technical",
    "doNotShowInPortalFlag": false,
    "subCategories": [
        {
            "displayName": "Product",
            "subCategoryType": "product",
            "subCategoryValue": "Alta"
        },
        {
            "displayName": "Problem",
            "subCategoryType": "problem",
            "subCategoryValue": "Alerts"
        }
    ]
}

Status 200 application/json

Response:

{
    "success": true,
    "caseId": "F-CS-1778108",
    "details": [
        {
            "type": "diagnostic-url",
            "url": "http://www.ipdiagnostics.com/request.action?client=akamai&case=F-CS-1778108&URL=https://www.foo.com/d "
        }
    ],
    "message": "Case has been successfully created with Case Id  F-CS-1778108"
}

  1. Run the List Categories operation and store the relevant categoryType.

  2. Create a POST object, assigning the categoryType to the top level.

  3. Run the Get Subcategories operation and follow the operations to build an array of objects featuring subCategoryType, subCategoryValue, and displayName members. Place this array in the POST object’s subCategories.

  4. Run Get Case Attributes to prepare new data for the POST object. In addition to top-level data, it should also feature data about the user within a userDetail object.

  5. Based on the hypermedia link embedded in the CaseAttributes response object, optionally run Get a Questionnaire to answer questions relevant to the support ticket’s top-level category.

  6. Optionally run Get Severity Definitions for help in clarifying severity levels.

  7. Optionally run Get Response Times for help in estimating how long a response will take.

  8. POST the object to /case-management/v2/cases/.

  9. From the successful response object, optionally store the caseId that identifies the new support ticket.

List cases

This operation lists support tickets and allows you to filter the results.

GET /case-management/v2/cases/{?type}

Example: /case-management/v2/cases/?type=user-active

Parameter Type Sample Description
Required
type Enumeration user-active Filter tickets, either user-active or user-closed for the user filing the ticket, company-active or company-closed for cases associated with the API token’s account, or unfiltered all by default.

Status 200 application/json

Response:

[
    {
        "caseId": "F-CS-1013252",
        "subject": "[Managedsecurity] Customers Westpac and NAB cannot view open cases - support service not included in the contract under Luna",
        "categoryType": "Business",
        "status": "Unassigned",
        "createdDate": "2016-02-29T14:15:40+0000",
        "modifiedDate": "2016-02-29T14:15:40+0000",
        "assignedTo": "In Queue",
        "customer": "netflex",
        "links": [
            {
                "rel": "self",
                "href": "/case-management/v2/cases/F-CS-1013252"
            }
        ]
    },
    {
        "caseId": "F-CS-1152565",
        "subject": "Re: [Managedsecurity] Attack targeting power account DataCenter",
        "categoryType": "Technical",
        "status": "Unassigned",
        "createdDate": "2016-02-29T14:15:40+0000",
        "modifiedDate": "2016-02-29T14:15:40+0000",
        "assignedTo": "PS_Americas_Security_SMP",
        "customer": "netflex",
        "links": [
            {
                "rel": "self",
                "href": "/case-management/v2/cases/F-CS-1152565"
            }
        ]
    }
]

  1. Optionally choose a type of case on which to filter: company-active or company-closed for account-wide tickets, otherwise user-active or user-closed for tickets associated with the API token.

  2. Make a GET request to /case-management/v2/cases/{?type}.

From the resulting response array, choose a Case.ticketInfo object whose subject matches the appropriate support ticket. To access details about the case, store its caseId and run the Get a Case operation, or else navigate directly to the hypermedia link.

Get a case

This retrieves the complete details about a specific case.

GET /case-management/v2/cases/{caseId}

Example: /case-management/v2/cases/F-CS–1013252

Parameter Type Sample Description
Required
caseId String F-CS-1013252 Unique identifier for the support ticket.

Status 200 application/json

Response:

{
    "ticketInfo": {
        "caseId": "F-CS-1455428",
        "subject": "testing",
        "description": "testing",
        "status": "Unassigned",
        "severity": "3-Low Impact",
        "assignedTo": "In Queue",
        "categoryType": "Technical",
        "createdDate": "2016-02-29T14:15:40+0000",
        "modifiedDate": "2016-03-09T08:57:13+0000",
        "customer": "netflix",
        "externalSystemNumber": "AD-1432",
        "geoLinkId": "1-HGAJ",
        "partnerTicketNumber": "ADYH-1272",
        "endCustomerName": "a-netflix",
        "nextStepExternal": "NA",
        "customerTrackingNumber": "AFYGJA-125412",
        "submittedBy": "Rupernita Sahoo",
        "subCategories": [
            {
                "displayName": "Product",
                "subCategoryType": "product",
                "subCategoryValue": "Download Delivery"
            },
            {
                "displayName": "Problem",
                "subCategoryType": "problem",
                "subCategoryValue": "Certificates"
            }
        ]
    },
    "permissions": {
        "requestClose": true,
        "uploadFile": true,
        "addNote": true
    },
    "userDetail": {
        "userCompany": "Akamai Technologies - Assets",
        "userEmail": "rsahoo@nomail-akamai.com",
        "userPhone": "617.475.5661",
        "userName": "Rupernita Sahoo"
    },
    "solution": {
        "solutionSubject": "testing",
        "investigation": "Entry is missing",
        "resolution": "Provide the access"
    },
    "caseMilestones": [
        {
            "caseMilestoneId": "created",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "assigned",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "initialResponse",
            "caseMilestoneDate": "2016-03-09T08:57:12+0000"
        },
        {
            "caseMilestoneId": "inProgress",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "pending",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "closed",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        }
    ],
    "activities": [
        {
            "activitySubject": "Web Update",
            "activityDescription": "On Jay request",
            "activityType": "webUpdate",
            "activityCreatedDate": "2016-03-09T08:57:11+0000",
            "fileName": "screen.jpg",
            "activityCreatedBy": "Luna Case Mgmt",
            "links": []
        },
        {
            "activitySubject": "AddFile",
            "activityDescription": "AddFile",
            "activityType": "attachment",
            "activityCreatedDate": "2016-03-09T08:57:11+0000",
            "fileName": "file.txt",
            "activityCreatedBy": "Luna Case Mgmt",
            "links": [
                {
                    "href": "/case-management/v2/cases/F-CS-1413014/files/123456",
                    "rel": "file"
                }
            ]
        }
    ]
}

  1. Run the List Cases operation and select the appropriate object from the response array. Either navigate directly to the embedded hypermedia link, or store the caseId.

  2. If storing the caseId value, make a GET request to /case-management/v2/cases/{caseId}.

Add a note

Once a support ticket has been created, this operation adds follow-up comments, which are reflected in the Case object’s activities array.

POST /case-management/v2/cases/{caseId}/notes

Example: /case-management/v2/cases/F-CS–1013252/notes

Request:

{ "comment": "Adding note" }

Parameter Type Sample Description
Required
caseId String F-CS-1013252 Unique identifier for the support ticket.

Status 200 application/json

Response:

{
    "caseId": "F-CS-1203600",
    "statusMessage": "Ticket has been successfully updated with notes",
    "links": [
        {
            "href": "/case-management/v2/cases/F-CS-1203600",
            "rel": "parent"
        }
    ]
}

  1. If you do not already have a relevant caseId value, run the List Cases operation, select the appropriate object from the response array, and store the caseId.

  2. Create a simple request object featuring a single comment member and accompanying text. For example: {"comment":"This is the comment."}

  3. POST the object to /case-management/v2/cases/{caseId}/notes.

Close a case

This operation requests to close a ticket, without directly closing it.

POST /case-management/v2/cases/{caseId}/close-request

Example: /case-management/v2/cases/F-CS–1013252/close-request

Request:

{ "comment": "Request to close a ticket." }

Parameter Type Sample Description
Required
caseId String F-CS-1013252 Unique identifier for the support ticket.

Status 200 application/json

Response:

{
    "caseId": "F-CS-1203600",
    "statusMessage": "Ticket has been successfully updated with notes",
    "links": [
        {
            "href": "/case-management/v2/cases/F-CS-1203600",
            "rel": "parent"
        }
    ]
}

  1. If you do not already have a relevant caseId value, run the List Cases operation, select the appropriate object from the response array, and store the caseId.

  2. Create a simple request object featuring a single comment member and accompanying text. For example: {"comment":"please close the ticket."}

  3. POST the comment object to /case-management/v2/cases/{caseId}/close-request.

Upload a file

Once a support ticket has been created, this operation adds a file attachment and comment to it, which are reflected in the Case object’s activities array.

POST /case-management/v2/cases/{caseId}/files

Example: /case-management/v2/cases/F-CS–1013252/files

URL Parameters:

Parameter Type Sample Description
Required URL parameters
caseId String F-CS-1013252 Unique identifier for the support ticket.
Required form parameters
file File N/A The file to be uploaded.
Optional form parameters
comment String Adding logs Any additional information.

Status 200 application/json

Response:

{
    "caseId": "F-CS-1203600",
    "statusMessage": "Ticket has been successfully updated with notes",
    "links": [
        {
            "href": "/case-management/v2/cases/F-CS-1203600",
            "rel": "parent"
        }
    ]
}

  1. If you do not already have a relevant caseId value, run the List Cases operation, select the appropriate object from the response array, and store the caseId.

  2. Create a simple request object featuring a single comment member and accompanying text. For example: {"comment":"Description of file."}

  3. Encode the file if it is in a binary format.

  4. Form a multipart/form-data string, using a unique separator to delimit each part. The data needs to incorporate the comment object typed as application/json, and the file upload string using its appropriate MIME type.

  5. POST the multipart/form-data typed string to /case-management/v2/cases/{caseId}/files.

  6. From the successful response object, optionally store the hypermedia link to download the file later.

Download a file

This operation downloads any file attached to a support ticket.

GET /case-management/v2/cases/{caseId}/files/{fileId}

Example: /case-management/v2/cases/F-CS–1013252/files/00Pm0000009XDiiEAG

Parameter Type Sample Description
Required
caseId String F-CS-1013252 Unique identifier for the support ticket.
fileId String 00Pm0000009XDiiEAG Unique identifier for the file attachment.

Status 200 application/json

Response:

4944 3302 0000 0000 1030 3230 3134 0000
0826 0000 1000 656e 6769 5475 6e50 4741
5000 3000 0054 454e 0000 0f00 6954 756e
6573 2076 372e 342e 3200 434f 4d00 0068
0065 6e67 6954 756e 4e4f 524d 0020 3030
3030 3032 3735 2030 3030 3030 3239 4320
3030 3030 3433 3334 2030 3030 3034 3138
3020 3030 3032 3539 4131 2030 3030 3235
3941 3120 3030 3030 3737 4242 2030 3030
3036 4243 3520 3030 3031 4538 3738 2030
3030 3145 3830 4600 434f 4d00 0082 0065
6e67 6954 756e 534d 5042 0020 3030 3030
3030 3030 2030 3030 3030 3231 3020 3030
3030 3039 3446 2030 3030 3030 3030 3030
3037 3237 4132 3120 3030 3030 3030 3030
2030 3033 4533 4638 3320 3030 3030 3030
3030 2030 3030 3030 3030 3020 3030 3030

Ideally, when running the Upload a File operation, you should store the resulting hypermedia link to later access the file. Otherwise follow these steps if you don’t have that information.

  1. If you do not already have a relevant caseId value, run the List Cases operation, select the appropriate object from the response array, and store the caseId.

  2. Run the Get a Case operation by making a GET request to /case-management/v2/cases/{caseId}.

  3. Filter the response Case object’s activities array to include objects whose activityType is attachment.

  4. Select the activity whose fileName or activityCreatedDate is most appropriate.

  5. Make a GET request on the embedded hypermedia link. This corresponds to this URL template, for which there is no direct need to store the fileId value: /case-management/v2/cases/{caseId}/files/{fileId}.

Data

This section provides details for each type of data object the API exchanges. The Case object specifies the response when you GET an individual support ticket. The CasePost object specifies the form of request necessary when creating new support tickets. The UiControls is a common object that appears embedded within other object types. The Response is a common object that acknowledges comments added to a support ticket, file uploads, or requests to close the ticket.

Category

For use in creating new support tickets, this specifies high-level categories that assign questionnaires and other inputs.

Sample GET response:

[
    {
        "categoryType": "Technical",
        "displayName": "Technical Support Issue",
        "description": "Performance, Stale Content, Errors and Unexpected behaviors, and other break/fix issues, etc."
    },
    {
        "categoryType": "Business",
        "displayName": "Business Support Issue or Question",
        "description": "CP Code, User Access and Management, How To Use Luna Control Center, Reporting, Contract, etc."
    },
    {
        "categoryType": "Billing",
        "displayName": "Billing Support Issue or Question",
        "description": "Invoice issues, Billing discrepancies, Purchase Order details, etc."
    },
    {
        "categoryType": "Security",
        "displayName": "Managed Security Support",
        "description": null
    },
    {
        "categoryType": "Professional-Services",
        "displayName": "Professional Services Request (billable)",
        "description": null
    }
]

Category members

Member Type Required Description
categoryType Enumeration The category type, either Billing, Business, Professional-Services, Security, or Technical.
description String Provides additional descriptive text for the category.
displayName String The name of the category, for use in display within the interface.

SubCategory

Encapsulates a hierarchy of subcategories based on the initially selected Category. This recursive data structure, accessible through the response’s top-level subCategory member, represents two levels of contextual data. One provides a common subcategory topic for use in interfaces, and another provides a value for each subcategory to assign when creating a new support ticket. Objects that represent these topics always feature a nested subCategories array. Objects that represent values within that array may feature an additional subCategory encapsulating the same nested topic/value structure. If neither subCategories nor subCategory members are present, the object is a subcategory value that serves as a terminal leaf node with no nested subcategories.

Sample GET response:

{
    "subCategory": {
        "subCategoryType": "area",
        "displayName": "Area",
        "subCategories": [
            {
                "subCategoryType": "CP Code Management",
                "displayName": "CP Code Management",
                "subCategory": {
                    "subCategoryType": "service",
                    "displayName": "Service",
                    "subCategories": [
                        {
                            "subCategoryType": "Change Contract Association",
                            "displayName": "Change Contract Association"
                        },
                        {
                            "subCategoryType": "Delete CP Code",
                            "displayName": "Delete CP Code"
                        },
                        {
                            "subCategoryType": "Edit CP Code Details",
                            "displayName": "Edit CP Code Details"
                        },
                        {
                            "subCategoryType": "New CP Code",
                            "displayName": "New CP Code"
                        }
                    ]
                }
            }
        ]
    }
}

SubCategory members

Member Type Required Description
displayName String Interface display text that corresponds to the subCategoryType.
subCategories Array Specifies a series of nested SubCategory objects that represent values. Required within objects that serve as the subcategory’s topic.
subCategoryType String The subcategory topic, or the value to assign to a new support ticket.
subCategory SubCategory.subCategory Within a subcategory value, specifies an optional nested subcategory topic with its own set of nested values.

CaseAttributes

Specifies various details to fill out when creating a new support ticket, along with additional interface tools to help validate the input. Encapsulates information about the user who creates the ticket, and possibly other customers and partners for whom they are creating ticket.

Sample GET response:

{
    "userDetail": {
        "userName": {
            "value": "Sample User",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Name",
                "maxlength": 100,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userPhone": {
            "value": 12345467890,
            "uiControls": {
                "fieldType": "text",
                "displayName": "Phone Number",
                "maxlength": 40,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userEmail": {
            "value": "sample@email.com",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Email",
                "maxlength": 80,
                "isRequired": true,
                "isDisabled": false
            }
        },
        "userCompany": {
            "value": "Sample Company",
            "uiControls": {
                "fieldType": "text",
                "displayName": "Company Name",
                "maxlength": 100,
                "isRequired": true,
                "isDisabled": true
            }
        }
    },
    "severity": {
        "answerOptions": [
            {
                "answerId": "1-Major Impact",
                "answerValue": "1-Major Impact"
            },
            {
                "answerId": "2-Major Impact",
                "answerValue": "2-Major Impact"
            }
        ],
        "value": "1-Major Impact",
        "uiControls": {
            "fieldType": "dropdown",
            "displayName": "Severity",
            "isRequired": true,
            "isDisabled": false
        },
        "links": [
            {
                "href": "/case-management/v2/categories/{categoryType}/severity-definitions?product=product_1_id",
                "rel": "severity-definitions"
            },
            {
                "href": "/case-management/v2/categories/{categoryType}/response-time-frequency?product=product_1_id",
                "rel": "response-time-frequency"
            }
        ]
    },
    "subject": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Subject",
            "maxlength": 100,
            "isRequired": true,
            "isDisabled": false
        }
    },
    "description": {
        "value": "",
        "uiControls": {
            "fieldType": "textarea",
            "displayName": "Description",
            "maxlength": 2000,
            "isRequired": true,
            "isDisabled": false,
            "rows": 25
        }
    },
    "additionalDetails": {
        "value": "",
        "uiControls": {
            "fieldType": "textarea",
            "displayName": "Additional Details",
            "maxlength": 2000,
            "isRequired": false,
            "isDisabled": false,
            "rows": 5
        }
    },
    "upload": {
        "value": "",
        "uiControls": {
            "fieldType": "file-upload",
            "displayName": "Upload File",
            "isRequired": false,
            "isDisabled": false,
            "maxSize": "5MB"
        }
    },
    "customer": {
        "answerOptions": [
            {
                "answerId": "c1",
                "answerValue": "Customer 1"
            },
            {
                "answerId": "c2",
                "answerValue": "Customer 2"
            },
            {
                "answerId": "c3",
                "answerValue": "Customer 3"
            },
            {
                "answerId": "c4",
                "answerValue": "Customer 4"
            }
        ],
        "value": "c1",
        "uiControls": {
            "fieldType": "dropdown",
            "displayName": "Customer",
            "isRequired": false,
            "isDisabled": false
        }
    },
    "partnerTicketNumber": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Partner Ticket Number",
            "maxlength": 30,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "endCustomerName": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "End Customer Name",
            "maxlength": 100,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "customerTrackingNumber": {
        "value": "",
        "uiControls": {
            "fieldType": "text",
            "displayName": "Customer Tracking Number",
            "maxlength": 100,
            "isRequired": false,
            "isDisabled": false
        }
    },
    "links": [
        {
            "href": "/case-management/v2/questionnaires/100",
            "rel": "questionnaire"
        }
    ]
}

CaseAttributes members

Member Type Required Description
additionalDetails CaseAttributes.additionalDetails Provides additional text that describes the problem.
customerTrackingNumber CaseAttributes.customerTrackingNumber Provides a key for a customer’s separately provisioned support ticket.
customer CaseAttributes.customer Encapsulates information about the customer on whose behalf the user is entering the support ticket.
description CaseAttributes.description Provides details for the issue to resolve.
endCustomerName CaseAttributes.endCustomerName Inputs the name of the customer on whose behalf the user is entering a support ticket.
links Hypermedia Provides a location for this ticket’s questionnaire.
partnerTicketNumber CaseAttributes.partnerTicketNumber Provides a key for a partner’s separately provisioned support ticket.
severity CaseAttributes.severity Assigns a severity level to the support ticket.
subject CaseAttributes.subject Provides a title for the support ticket.
upload CaseAttributes.upload Provides the option to upload a file within a user interface. It does not function within the API, and always appears as null.
userDetail CaseAttributes.userDetail Encapsulates information about the user opening the support ticket.
CaseAttributes.additionalDetails: Provides additional text that describes the problem.
uiControls UiControls Specifies form elements to gather user input.
value String Provides additional text that describes the problem.
CaseAttributes.customer: Encapsulates information about the customer on whose behalf the user is entering the support ticket.
answerOptions CaseAttributes.customer.answerOptions[] Provides options based on previously supplied customer information.
currentAnswers Array When creating a support ticket, this provides the answers to the Questionnaire, which is accessed separately from the main set of case attributes. Values correspond to answerId strings.
uiControls UiControls Specifies form elements to gather user input.
CaseAttributes.customer.answerOptions[]: Provides options based on previously supplied customer information.
answerId String Identifies each customer.
answerValue String Displays the customer’s name.
CaseAttributes.customerTrackingNumber: Provides a key for a customer’s separately provisioned support ticket.
uiControls UiControls Specifies form elements to gather user input.
value String Provides a key for a customer’s separately provisioned support ticket.
CaseAttributes.description: Provides details for the issue to resolve.
uiControls UiControls Specifies form elements to gather user input.
value String Provides details for the issue to resolve.
CaseAttributes.endCustomerName: Inputs the name of the customer on whose behalf the user is entering a support ticket.
uiControls UiControls Specifies form elements to gather user input.
value String Inputs the name of the customer on whose behalf the user is entering a support ticket.
CaseAttributes.partnerTicketNumber: Provides a key for a partner’s separately provisioned support ticket.
uiControls UiControls Specifies form elements to gather user input.
value String Provides a key for a partner’s separately provisioned support ticket.
CaseAttributes.severity: Assigns a severity level to the support ticket.
answerOptions CaseAttributes.severity.answerOptions[] Provides a series of options from which to choose a severity level.
links Hypermedia Locates related resources that describe the severity level and provide estimated response times.
uiControls UiControls Specifies form elements to gather user input.
value String Selects the severity level.
CaseAttributes.severity.answerOptions[]: Provides a series of options from which to choose a severity level.
answerId String Identifies the severity option.
answerValue String Provides display text for the severity option.
CaseAttributes.subject: Provides a title for the support ticket.
uiControls UiControls Specifies form elements to gather user input.
value String Provides a title for the support ticket.
CaseAttributes.upload: Provides the option to upload a file within a user interface. It does not function within the API, and always appears as null.
uiControls UiControls Specifies form elements to gather user input.
value Null Provides the option to upload a file. The API value appears as null.
CaseAttributes.userDetail: Encapsulates information about the user opening the support ticket.
userCompany CaseAttributes.userDetail.userCompany Encapsulates information about the user’s company.
userEmail CaseAttributes.userDetail.userEmail Encapsulates the user’s email address.
userName CaseAttributes.userDetail.userName Encapsulates the name of the user.
userPhone CaseAttributes.userDetail.userPhone Encapsulates the user’s phone number.
CaseAttributes.userDetail.userCompany: Encapsulates information about the user’s company
uiControls UiControls Specifies form elements to gather user input.
value String Inputs the user’s company name.
CaseAttributes.userDetail.userEmail: Encapsulates the user’s email address
uiControls UiControls Specifies form elements to gather user input.
value String Inputs the email address.
CaseAttributes.userDetail.userName: Encapsulates the name of the user.
uiControls UiControls Specifies form elements to gather user input.
value String Inputs the name of the user.
CaseAttributes.userDetail.userPhone: Encapsulates the user’s phone number.
uiControls UiControls Specifies form elements to gather user input.
value Number Inputs the phone number, expressed as an integer.

ResponseTime

For a given Support Type and Severity level type, specifies initial response times and frequency of updates for the created case.

Sample GET response:

{
    "responseTimeAndFrequencyDetails": [
        {
            "supportTypeDisplayName": "Premium & Premium 2.0",
            "interactionTypes": [
                {
                    "interactionType": "initialResponse",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "< 30 minutes"
                        },
                        {
                            "severityLevelType": "2-Moderate",
                            "responseTime": "< 60 minutes"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "< 1 business day"
                        }
                    ]
                },
                {
                    "interactionType": "statusUpdates",
                    "responseTimes": [
                        {
                            "severityLevelType": "1-Major",
                            "responseTime": "Hourly"
                        },
                        {
                            "severityLevelType": "1-Moderate",
                            "responseTime": "Daily"
                        },
                        {
                            "severityLevelType": "3-Low",
                            "responseTime": "Daily"
                        }
                    ]
                }
            ]
        }
    ],
    "additionalInformation": [
        "Initial Response = First communication from Akamai personnel to customer by phone or email",
        "Status Updates = Any subsequent Akamai communication to customer by phone or email",
        "* This 1-Major Impact SLA is applicable only when the issue is opened via phone"
    ]
}

ResponseTime members

Member Type Required Description
additionalInformation Array Text items relevant only within an interface.
responseTimeAndFrequencyDetails ResponseTime.responseTimeAndFrequencyDetails[] Associates support levels, severity levels, and response times.
ResponseTime.responseTimeAndFrequencyDetails[]: Associates support levels, severity levels, and response times.
interactionTypes ResponseTime.responseTimeAndFrequencyDetails[].interactionTypes[] For a given support level, lists interaction categories.
supportTypeDisplayName String Display text corresponding to a support-level category.
ResponseTime.responseTimeAndFrequencyDetails[].interactionTypes[]: For a given support level, lists interaction categories.
interactionType Enumeration The type of support interaction, either initialResponse or statusUpdates.
responseTimes ResponseTime.responseTimeAndFrequencyDetails[].interactionTypes[].responseTimes[] Associates support levels with estimated response times.
ResponseTime.responseTimeAndFrequencyDetails[].interactionTypes[].responseTimes[]: Associates support levels with estimated response times.
responseTime String Estimated response time, represented as plain text.
severityLevelType String Specifies the level of severity, corresponding to the support ticket’s severity.

SeverityDefinition

For use in helping the user assign a severity level, this object encapsulates details about each.

Sample GET response:

[
    {
        "severityLevelType": "1-Critical",
        "description": "An existing network or environment is down or there is a critical impact to an End User's business operation. There is no reasonable workaround currently available.",
        "escalationInstructions": "Open a ticket online in the Luna control center and optionally call +1-855-625-2624 (1-855-6-AKAMAI) or +1-617-444-4605",
        "standardResponseTime": "1 hour"
    },
    {
        "severityLevelType": "2-Major",
        "description": "Operation of customer's existing network or environment is severely degraded or significant aspects of End User's business operation are negatively impacted by unacceptable network or environment performance.",
        "escalationInstructions": "Open a ticket online in the Luna control center and optionally call +1-855-625-2624 (1-855-6-AKAMAI) or +1-617-444-4605",
        "standardResponseTime": "1 business hour"
    },
    {
        "severityLevelType": "3-Moderate",
        "description": "Operational performance of End User's network or environment is impaired, although most business operations remain functional.",
        "escalationInstructions": "Open a ticket online in the Luna control center",
        "standardResponseTime": "1 business day"
    },
    {
        "severityLevelType": "4-Low",
        "description": "Cisco or an End User requires information or assistance on Software capabilities, installation, or configuration.",
        "escalationInstructions": "Open a ticket online in the Luna control center",
        "standardResponseTime": "2 business days"
    }
]

SeverityDefinition members

Member Type Required Description
description String Describes the types of problem ordinarily associated with the level of severity.
escalationInstructions String For use in interfaces, suggests other ways to get help.
severityLevelType String Provides the key that identifies the severity level.
standardResponseTime String Provides an estimate for the amount of time it typically takes to respond to the support request, expressed as a string such as 1 business day.

Questionnaire

Encapsulates questionnaire data to help categorize problems when opening support tickets.

Sample GET response:

{
    "questionnaireId": 100,
    "questions": [
        {
            "questionId": 670,
            "questionText": "Question for Id 670",
            "helpText": "Help text for 670",
            "uiControls": {
                "fieldType": "Date",
                "isRequired": true,
                "isDisabled": false,
                "isClearable": true
            },
            "currentAnswers": [ "answer for question 670" ]
        },
        {
            "questionId": 671,
            "questionText": "Question for id 671",
            "helpText": "Help text for id 671",
            "uiControls": {
                "fieldType": "MultiSelect",
                "isRequired": true,
                "isDisabled": false,
                "isClearable": true
            },
            "answerOptions": [
                {
                    "answerId": 986,
                    "answerValue": "Akamai Site Analyzer",
                    "dependentQuestions": [
                        {
                            "questionId": 672,
                            "questionText": "Question for Id 672",
                            "helpText": "Help text for 672",
                            "uiControls": {
                                "fieldType": "Date",
                                "isRequired": true,
                                "isDisabled": false
                            },
                            "currentAnswers": [ "answer for question 672" ]
                        },
                        {
                            "questionId": 673,
                            "questionText": "Question for Id 673",
                            "helpText": "Help text for 673",
                            "uiControls": {
                                "fieldType": "Date",
                                "isRequired": true,
                                "isDisabled": false
                            },
                            "currentAnswers": [ "answer for question 673" ]
                        }
                    ]
                },
                {
                    "answerId": 987,
                    "answerValue": "Gomez",
                    "dependentQuestions": []
                },
                {
                    "answerId": 988,
                    "answerValue": "In-house monitoring",
                    "dependentQuestions": []
                },
                {
                    "answerId": 989,
                    "answerValue": "Keynote",
                    "dependentQuestions": []
                }
            ],
            "currentAnswers": [ "986" ]
        }
    ]
}

Questionnaire members

Member Type Required Description
questionnaireId Number Unique identifier for the questionnaire.
questions Questionnaire.questions[] Encapsulates each question presented to the user.
Questionnaire.questions[]: Encapsulates each question presented to the user.
questionId Number Unique integer identifier for each question.
questionText String The question’s display text.
uiControls UiControls Specifies form elements to gather user input.
answerOptions Questionnaire.questions[].answerOptions[] Specifies a set of multiple choice answers.
currentAnswers Array Specifies the selected answer.
helpText String Provides any additional context for the question.
Questionnaire.questions[].answerOptions[]: Specifies a set of multiple choice answers.
answerId Number Unique integer identifier for each answer.
answerValue String The answer’s display text.
dependentQuestions Array Specifies a set of already-answered questions whose currentAnswers would determine whether it’s appropriate to present this answer as an option.

UiControls

This object, used to present Questionnaire and CaseAttributes data within a user interface, specifies form elements to gather user input.

Sample sub-object:

{
    "displayName": "Name",
    "fieldType": "text",
    "isDisabled": false,
    "isRequired": true,
    "maxlength": 100
}

UiControls members

Member Type Required Description
displayName String The interface label that displays alongside the form input.
fieldType Enumeration Specifies the interface field’s semantic data type, either checkbox, date-time, date-time-timezone, decimal, dropdown, file-upload, number, radio, text, or textarea.
isClearable Boolean Whether the value of the input element can be modified. Applies only when the fieldType is date-time, date-time-timezone, or dropdown.
isDisabled Boolean Whether the input element is available within the interface.
isRequired Boolean Whether the data must be provided.
maxSize String When the fieldType is file-upload, this specifies the maximum size of the file, formatted to specify units such as 5MB.
maxlength Number When the fieldType is text or textarea, this specifies the maximum number of characters allowed.
rows Number When the fieldType is textarea, this specifies the number of vertical lines that display.

CasePost

Encapsulates data necessary to create a new support ticket. Once created, much of this data is reflected back in the ticketInfo object.

Sample POST request:

{
    "questionnaire": {
        "questionnaireId": "100",
        "questions": [
            {
                "questionId": "670",
                "currentAnswers": [ "2015-11-29T11:58:53.273Z" ]
            },
            {
                "questionId": "671",
                "currentAnswers": [ "986" ]
            }
        ]
    },
    "userDetail": {
        "userName": "Customer name",
        "userPhone": "080398137489",
        "userEmail": "acn@akamai.com",
        "userCompany": "Software"
    },
    "severity": "1-Major Impact",
    "subject": "Subject",
    "description": "Test Description",
    "customer": "telefilm",
    "customerTrackingNumber": "TRACK-FSDJW452",
    "endCustomerName": "Customer 1",
    "partnerTicketNumber": "SDG232ASD23",
    "categoryType": "Technical",
    "doNotShowInPortalFlag": false,
    "subCategories": [
        {
            "displayName": "Product",
            "subCategoryType": "product",
            "subCategoryValue": "Alta"
        },
        {
            "displayName": "Problem",
            "subCategoryType": "problem",
            "subCategoryValue": "Alerts"
        }
    ]
}

CasePost members

Member Type Required Description
additionalDetails String Provides additional text that describes the problem.
categoryType String The ticket’s relevant top-level category, either Billing, Business, Professional-Services, Security, or Technical.
customerTrackingNumber String If a reseller creates a case on behalf of a third party, this allows the reseller its own way to uniquely identify the case ticket.
customer String If a reseller creates a case for a third party, this specifies the company name for the account.
description String An extended description of the problem. This field is ignored if a questionnaire object is present. In that case, leave the description blank and use additionalDetails to specify any descriptive text.
doNotShowInPortalFlag Boolean Whether the support ticket is suppressed from certain interfaces, false by default.
endCustomerName String If a reseller creates a case for a third party, this identifies the name of the end user for whom the ticket is being tracked.
partnerTicketNumber String Value provided by the user in limited cases when creating a new support ticket.
questionnaire CasePost.questionnaire Encapsulates questionnaire data the user answers prior to submitting a ticket. See the Questionnaire object.
severity String Specifies the level of severity based on data available in CaseAttributes.
subCategories CasePost.subCategories[] Specifies a set of Subcategory elements initially assigned to the support ticket.
subject String Specifies a subject line that serves as a title for the support ticket.
userDetail CasePost.userDetail Encapsulates data about the user on whose behalf the support ticket was created, which does not necessarily match who provisioned the API token.
CasePost.questionnaire: Encapsulates questionnaire data the user answers prior to submitting a ticket. See the Questionnaire object.
questionnaireId String Unique identifier for the questionnaire.
questions CasePost.questionnaire.questions[] Lists questions the user has answered.
CasePost.questionnaire.questions[]: Lists questions the user has answered.
currentAnswers Array The user’s answers to the question, potentially more than one for multiple-choice questions.
questionId String Unique identifier for each question.
CasePost.subCategories[]: Specifies a set of Subcategory elements initially assigned to the support ticket.
displayName String Interface display text that corresponds to the subCategoryType.
subCategoryType String The subcategory topic to assign to a new support ticket.
subCategoryValue String The subcategory topic to assign to a new support ticket.
CasePost.userDetail: Encapsulates data about the user on whose behalf the support ticket was created, which does not necessarily match who provisioned the API token.
userCompany String Identifies the company on whose behalf the support request is created.
userEmail String The user’s email address.
userName String The user’s full name.
userPhone String The user’s telephone number.

Case

Encapsulates information about an individual support ticket. The object described here reflects a GET on a single support ticket. Collections feature an array of abbreviated Case.ticketInfo objects. For POST objects, see CasePost.

Sample GET response:

{
    "ticketInfo": {
        "caseId": "F-CS-1455428",
        "subject": "testing",
        "description": "testing",
        "status": "Unassigned",
        "severity": "3-Low Impact",
        "assignedTo": "In Queue",
        "categoryType": "Technical",
        "createdDate": "2016-02-29T14:15:40+0000",
        "modifiedDate": "2016-03-09T08:57:13+0000",
        "customer": "netflix",
        "externalSystemNumber": "AD-1432",
        "geoLinkId": "1-HGAJ",
        "partnerTicketNumber": "ADYH-1272",
        "endCustomerName": "a-netflix",
        "nextStepExternal": "NA",
        "customerTrackingNumber": "AFYGJA-125412",
        "submittedBy": "Rupernita Sahoo",
        "subCategories": [
            {
                "displayName": "Product",
                "subCategoryType": "product",
                "subCategoryValue": "Download Delivery"
            },
            {
                "displayName": "Problem",
                "subCategoryType": "problem",
                "subCategoryValue": "Certificates"
            }
        ]
    },
    "permissions": {
        "requestClose": true,
        "uploadFile": true,
        "addNote": true
    },
    "userDetail": {
        "userCompany": "Akamai Technologies - Assets",
        "userEmail": "rsahoo@nomail-akamai.com",
        "userPhone": "617.475.5661",
        "userName": "Rupernita Sahoo"
    },
    "solution": {
        "solutionSubject": "testing",
        "investigation": "Entry is missing",
        "resolution": "Provide the access"
    },
    "caseMilestones": [
        {
            "caseMilestoneId": "created",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "assigned",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "initialResponse",
            "caseMilestoneDate": "2016-03-09T08:57:12+0000"
        },
        {
            "caseMilestoneId": "inProgress",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "pending",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        },
        {
            "caseMilestoneId": "closed",
            "caseMilestoneDate": "2016-02-29T14:15:48+0000"
        }
    ],
    "activities": [
        {
            "activitySubject": "Web Update",
            "activityDescription": "On Jay request",
            "activityType": "webUpdate",
            "activityCreatedDate": "2016-03-09T08:57:11+0000",
            "fileName": "screen.jpg",
            "activityCreatedBy": "Luna Case Mgmt",
            "links": []
        },
        {
            "activitySubject": "AddFile",
            "activityDescription": "AddFile",
            "activityType": "attachment",
            "activityCreatedDate": "2016-03-09T08:57:11+0000",
            "fileName": "file.txt",
            "activityCreatedBy": "Luna Case Mgmt",
            "links": [
                {
                    "href": "/case-management/v2/cases/F-CS-1413014/files/123456",
                    "rel": "file"
                }
            ]
        }
    ]
}

Case members

Member Type Required Description
activities Case.activities[] A chronological list of user-initiated actions after a support ticket is created, such as adding comments or uploading files.
caseMilestones Case.caseMilestones[] A read-only list of state changes generated as the support ticket progresses.
permissions Case.permissions Represents types of follow-up activities the support ticket’s submitter is allowed.
solution Case.solution Read-only Akamai-supplied details about how a support ticket is resolved.
ticketInfo Case.ticketInfo Encapsulates high-level data about the support ticket, including information that appears within Case listings, and information initially supplied when creating the ticket.
userDetail Case.userDetail Encapsulates data about the user on whose behalf the support ticket was created, not necessarily the same as the submittedBy user who created the ticket.
Case.activities[]: Specifies user-initiated actions after a support ticket is created, such as adding comments or uploading files.
activityCreatedDate String An ISO 8601-formatted timestamp for when the follow-up activity occurred.
activityDescription String An extended description, which corresponds to update requests’ comment member.
activitySubject String Specifies a subject line that serves as a title.
activityType Enumeration Characterizes the activity, either email, attachment, or webUpdate.
activityCreatedBy String The name of the user following up on the support ticket.
fileName String If the activity is a file upload, this specifies the filename.
links Hypermedia If the activity is a file upload, locates the URI path to download it.
Case.caseMilestones[]: A read-only list of state changes generated as the support ticket progresses.
caseMilestoneId Enumeration A status message generated during a support ticket’s lifetime, either created, pending, initialResponse, assigned, inProgress, or closed. Each state may only occur once over the lifetime of the ticket. Note that these values do not match the ticket’s set of potential status values.
caseMilestoneDate String An ISO 8601-formatted timestamp identifying when the state change occurred.
Case.permissions: Represents types of follow-up activities the support ticket’s submitter is allowed.
addNote Boolean Whether the user can append notes to the ticket.
requestClose Boolean Whether the user can request that the ticket be closed.
uploadFile Boolean Whether the user can upload file attachments as part of the support ticket.
Case.solution: Read-only Akamai-supplied details about how a support ticket is resolved.
investigation String Identifies the nature of the problem.
resolution String Characterizes the solution to the problem.
solutionSubject String Provides a subject line that serves as a title.
Case.ticketInfo: Encapsulates high-level data about the support ticket, including information that appears within Case listings, and information initially supplied when creating the ticket.
assignedTo String The group within Akamai assigned to the support ticket. The value may be In Queue prior to assignment.
caseId String Unique identifier for each support ticket.
categoryType Enumeration The ticket’s relevant top-level category, either Billing, Business, Professional-Services, Security, or Technical.
createdDate String The ISO 8601-formatted time when the case was first created.
customerTrackingNumber String If a reseller creates a case on behalf of a third party, this allows the reseller its own way to uniquely identify the case ticket.
customer String If a reseller creates a case for a third party, this specifies the company name for the account.
description String An extended description of the problem.
endCustomerName String If a reseller creates a case for a third party, this identifies the name of the end user for whom the ticket is being tracked.
externalSystemNumber String Value provided by the user in limited cases when creating a new support ticket.
geoLinkId String Generated value in limited cases for new support tickets.
modifiedDate String The ISO 8601-formatted time when the case was last modified. This encompasses any change to the overall object, not merely within the scope of the Case.ticketInfo sub-object in which the member appears.
nextStepExternal String Indicates the next steps the case’s assignee are to take.
partnerTicketNumber String Value provided by the user in limited cases when creating a new support ticket.
severity String Specifies the level of severity based on data available in CaseAttributes.
status String The current status of the support ticket. Note that these values do not match the set of potential caseMilestoneId values.
subCategories Case.ticketInfo.subCategories[] Specifies a set of Subcategory elements initially assigned to the support ticket.
subject String Specifies a subject line that serves as a title for the support ticket.
submittedBy String The name of the user associated with the API token accessing the case ticket, not necessarily the same as the userName on whose behalf the ticket is filed.
Case.ticketInfo.subCategories[]: Specifies a set of subcategories initially assigned to the support ticket.
displayName String Interface display text that corresponds to the subCategoryType.
subCategoryType String The subcategory topic to assign to a new support ticket.
subCategoryValue String The subcategory topic to assign to a new support ticket.
Case.userDetail: Encapsulates data about the user on whose behalf the support ticket was created, not necessarily the same as the submittedBy user who created the ticket.
userCompany String Identifies the company on whose behalf the support request is created.
userEmail String The user’s email address.
userName String The user’s full name.
userPhone String The user’s telephone number.

Response

Common response object when adding a note or file upload, or when closing a case.

Sample POST response:

{
    "caseId": "F-CS-1203600",
    "statusMessage": "Ticket has been successfully updated with notes",
    "links": [
        {
            "href": "/case-management/v2/cases/F-CS-1203600",
            "rel": "parent"
        }
    ]
}

Response members

Member Type Required Description
caseId String Unique identifier for the support ticket.
links Hypermedia Locates the resource for the caseId.
statusMessage String A status message for the request.

Errors

This section provides details on the data object that reflects 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

The following shows a typical error response. The outer object characterizes the overall problem, while the details array lists potentially more than one problem detected in the request.

{
    "code": "bad.request",
    "details": [
        {
            "code": "bad.request.error",
            "message": "CaseId provided is incorrect"
        }
    ],
    "incidentId": "0c296a9e-b063-44d1-a6c0-35228becc4ab",
    "title": "Bad Request"
}

Error members

Member Type Description
Required
code String Identifies a type of error that characterizes the overall problem.
details Error.details Provides details on potentially more than one error detected in the request.
incidentId String Provides a unique identifier for the problem, useful when communicating with Akamai support.
title String A descriptive label for the overall problem.

Error.details[]  

Member Type Description
Required
code String Identifies a type of error that characterizes each specific problem.
message String Describes each specific problem.

HTTP status codes

The following lists the range of HTTP response codes the API may produce for both success and error cases:

Code Description
200 Request OK
201 Resource created
401 Unauthorized request
402 Failed request
403 Forbidden
404 Resource not found
405 Method not allowed
415 Unsupported media type
429 Too many requests
500 Internal Server Error
503 Service Unavailable

Last modified: 12/12/2016