loading

API Endpoint Definition API v2

Wrap Kona Site Defender, Bot Manager Premier, and API Gateway features around an API endpoint.

Learn more:


Overview

The API Endpoint Definition API allows you to programmatically define an API endpoint and its set of component resources. If you’re a Kona Site Defender customer, you can define request body and resource constraints and enforce them separately as whitelists in a Kona Site Defender firewall policy.

Who should use this API

Akamai provides APIs for developers, DevOps, and operations personnel as an alternative to using Akamai Control Center. You may want to automate and instrument the Akamai Kona Site Defender (KSD) and Web Performance products you’re using with APIs. This API provides the same functions available under the Manage API Definitions menu selection of Control Center.

Use this API to automate deployment or configuration of APIs onto the Akamai platform. Register your API endpoints by specifying their hostnames and base paths, identify the set of expected URL resources and operations, and, if you’re a KSD customer, configure security constraints related to the size and shape of the exchanged data objects.

This API also introduces additional API Gateway delivery features that can help you manage your APIs more efficiently, improve interoperability, gain control over API access, help API consumers troubleshoot errors more effectively, and enhance the overall performance of your API traffic. These features include API privacy, JSON web tokens (JWT), cross-origin resource sharing (CORS), caching, GraphQL caching, origin request redirect, GZIP compression, error response customization, and OAuth scopes. They’re available to you if you add API Gateway to your product.

The API privacy feature lets you control access to endpoints and individual resources. To apply API privacy, you need to deploy API keys. Private endpoints and resources that you register in API Gateway require API consumers to identify with appropriate API keys before they can access these endpoints and resources. For more details on API keys and how you can manage them, see the API Keys and Traffic Management.

When you register your API endpoints, you specify obligatory hostnames for publishing your APIs over the Akamai network. If you haven’t created any hostnames in Property Manager yet, you can leverage the Property Manager API to batch-create hostnames dynamically and activate API traffic for these hostnames. Once you activate the hostnames, you can deploy your APIs and configure how they respond to requests.

Note that this API does not modify any KSD firewall policies that protect your API endpoints, but is a prerequisite to apply such security. You may use this API to define your API endpoint in order to configure protections for them. Use this API before your security team applies a Kona Site Defender firewall policy to your API endpoints.

API concepts

This section describes the conceptual objects you deal with when interacting with this API, and provides pointers to where you can learn more.

  • Endpoint. The use of the term endpoint in this documentation refers to an API service. This API refers to responsive URL patterns as resources. For most Akamai APIs, responsive URL patterns are commonly referred to as endpoints, not as resources. Within this API, an endpoint refers to a logical collection of resources.

  • Resource. A URL pattern that responds to HTTP method calls for each API operation. See the Resource object.

  • Version. The API version that you set up to make your endpoint, resource, and delivery configurations effective. You can activate an API version in the Akamai staging or production environment.

  • Delivery settings These settings let you configure API privacy, JWT validation, CORS, caching, GraphQL caching, origin request redirect, GZIP compression, error response customization, and OAuth scopes. Enabling these features can help you manage your APIs more efficiently, improve interoperability, provide useful guidelines to API consumers in case of errors, define the level of access to your APIs for external client apps, and enhance the overall performance of your API traffic.

  • Category. You can assign any number of overlapping categories to each endpoint. See the Category object.

  • Contract. You provision API endpoint services under an Akamai contract, and also assign a Control Center group. The AcgPair object encapsulates this pairing of information.

Get started

To configure this API for the first time:

  • Review Get Started with APIs for details on how to set up client tokens to access any Akamai API. These tokens appear as custom hostnames that look like this: https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net.

  • To enable this API, choose the API service named API Definition, and set the access level to READ-WRITE.

  • For the delivery features to be available, add the API Gateway behavior to the property configured for your Web Performance Solutions or KSD product and enable the API Gateway feature. For details, see Add API Gateway to your product.

  • Ensure that you have the correct user roles assigned to your account in Control Center: WAF Config or WAF Admin for endpoints, resources, versions, and security features management; API Gateway Administrator for API Gateway delivery features; Bot Manager Config or Bot Manager Feature for resource purpose settings.

Reporting

Once you deliver your APIs over the Akamai network and enable various delivery features for your configuration, you can track and analyze data related to your API traffic. The Reporting API provides a set of reports specifically for API Gateway and allows you to get data in a range of intervals. The currently available API Gateway reports can help you learn about the usage of your endpoints, including details such as returned HTTP response codes, methods called on the endpoints, API keys used for request senders’ identification, and JWT denial reasons.

Versioning

This document distinguishes between three versioning concepts that you should consider independent of each other.

  1. This most recent API v2 supersedes API Endpoints API v1. Akamai supports v1 indefinitely, but the migration to this new version provides numerous benefits. It introduces internal version management for APIs configured with Akamai features, and it allows you to use the new API Gateway delivery settings.

  2. This API allows you to register different major versions of your own APIs that you make available to your API consumers. These are versions in the REST API versioning sense, based on your APIs’ life cycle. By using this API, you can specify the version location and the expected version value in an incoming request. Based on these details, edge servers route the incoming request to the API URLs (hostname + base path) that you associated with the API version indicated in the request.

  3. Finally, this API’s “version”-related operations allow you to internally maintain different minor versions of your registered API configurations, which lets you easily tweak the API Gateway features and tailor your API traffic as needed.

Concurrency control

If more than one Endpoints API client accesses the same data at the same time, a simple locking mechanism prevents them from overwriting each other’s data. When you GET an object such as an endpoint, resource, or category, the object features a lockVersion integer member that identifies the most recent modification. When you modify and PUT back the object, the request fails if the lockVersion no longer matches that of the stored version of the object, which updates when someone else modifies the data. In that case, repeat the process of reading, modifying, and writing the object back.

Resources

This section describes the API’s workflow and provides details on how to interact with each operation.

NOTE: In this table and for most Akamai APIs, responsive URL patterns are commonly referred to as endpoints, not as resources as in this API. Within this API, an endpoint refers to a logical collection of resources.

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
API endpoints  
List endpoints GET /api-definitions/v2/endpoints{?page,pageSize,category,contains,sortBy,sortOrder,versionPreference,show,contractId,groupId}
Register an endpoint POST /api-definitions/v2/endpoints
Clone an endpoint POST /api-definitions/v2/endpoints/cloneEndpoint
Register an endpoint from an API definition file POST /api-definitions/v2/endpoints/files
List user entitlements GET /api-definitions/v2/endpoints/user-entitlements
Verify secure connection POST /api-definitions/v2/endpoints/verify-secure-connection
Delete an endpoint DELETE /api-definitions/v2/endpoints/{apiEndPointId}
Hide an endpoint POST /api-definitions/v2/endpoints/{apiEndPointId}/hide
Show an endpoint POST /api-definitions/v2/endpoints/{apiEndPointId}/show
List versions GET /api-definitions/v2/endpoints/{apiEndPointId}/versions
Get a version summary GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}
Edit a version PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}
Delete a version DELETE /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}
Hide a version POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/hide
Show a version POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/show
Edit an endpoint from an API definition file POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/file
Get a version GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources-detail
Clone a version POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/cloneVersion
Activate a version POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/activate
Deactivate a version POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/deactivate
List resources GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources
Create a resource POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources
Get a resource GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}
Edit a resource PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}
Delete a resource DELETE /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}
API delivery settings  
Get API privacy settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy
Edit API privacy settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy
Get JWT settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt
Edit JWT settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt
Get CORS settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors
Edit CORS settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors
Get cache settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache
Edit cache settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache
Get GraphQL cache settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql
Edit GraphQL cache settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql
Get routing settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing
Edit routing settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing
Get GZIP settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip
Edit GZIP settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip
Get error response settings GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses
Edit error response settings PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses
Get an error response GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}
Edit an error response PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}
Get OAuth scopes assignments GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth
Edit OAuth scopes assignments PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth
OAuth scopes  
List OAuth scopes GET /api-definitions/v2/oauth-scopes
Create an OAuth scope POST /api-definitions/v2/oauth-scopes
Edit an OAuth scope PUT /api-definitions/v2/oauth-scopes{?name}
Delete an OAuth scope DELETE /api-definitions/v2/oauth-scopes{?name}
Categories  
List categories GET /api-definitions/v2/categories{?withUsageInfo}
Create a category POST /api-definitions/v2/categories
Get a category GET /api-definitions/v2/categories/{apiCategoryId}
Edit a category PUT /api-definitions/v2/categories/{apiCategoryId}
Delete a category DELETE /api-definitions/v2/categories/{apiCategoryId}
Contracts and groups  
List contracts and groups GET /api-definitions/v2/contracts/groups
List hostnames GET /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hosts
List hostnames with access control groups GET /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hostsAcgs

List endpoints

Lists the available API endpoints, with results optionally paginated, sorted, and filtered. If no endpoints are available, the operation responds with an empty array.

GET /api-definitions/v2/endpoints{?page,pageSize,category,contains,sortBy,sortOrder,versionPreference,show,contractId,groupId}

Sample: /api-definitions/v2/endpoints?page=5&pageSize=50&category=Site%20Delivery&contains=cloud%20security&sortBy=updateDate&sortOrder=asc&versionPreference=ACTIVATED_FIRST&show=ONLY_VISIBLE&contractId=1-xc789&groupId=67890

Parameter Type Sample Description
Optional query parameters
category String Site Delivery Filters endpoints by the specified apiCategoryName, including the __UNCATEGORIZED__ keyword.
contains String cloud security The search query substring criteria matching the endpoint’s name, description, basePath, apiCategoryName, and resourcePath.
contractId String 1-xc789 Filters endpoints to a specific contract. You need to specify this along with a groupId.
groupId Integer 67890 Filters endpoints to a specific group. You need to specify this along with a contractId.
page Integer 5 The page number index, starting at the default value of 1.
pageSize Integer 50 The number of endpoints on each page of results, 25 by default.
show Enumeration ONLY_VISIBLE The type of endpoints to return based on their visibility status. By default the API returns ALL endpoints. You can instead decide to return ONLY_VISIBLE endpoints, or ONLY_HIDDEN endpoints. Run the Show an endpoint and Hide an endpoint operations to control which endpoints are listed.
sortBy Enumeration updateDate The field to sort endpoints by, either the API name (corresponding to the apiEndPointName member) or updateDate.
sortOrder Enumeration asc The sort order, either desc for descending or the default asc for ascending.
versionPreference Enumeration ACTIVATED_FIRST The preference for selecting the endpoint version to return. By default the API returns the LAST_UPDATED version. If you set the preference to ACTIVATED_FIRST, the API first attempts to return the version currently active on the production network. If such version doesn’t exist, the API attempts to return the version currently active on the staging network. If both of these checks fail, the API returns the last updated version.

Status 200 application/json

Object type: EndpointList

Download schema: apiEndpointListDto-schema.json

Response body:

{
    "totalSize": 15,
    "page": 8,
    "pageSize": 1,
    "apiEndPoints": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiEndPointId": 574127,
            "apiEndPointName": "Bookstore API Premium",
            "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
            "basePath": "/bookstore-premium",
            "apiEndPointScheme": "http/https",
            "consumeType": "any",
            "contractId": "3-13H55B5",
            "groupId": 44681,
            "versionNumber": 2,
            "versionHidden": true,
            "clonedFromVersion": 1,
            "apiEndPointLocked": false,
            "endpointHidden": true,
            "protectedByApiKey": true,
            "availableActions": [
                "CLONE",
                "SHOW_ENDPOINT",
                "COMPARE_ENDPOINT",
                "ACTIVATE_ON_STAGING",
                "ACTIVATE_ON_PRODUCTION"
            ],
            "apiEndPointHosts": [
                "bookstore.api.akamai.com"
            ],
            "apiCategoryIds": [],
            "apiResourceBaseInfo": [
                {
                    "createdBy": "bookstore_admin",
                    "createDate": "2019-06-12T13:06:52+0000",
                    "updateDate": "2019-06-12T13:06:52+0000",
                    "updatedBy": "bookstore_admin",
                    "apiResourceId": 2926712,
                    "apiResourceName": "/books/{bookId}",
                    "resourcePath": "/books/{bookId}",
                    "description": "A book item within the bookstore API.",
                    "link": null,
                    "apiResourceClonedFromId": null,
                    "apiResourceLogicId": 118435,
                    "private": false,
                    "lockVersion": 0
                }
            ],
            "stagingVersion": {
                "versionNumber": null,
                "status": null
            },
            "productionVersion": {
                "versionNumber": null,
                "status": null
            }
        }
    ],
    "links": [
        {
            "rel": "self",
            "href": "/api-definitions/v2/endpoints?pageSize=2&page=8"
        },
        {
            "rel": "next",
            "href": "/api-definitions/v2/endpoints?pageSize=2&page=9"
        },
        {
            "rel": "previous",
            "href": "/api-definitions/v2/endpoints?pageSize=2&page=7"
        }
    ]
}
  1. Optionally set the contractId and groupId query parameters to filter results provisioned under a specific pairing of contract and group.

  2. Optionally filter results to a specific category, or set contains to search on text.

  3. If you want to affect how output sorts, set the sortBy query parameter to either name or updateDate, or set sortOrder to asc or desc.

  4. If you want to modify pagination, set the pageSize query parameter for the number of records per page, and the overall page number.

  5. If you want to change the default version preference and return the last activated version for each endpoint, set the versionPreference value to ACTIVATED_FIRST.

  6. Make a GET request to /api-definitions/v2/endpoints{?page,pageSize,category,contains,sortBy,sortOrder,versionPreference,contractId,groupId}.

The response’s apiEndPoints array features Endpoint objects from which you typically extract an apiEndPointId to access specific endpoints.

Register an endpoint

Creates the first version of an API endpoint configuration. You can specify the new endpoint’s full set of resources. Alternatively, you can create them later either by modifying the Endpoint object, or separately with the Create a resource operation. The endpoint’s name needs to be unique within an account.

POST /api-definitions/v2/endpoints

Content-Type: application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Request body:

{
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "apiEndPointScheme": "http/https",
    "consumeType": "any",
    "groupId": 44681,
    "contractId": "3-13H55B5",
    "isGraphQL": false,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "akamaiSecurityRestrictions": {
        "MAX_JSONXML_ELEMENT": 1032,
        "MAX_ELEMENT_NAME_LENGTH": 256,
        "MAX_DOC_DEPTH": 64,
        "POSITIVE_SECURITY_ENABLED": 1,
        "MAX_STRING_LENGTH": 8192,
        "MAX_BODY_SIZE": 61056,
        "MAX_INTEGER_VALUE": 9999
    },
    "apiResources": [
        {
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "apiResourceMethods": [
                {
                    "apiResourceMethod": "GET",
                    "apiParameters": [
                        {
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "apiParameterNotes": null,
                            "array": false,
                            "apiParameterRestriction": null
                        }
                    ]
                },
                {
                    "apiResourceMethod": "POST",
                    "apiParameters": [
                        {
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "apiParameterNotes": null,
                            "array": false,
                            "apiParameterRestriction": {
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Status 201 application/json

Headers:

Location: /api-definitions/v2/endpoints/123/versions/1

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": null,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 0,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 0,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have the contractId and groupId members, run the List contracts and groups operation.

  2. Select the appropriate pairing of contract and group under which you want to provision the new endpoint. Store the contractId and groupId values.

  3. If you want to tag the new endpoint with optional categories, run the List categories operation and store the appropriate apiCategoryId values from the array of Category objects.

  4. Build an Endpoint object, specifying the contractId and groupId members, the apiEndPointHosts member, and a unique apiEndPointName.

  5. POST the object to /api-definitions/v2/endpoints.

The response reflects back the complete Endpoint object, from which you can store the apiEndPointId value. You can access the newly created endpoint at the URL specified in the Location response header.

Clone an endpoint

Creates an endpoint as a clone from the specified source endpoint ID and version.

POST /api-definitions/v2/endpoints/cloneEndpoint

Content-Type: application/json

Object type: Endpoint

Download schema: apiEndpointCloneDto-schema.json

Request body:

{
    "versionNumber": 1,
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API Premium",
    "basePath": "/bookstore-premium",
    "contractId": "3-13H55B5",
    "groupId": 44680,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ]
}

Status 200 application/json

Headers:

Location: /api-definitions/v2/endpoints/123/versions/2

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API Premium",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore-premium",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 2,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. If you don’t already have the contractId and groupId members, run the List contracts and groups operation.

  6. Select the appropriate pairing of contract and group under which you want to provision the new endpoint. Store the contractId and groupId values.

  7. Build an Endpoint object, specifying the contractId and groupId members, the apiEndpointId of the source endpoint, the versionNumber of the version you want to clone, the basePath, apiEndPointHosts, and a unique apiEndPointName for the new endpoint.

  8. POST the object to /api-definitions/v2/endpoints.

The response reflects back the complete Endpoint object, from which you can store the apiEndPointId value. You can access the newly created endpoint at the URL specified in the Location response header.

Register an endpoint from an API definition file

Imports an API definition file and creates a new endpoint based on the file contents. You can run this operation in two ways. To POST JSON data, see Make a JSON request to register an endpoint from an API definition file. To make a form request using these parameters, see Make a form request to register an endpoint from an API definition file.

POST /api-definitions/v2/endpoints/files

Content-Type: application/json

Object type: ImportFile

Download schema: importFileDto-schema.json

Request body:

{
    "importFileFormat": "swagger",
    "importFileSource": "BODY_BASE64",
    "importFileContent": "ewogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAidGl0bGUiOiAiQm9va3N0b3JlIEFQSSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gQVBJIGZvciBib29rc3RvcmUgdXNlcnMgYWxsb3dpbmcgdGhlbSB0byByZXRyaWV2ZSBib29rIGl0ZW1zLCBhZGQgbmV3IGl0ZW1zIChhZG1pbiB1c2VycyksIGFuZCBtb2RpZnkgZXhpc3RpbmcgaXRlbXMuIgogIH0sCiAgImhvc3QiOiAiYm9va3N0b3JlLmFwaS5ha2FtYWkuY29tIiwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzZWN1cml0eURlZmluaXRpb25zIjogewogICAgImFwaV9rZXkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogImFwaUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9CiAgfSwKICAiYmFzZVBhdGgiOiAiL2Jvb2tzdG9yZSIsCiAgInBhdGhzIjogewogICAgIi9ib29rcyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdHMgYWxsIGJvb2sgaXRlbXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0Qm9va3MiLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCb29rIHJlc3BvbnNlLiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgYm9vayBpdGVtIGluIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAicG9zdEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiYm9vayIsCiAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBib29rIHRvIGFkZCB0byB0aGUgYm9va3N0b3JlLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9uZXdCb29rIgogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayByZXNwb25zZS4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9ib29rIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9ib29rcy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgYm9vayBpdGVtLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3BlY2lmaWMgSUQgb2YgYSBib29rIGl0ZW0gdG8gcmV0dXJuLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICB9XSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJvb2sgcmVzcG9uc2UuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlcyBhIGJvb2sgaXRlbSBmcm9tIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQm9vayIsCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicGFyYW1ldGVycyI6IFt7CiAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBzcGVjaWZpYyBJRCBvZiBhIGJvb2sgaXRlbSB0byBkZWxldGUuIiwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayBkZWxldGVkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==",
    "contractId": "3-13H55B5",
    "groupId": 44681
}

POST /api-definitions/v2/endpoints/files

Content-Type: multipart/form-data

See Parameters for details on upload content.

Parameter Type Sample Description
Form parameters
importFileFormat Enumeration raml The format of the API definition file, either raml (0.8) or swagger (2.0 or 3.0).
importFile File %RAML 0.8... The complete file to import.
importUrl String https://example.com/descriptor.raml The URL from which to get the API definition file.
root String api_descriptor.raml If the import file is a ZIP archive, this identifies the API definition’s filename within the archive.
contractId String 3-1Cgoa The unique identifier for the contract under which to provision the endpoint.
groupId String 67890 The unique identifier for the group under which to provision the endpoint.

Status 201 application/json

Headers:

Location: /api-definitions/v2/endpoints/123/versions/1

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Make a JSON request to register an endpoint from an API definition file

This section shows you how to create an endpoint from an API definition file by submitting an application/json request. If instead you’d like to submit a multipart/form-data request to create an endpoint, see Make a form request to register an endpoint from an API definition file.

  1. If you don’t already have the obligatory contractId and groupId members, run the List contracts and groups operation.

  2. Select the appropriate pairing of contract and group under which you want to provision the new endpoint. Store the contractId and groupId values.

  3. Build an ImportFile object, specifying the contractId and groupId members, the importFileFormat, and the importFileSource. Depending on the importFileSource, specify either the importFileContent or importUrl.

  4. POST the object to /api-definitions/v2/endpoints/files.

The response Endpoint object reflects the newly created endpoint based on your API definition file. You can access the newly created endpoint at the URL specified in the Location response header.

Make a form request to register an endpoint from an API definition file

This section shows you how to create an endpoint from an API definition file by submitting a multipart/form-data request (see RFC 2388 for details). If instead you’d like to submit an application/json request to create an endpoint, see Make a JSON request to register an endpoint from an API definition file.

  1. If you don’t already have the obligatory contractId and groupId members, run the List contracts and groups operation.

  2. Select the appropriate pairing of contract and group under which you want to provision the new endpoint. Store the contractId and groupId values.

  3. Prepare an API definition file and set the importFileFormat to raml or swagger.

  4. Assign the filename as the importFile.

  5. Optionally embed the API definition within a ZIP archive, in which case reset the definition filename as root and the name of the archive as importFile.

  6. Optionally make the definition or archive file available on the web at an importUrl.

  7. Prepare a multipart/form-data request specifying the fields listed in Parameters. Specify either an importFile or importUrl, and make sure to specify the root if you’re uploading a ZIP archive.

  8. Make a form data POST request to /api-definitions/v2/endpoints/files.

The response Endpoint object reflects the newly created endpoint based on your API definition file. You can access the newly created endpoint at the URL specified in the Location response header.

List user entitlements

Lists user entitlements based on your assigned permissions. It helps you determine if your user identity associated with the API client can run various other operations to modify data. See Get started for details on setting up the API client with the appropriate level of access. This operation’s array values include API_READ for read-only access, API_WRITE for modifying the existing endpoint versions, API_VERSIONING for version management, API_FEATURES for access to Kona Site Defender security features, AAG_FEATURES for access to delivery features, and API_PURPOSE for access to resource purpose settings. Note that the API_FEATURES permission is only available for Kona Site Defender customers, and the API_PURPOSE permission is for Bot Manager customers.

GET /api-definitions/v2/endpoints/user-entitlements

Status 200 application/json

Download schema: userEntitlementsDto-schema.json

Response body:

[
    "API_READ",
    "API_WRITE",
    "API_VERSIONING",
    "API_FEATURES"
]

Verify secure connection

Verifies that provided hostnames are signed with a provided certificate chain. This ensures that edge servers can connect to the hostnames securely. The response is a map of hostnames to connection status values. For the list of available connection status values and their descriptions, see Connection status values. You can use the response information when setting up JWKS in the Edit JWT settings operation.

POST /api-definitions/v2/endpoints/verify-secure-connection

Content-Type: application/json

Download schema: verifySecureConnectionDto-schema.json

Request body:

{
    "hosts": [
        "bookstore.api.akamai.com",
        "bookstore2.api.akamai.com:8443",
        "bookstore-premium.api.akamai.com"
    ],
    "certChain": {
        "name": "bookstore_cert.pem",
        "content": "-----BEGIN CERTIFICATE-----\nMIIFsDCCA5igAwIBAgIJAL7HIonYis0aMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNV\nBAYTAlVTMREwDwYDVQQIDAhyYXBpZHppazERMA8GA1UEBwwIcmFwaWR6aWsxETAP\nBgNVBAoMCHJhcGlkemlrMREwDwYDVQQLDAhyYXBpZHppazESMBAGA1UEAwwJbG9j\nYWxob3N0MB4XDTE5MDYxMTE0MzI0NloXDTI0MDYwOTE0MzI0NlowbTELMAkGA1UE\nBhMCVVMxETAPBgNVBAgMCHJhcGlkemlrMREwDwYDVQQHDAhyYXBpZHppazERMA8G\nA1UECgwIcmFwaWR6aWsxETAPBgNVBAsMCHJhcGlkemlrMRIwEAYDVQQDDAlsb2Nh\nbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCua7kn9yrkpMMH\nT18yzPFK9LBPk4GzMX0BZfEi2jzKKoc00BtoU/zeS9ewj+2IdIoHa19GE7qnnMux\nkbwm6GNkFt4rzJsQ5ruMSKEqzd4I81HDmS5s2X3o4ZqYWVHAx/rqsh5EIt5qAjq4\njebXeMuhlnkx6jMs+4+ZFfATVvOJ78VnUGUheNTcTGgCvxU7ZZ3+IZubJ6BVdJjC\nwxM30eroVF3efX4HrRXhLtatQtxjX6g2qOUfFiuNNLcgx+4NPqbKpecqyUbopt18\n72MmohKy+YfVEk7OFWLyNPoL237KCznkCGwcQYrXTJzDVAN4NqQEo513nIHEC89F\nX/WomZWwLKVyQpiA1z/jUdYnSzsrPSuA+oP1WmfwVjtxeiwB7Asy/d/5OmOtID+a\nzT41irl1Dp5F6mgAI8CZ1LnzYIlvJAQS9+cpLG9rsyYDRr5+78TebiqP02CrRj9S\nstoam6WG21Z9fJ/aPKJ0ZQHkpXuHDy6RHJro+2wk0coWOyNT0UH6/7kuKHjEGaAG\nBXjElxZ8pJySwYXeeD5gmimQKPE/us1BD2jk0KWYxnwJ+jM4S7RipgTSGsy3Nw42\nvKnKw6FwOIoQqwTkiNF+p7EsjeciO09zLecXxlh3p8WREEZU5NICmGL7xItdD+7I\nVr/tn3XNbuSUu0IqdbhO19JoNXG/UwIDAQABo1MwUTAdBgNVHQ4EFgQUcXwqRZUC\nj9+VsyCfy4oIMN9u1V0wHwYDVR0jBBgwFoAUcXwqRZUCj9+VsyCfy4oIMN9u1V0w\nDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAQgWlrEW+K3fCMO9K\n2TuxY6ruXbdekRv+nw+weXe9+GLlyvEFxktYTE/cN8pHrKOG6F/ea+CCHW4xenVp\npchFI8zPQ8kDEDUUrPaQLbw9kzXKLZwUs+KMZXEZJInxWrr1mWeP+lVSf6f4hwNd\nfvJ8SOPe3/IAE0C79JaclzYE3ErfTlBeouQ09jXbeHc0VvodFp7XcmIMA9e5zIzu\nCU1QOa1LRrn5+TI41BbjKypMl8EE7ZEoyWRj4sMQGfuh9/kmu9ZPINJ79/j22vZG\nVj72jKoIu01qI0esfL7GcE9gd9eWhDRuBYNCAfXWK7xvMwYIxeLgP9LJoeBCVMV+\n7k1AHGpgU4UYveu71VCUIlGIaL1t/DKHi8SqDaKV2eImurPp90eLWAU1V6b+UG5/\n+HoUI8Kd5KgfPprv4AKKOTse04xbFDehvgCpQpcwzoV0h2AQtHhsN65dXfO3XPnR\nYQka7OQcEJS/gLXl7FIcpfkNyvi8ompHVSGTnAEB4qAwazz3FWe6r7qbqty2n0Ye\nNTkylMbBMFpMZrP4BP6YFf3BnkzjFcffHvtVGGUbyebQazc+5HyZycabEhekETeS\nLUOCwFWH68wXI23eU5Z7mKAI+rwhqVuJZPzZFUWfNhj7Pt/aby+7SIZAQ9YCR2lk\n6IUdRIpisR9k478g/4pQYly6yN4=\n-----END CERTIFICATE-----"
    }
}

Status 200 application/json

Download schema: verifySecureConnectionDto-response-schema.json

Response body:

{
    "bookstore.api.akamai.com": {
        "title": "OK",
        "detail": "The hostname is signed with the provided certificate chain and API Gateway can establish a secure connection."
    },
    "bookstore-premium.api.akamai.com": {
        "title": "CN_MISMATCH_ERROR",
        "detail": "The common name in the hostname certificate doesn't correspond to the common name in the hostname. Ensure that both entities refer to the same common name."
    }
}

Connection status values

This section lists all available connection status values that you can find in the Verify secure connection operation’s response.

Status Description
CA_CERTIFICATE_EXPIRED API Gateway is unable to initiate a connection. The certificate chain you uploaded is no longer valid.
CA_CERTIFICATE_NOT_YET_VALID API Gateway is unable to initiate a connection. The certificate chain you uploaded isn’t valid yet.
CERTIFICATE_ALGORITHM_CONSTRAINED API Gateway is unable to establish a secure connection with the hostname. The hostname certificate signature algorithm is obsolete.
CERTIFICATE_INVALID_SIGNATURE API Gateway is unable to establish a secure connection with the hostname. The hostname certificate signature may have been altered because it contains invalid data.
CN_MISMATCH_ERROR API Gateway is unable to establish a secure connection with the hostname. The common name in the hostname certificate doesn’t correspond to the common name in the hostname. Ensure that both entities refer to the same common name.
CONNECT_ERROR Ensure that the provided hostname is accessible. Verify that the connection port is open and that access to that port isn’t blocked by a firewall.
HOST_CERTIFICATE_EXPIRED API Gateway is unable to establish a secure connection with the hostname. The hostname certificate is no longer valid.
HOST_CERTIFICATE_NOT_YET_VALID API Gateway is unable to establish a secure connection with the hostname. The hostname certificate isn’t valid yet.
OK The hostname is signed with the provided certificate chain and API Gateway can establish a secure connection.
SSL_HANDSHAKE_ERROR API Gateway is unable to establish a secure connection with the hostname. Ensure that the hostname is signed with the provided certChain.
UNKNOWN API Gateway is unable to establish a connection with the hostname for an unknown reason.
UNKNOWN_HOST API Gateway is unable to establish a connection with the hostname. Ensure that the provided hostname exists.
UNSUPPORTED_PROTOCOL API Gateway is unable to establish a connection with the hostname. Ensure that the provided hostname supports the https protocol.

Delete an endpoint

Removes an endpoint configuration from API Gateway if none of the endpoint’s versions are active or pending activation on the staging or production network.

DELETE /api-definitions/v2/endpoints/{apiEndPointId}

Sample: /api-definitions/v2/endpoints/12892

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.

Status 204

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Make a DELETE request to /api-definitions/v2/endpoints/{apiEndPointId}.

A 204 response confirms the Endpoint object has been deleted.

Hide an endpoint

Hides an endpoint and all its versions. You can only hide an endpoint with no active versions on the staging or production network. You cannot activate or delete versions of a hidden endpoint. A hidden endpoint appears in the List endpoints operation’s response object by default, or when you set the operation’s show query parameter to ONLY_HIDDEN. Running this operation affects the endpoint listing in the API Definitions user interface.

POST /api-definitions/v2/endpoints/{apiEndPointId}/hide

Sample: /api-definitions/v2/endpoints/12892/hide

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Make a POST request to /api-definitions/v2/endpoints/{apiEndPointId}/hide.

The response reflects back the hidden Endpoint object.

Show an endpoint

Reveals a hidden endpoint and all its versions. A revealed endpoint appears in the List endpoints operation’s response object by default, or when you set the operation’s show query parameter to ONLY_VISIBLE. Running this operation affects the endpoint listing in the API Definitions user interface.

POST /api-definitions/v2/endpoints/{apiEndPointId}/show

Sample: /api-definitions/v2/endpoints/12892/show

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Make a POST request to /api-definitions/v2/endpoints/{apiEndPointId}/show.

The response reflects back the revealed Endpoint object.

List versions

Returns all versions of an endpoint.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions

Sample: /api-definitions/v2/endpoints/12892/versions

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.

Status 200 application/json

Object type: VersionList

Download schema: apiEndpointVersionListDto-schema.json

Response body:

{
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "apiVersions": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-17T07:22:29+0000",
            "updateDate": "2019-06-17T07:23:11+0000",
            "updatedBy": "bookstore_admin",
            "apiEndPointVersionId": 599104,
            "basePath": "/bookstore2",
            "versionNumber": 2,
            "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
            "basedOn": 1,
            "stagingStatus": null,
            "productionStatus": null,
            "stagingDate": null,
            "productionDate": null,
            "isVersionLocked": false,
            "hidden": false,
            "lockVersion": 2,
            "availableActions": [
                "ACTIVATE_ON_PRODUCTION",
                "VIEW_AAG_SETTINGS",
                "COMPARE_RAPID_SETTINGS",
                "EDIT_AAG_SETTINGS",
                "HIDE_VERSION",
                "CLONE_VERSION",
                "EDIT_ENDPOINT_DEFINITION",
                "COMPARE_ENDPOINT",
                "RESOURCES",
                "ACTIVATE_ON_STAGING",
                "DELETE"
            ]
        },
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiEndPointVersionId": 574127,
            "basePath": "/bookstore",
            "versionNumber": 1,
            "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
            "basedOn": null,
            "stagingStatus": null,
            "productionStatus": null,
            "stagingDate": null,
            "productionDate": null,
            "isVersionLocked": false,
            "hidden": false,
            "lockVersion": 0,
            "availableActions": [
                "VIEW_AAG_SETTINGS",
                "EDIT_AAG_SETTINGS",
                "EDIT_ENDPOINT_DEFINITION",
                "DELETE",
                "ACTIVATE_ON_STAGING",
                "COMPARE_RAPID_SETTINGS",
                "ACTIVATE_ON_PRODUCTION",
                "COMPARE_ENDPOINT",
                "CLONE_VERSION",
                "RESOURCES",
                "HIDE_VERSION"
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions

The response’s apiVersions array features all versions of the requested Endpoint.

Get a version summary

Returns a summary for a specific endpoint version. The summary is for purely informational purposes, and the response of this operation shouldn’t be used in the corresponding Edit a version PUT request. For the PUT request, use the response object of Get a version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}

Sample: /api-definitions/v2/endpoints/12892/versions/1

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Download schema: apiVersionSummaryDto-schema.json

Response body:

{
    "apiVersionId": 574127,
    "stagingStatus": "ACTIVE",
    "productionStatus": "ACTIVE",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "source": null,
    "hidden": false,
    "apiResourceNames": [
        "book",
        "user",
        "magazine"
    ],
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [],
    "availableActions": [
        "ACTIVATE_ON_STAGING",
        "VIEW_AAG_SETTINGS",
        "ACTIVATE_ON_PRODUCTION",
        "COMPARE_RAPID_SETTINGS",
        "DELETE",
        "HIDE_VERSION",
        "CLONE_VERSION",
        "EDIT_AAG_SETTINGS",
        "EDIT_ENDPOINT_DEFINITION",
        "RESOURCES",
        "COMPARE_ENDPOINT"
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}.

The response object shows the summary information for the requested endpoint version.

Edit a version

Updates details about an endpoint version that has never been activated on the staging or production network. By modifying the Endpoint object, you can configure the endpoint’s security settings and other top-level metadata, or modify the endpoint’s entire set of resources as an alternative to separate calls to Edit a resource. Note that the corresponding Get a version operation you need to run to GET the data uses a different URL.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}

Sample: /api-definitions/v2/endpoints/12892/versions/1

Content-Type: application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Request body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:55+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": null,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 0,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyName": "apikey",
            "apiKeyLocation": "header"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 0,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": 3,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": 3,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:55+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": null,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 0,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyName": "apikey",
            "apiKeyLocation": "header"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 0,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": 3,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": 3,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get a version operation for the complete representation of the object.

  6. Modify the returned Endpoint object.

  7. PUT the object to this URL: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}.

A 200 response confirms success, and the response object reflects your modifications.

Delete a version

Removes an endpoint version from API Gateway if the version has never been activated on the staging or production network. This is a soft delete operation that preserves the version’s information, such as its number, in the database. Each endpoint version you create has a permanent number that cannot be reused even if you remove a version. A removed endpoint version no longer appears in the List versions operation’s response object.

DELETE /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}

Sample: /api-definitions/v2/endpoints/12892/versions/1

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 204

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a DELETE request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}.

A 204 response confirms the version has been deleted.

Hide a version

Hides an endpoint version. You can only hide inactive or deactivated versions. You cannot activate or delete hidden versions. A hidden endpoint version appears in the List versions operation’s response object with the hidden parameter set to true. Running this operation affects the version listing in the API Definitions user interface.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/hide

Sample: /api-definitions/v2/endpoints/12892/versions/1/hide

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a POST request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/hide.

The response reflects back an Endpoint object with the hidden version indicated in the versionNumber field.

Show a version

Reveals a hidden endpoint version. A revealed endpoint version appears in the List versions operation’s response object with the hidden parameter set to false. Running this operation affects the version listing in the API Definitions user interface.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/show

Sample: /api-definitions/v2/endpoints/12892/versions/1/show

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a POST request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/show.

The response reflects back an Endpoint object with the revealed version indicated in the versionNumber field.

Edit an endpoint from an API definition file

Imports an API definition file with details about an endpoint. Unlike Register an endpoint from an API definition file, this operation doesn’t create a new endpoint, but updates details of an existing endpoint. You can run this operation in two ways. To POST JSON data, see Make a JSON request to edit an endpoint from an API definition file. To make a form request using these parameters, see Make a form request to edit an endpoint from an API definition file. Once you submit the POST request, to finish modifying the endpoint version, you need to take the response data and submit it as a request to the Edit a version operation.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/file

Sample: /api-definitions/v2/endpoints/12892/versions/1/file

Content-Type: application/json

Object type: ImportFile

Download schema: importFileDto-schema.json

Request body:

{
    "importFileFormat": "swagger",
    "importFileSource": "BODY_BASE64",
    "importFileContent": "ewogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAidGl0bGUiOiAiQm9va3N0b3JlIEFQSSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gQVBJIGZvciBib29rc3RvcmUgdXNlcnMgYWxsb3dpbmcgdGhlbSB0byByZXRyaWV2ZSBib29rIGl0ZW1zLCBhZGQgbmV3IGl0ZW1zIChhZG1pbiB1c2VycyksIGFuZCBtb2RpZnkgZXhpc3RpbmcgaXRlbXMuIgogIH0sCiAgImhvc3QiOiAiYm9va3N0b3JlLmFwaS5ha2FtYWkuY29tIiwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzZWN1cml0eURlZmluaXRpb25zIjogewogICAgImFwaV9rZXkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogImFwaUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9CiAgfSwKICAiYmFzZVBhdGgiOiAiL2Jvb2tzdG9yZSIsCiAgInBhdGhzIjogewogICAgIi9ib29rcyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdHMgYWxsIGJvb2sgaXRlbXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0Qm9va3MiLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCb29rIHJlc3BvbnNlLiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgYm9vayBpdGVtIGluIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAicG9zdEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiYm9vayIsCiAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBib29rIHRvIGFkZCB0byB0aGUgYm9va3N0b3JlLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9uZXdCb29rIgogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayByZXNwb25zZS4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9ib29rIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9ib29rcy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgYm9vayBpdGVtLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3BlY2lmaWMgSUQgb2YgYSBib29rIGl0ZW0gdG8gcmV0dXJuLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICB9XSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJvb2sgcmVzcG9uc2UuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlcyBhIGJvb2sgaXRlbSBmcm9tIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQm9vayIsCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicGFyYW1ldGVycyI6IFt7CiAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBzcGVjaWZpYyBJRCBvZiBhIGJvb2sgaXRlbSB0byBkZWxldGUuIiwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayBkZWxldGVkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==",
    "contractId": "3-13H55B5",
    "groupId": 44681
}

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/file

Sample: /api-definitions/v2/endpoints/12892/versions/1/file

Content-Type: multipart/form-data

See Parameters for details on upload content.

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.
Form parameters
importFileFormat Enumeration raml The format of the API definition, either raml (0.8) or swagger (2.0 or 3.0).
importFile File #%RAML 0.8... The complete file to import.
importUrl String https://example.com/descriptor.raml The URL from which to get the API definition file.
root String api_descriptor.raml If the import file is a ZIP archive, this identifies the API definition’s filename within the archive.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Make a JSON request to edit an endpoint from an API definition file

This section shows you how to update an endpoint from an API definition file by submitting an application/json request. If instead you’d like to submit a multipart/form-data request to update an endpoint, see Make a form request to edit an endpoint from an API definition file.

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Build an ImportFile object, specifying the importFileFormat and importFileSource. Depending on the importFileSource, specify either the importFileContent or importUrl.

  6. POST the object to /api-definitions/v2/endpoints/file.

  7. Use the POST response JSON as request data for the Edit a version PUT operation.

A 200 response confirms success, and the response object reflects your modifications.

Make a form request to edit an endpoint from an API definition file

This section shows you how to update an endpoint from an API definition file by submitting a multipart/form-data request (see RFC 2388 for details). If instead you’d like to submit an application/json request to update an endpoint, see Make a JSON request to edit an endpoint from an API definition file.

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Prepare an API definition file and set the importFileFormat to raml or swagger.

  6. Assign the filename as the importFile.

  7. Optionally embed the API definition within a ZIP archive, in which case reset the definition filename as root and the name of the archive as importFile.

  8. Optionally make the definition or archive file available on the web at an importUrl.

  9. Prepare a multipart/form-data request specifying the fields listed in Parameters. Specify either an importFile or importUrl, and make sure to specify the root if you’re uploading a ZIP archive.

  10. Make a form data POST request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/file.

  11. Use the POST response JSON as request data for the Edit a version PUT operation.

A 200 response confirms success, and the response object reflects your modifications.

Get a version

Returns an endpoint version. Use this operation’s Endpoint response object when modifying an endpoint version through Edit a version. Don’t use Get a version summary for the Edit a version operation.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources-detail

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources-detail

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources-detail.

The response is the requested version of the specified Endpoint object.

Clone a version

Creates a new endpoint version as a clone of an existing version. The system assigns a new number to the version that you clone.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/cloneVersion

Sample: /api-definitions/v2/endpoints/12892/versions/1/cloneVersion

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Endpoint

Download schema: apiEndpointWithResourceDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API Premium",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore-premium",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 2,
    "clonedFromVersion": 1,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 2,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 2,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a POST request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/cloneVersion.

The response reflects back the cloned version of the specified Endpoint object.

Activate a version

Activates an endpoint version on the staging or production network. If another version of the endpoint is already active on the specified network, that version automatically deactivates and the newly activated version takes its place. If an active version of another endpoint shares any hostnames with the version you activate, the API automatically deactivates the version with conflicting hostnames, creates a new version of the impacted endpoint, migrates the non-conflicting hostnames and other API details to the new version, and activates the new version.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/activate

Sample: /api-definitions/v2/endpoints/12892/versions/1/activate

Content-Type: application/json

Object type: Activation

Download schema: activationDto-schema.json

Request body:

{
    "notes": "Activating the first version of the Bookstore API on both staging and production networks.",
    "networks": [
        "STAGING",
        "PRODUCTION"
    ],
    "notificationRecipients": [
        "bookstore_shared@akamai.com"
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Build an Activation object, specifying the networks where you activate the version and the email addresses for the notificationRecipients.

  6. POST the object to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/activate.

A 200 response confirms a successful activation.

Deactivate a version

Deactivates an endpoint version on the staging or production network. A deactivated endpoint version no longer serves traffic through the Akamai network.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/deactivate

Sample: /api-definitions/v2/endpoints/12892/versions/1/deactivate

Content-Type: application/json

Object type: Activation

Download schema: activationDto-schema.json

Request body:

{
    "notes": "Activating the first version of the Bookstore API on both staging and production networks.",
    "networks": [
        "STAGING",
        "PRODUCTION"
    ],
    "notificationRecipients": [
        "bookstore_shared@akamai.com"
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Build an Activation object, specifying the networks where you deactivate the version and the email addresses for the notificationRecipients.

  6. POST the object to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/deactivate.

A 200 response confirms a successful deactivation.

List resources

Lists all resources associated with an endpoint version. You can use the apiResourceId of each returned resource to modify resources individually through the Edit a resource operation, or run the Edit a version operation to batch-modify a group of resources.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 200 application/json

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Response body:

[
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-12T13:06:52+0000",
        "updateDate": "2019-06-12T13:06:52+0000",
        "updatedBy": "bookstore_admin",
        "apiResourceId": 2926712,
        "apiResourceName": "book",
        "resourcePath": "/book/{bookId}",
        "description": "A book item within the bookstore API.",
        "link": "/api-definitions/v1/endpoints/574127/resources",
        "apiResourceClonedFromId": null,
        "apiResourceLogicId": 118435,
        "private": false,
        "lockVersion": 0,
        "apiResourceMethodNameLists": [
            "POST",
            "GET"
        ]
    },
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-17T08:17:23+0000",
        "updateDate": "2019-06-17T08:17:23+0000",
        "updatedBy": "bookstore_admin",
        "apiResourceId": 2935128,
        "apiResourceName": "user",
        "resourcePath": "/user/{userId}",
        "description": "A registered bookstore user.",
        "link": "/api-definitions/v1/endpoints/574127/resources",
        "apiResourceClonedFromId": null,
        "apiResourceLogicId": 126224,
        "private": false,
        "lockVersion": 0,
        "apiResourceMethodNameLists": [
            "POST",
            "GET",
            "PUT"
        ]
    },
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-17T08:26:59+0000",
        "updateDate": "2019-06-17T08:26:59+0000",
        "updatedBy": "bookstore_admin",
        "apiResourceId": 2935139,
        "apiResourceName": "magazine",
        "resourcePath": "/magazine/{magazineId}",
        "description": "A magazine item within the bookstore API.",
        "link": "/api-definitions/v1/endpoints/574127/resources",
        "apiResourceClonedFromId": null,
        "apiResourceLogicId": 126269,
        "private": false,
        "lockVersion": 0,
        "apiResourceMethodNameLists": [
            "GET"
        ]
    }
]
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources.

The response is an array of Resource objects.

Create a resource

Creates a resource in an endpoint version. The resource’s full URL (concatenated hostname, basePath, and resourcepath) needs to be unique within the account. You can only create resources for versions that have never been activated on the staging or production network.

POST /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources

Content-Type: application/json

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Request body:

{
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "apiResourceMethods": [
        {
            "apiResourceMethod": "GET",
            "apiParameters": [
                {
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "apiParameterNotes": null,
                    "array": false,
                    "apiParameterRestriction": null
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.

Status 201 application/json

Headers:

Location: /api-definitions/v2/endpoints/123/versions/1/resources/1234

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-17T08:26:59+0000",
    "updateDate": "2019-06-17T08:26:59+0000",
    "updatedBy": "bookstore_admin",
    "apiResourceId": 2935139,
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "link": null,
    "apiResourceClonedFromId": null,
    "apiResourceLogicId": 126269,
    "private": false,
    "lockVersion": 0,
    "apiResourceMethods": [
        {
            "apiResourceMethodId": 365559,
            "apiResourceMethod": "GET",
            "apiResourceMethodLogicId": 205820,
            "apiParameters": [
                {
                    "apiParameterId": 1223250,
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "array": false,
                    "pathParamLocationId": null,
                    "apiParamLogicId": 588309,
                    "apiResourceMethParamId": 500315,
                    "apiParameterRestriction": null,
                    "apiParameterNotes": null,
                    "apiChildParameters": []
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Build a Resource object, specifying a unique apiResourceName and resourcePath.

  6. POST the object to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources.

The response reflects back the complete Resource object, from which you can store the apiResourceId value. You can access the newly created resource at the URL specified in the Location response header.

Get a resource

Returns a resource within an endpoint version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources/7689

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.
apiResourceId Integer 7689 The unique identifier for the resource.

Status 200 application/json

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-17T08:26:59+0000",
    "updateDate": "2019-06-17T08:26:59+0000",
    "updatedBy": "bookstore_admin",
    "apiResourceId": 2935139,
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "link": null,
    "apiResourceClonedFromId": null,
    "apiResourceLogicId": 126269,
    "private": false,
    "lockVersion": 0,
    "apiResourceMethods": [
        {
            "apiResourceMethodId": 365559,
            "apiResourceMethod": "GET",
            "apiResourceMethodLogicId": 205820,
            "apiParameters": [
                {
                    "apiParameterId": 1223250,
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "array": false,
                    "pathParamLocationId": null,
                    "apiParamLogicId": 588309,
                    "apiResourceMethParamId": 500315,
                    "apiParameterRestriction": null,
                    "apiParameterNotes": null,
                    "apiChildParameters": []
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. If you don’t already have an apiResourceId value, run the List resources operation.

  6. Select the appropriate resource from the returned array and store its apiResourceId value.

  7. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}.

The response is a Resource object.

Edit a resource

Updates a resource within an endpoint version. You can edit information about a resource, the methods, and the parameters associated with a resource. You can only modify resources associated with versions that have never been activated on the staging or production network.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources/7689

Content-Type: application/json

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Request body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-17T08:26:59+0000",
    "updateDate": "2019-06-17T08:26:59+0000",
    "updatedBy": "bookstore_admin",
    "apiResourceId": 2935139,
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "link": null,
    "apiResourceClonedFromId": null,
    "apiResourceLogicId": 126269,
    "private": false,
    "lockVersion": 0,
    "apiResourceMethods": [
        {
            "apiResourceMethodId": 365559,
            "apiResourceMethod": "GET",
            "apiResourceMethodLogicId": 205820,
            "apiParameters": [
                {
                    "apiParameterId": 1223250,
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "array": false,
                    "pathParamLocationId": null,
                    "apiParamLogicId": 588309,
                    "apiResourceMethParamId": 500315,
                    "apiParameterRestriction": null,
                    "apiParameterNotes": null,
                    "apiChildParameters": []
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.
apiResourceId Integer 7689 The unique identifier for the resource.

Status 200 application/json

Object type: Resource

Download schema: apiResourceMethParamsDto-schema.json

Response body:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-17T08:26:59+0000",
    "updateDate": "2019-06-17T08:26:59+0000",
    "updatedBy": "bookstore_admin",
    "apiResourceId": 2935139,
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "link": null,
    "apiResourceClonedFromId": null,
    "apiResourceLogicId": 126269,
    "private": false,
    "lockVersion": 0,
    "apiResourceMethods": [
        {
            "apiResourceMethodId": 365559,
            "apiResourceMethod": "GET",
            "apiResourceMethodLogicId": 205820,
            "apiParameters": [
                {
                    "apiParameterId": 1223250,
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "array": false,
                    "pathParamLocationId": null,
                    "apiParamLogicId": 588309,
                    "apiResourceMethParamId": 500315,
                    "apiParameterRestriction": null,
                    "apiParameterNotes": null,
                    "apiChildParameters": []
                }
            ]
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. If you don’t already have an apiResourceId value, run the List resources operation.

  6. Select the appropriate resource from the returned array and store its apiResourceId value.

  7. Run the Get a resource operation for the complete representation of the object.

  8. Modify the returned Resource object.

  9. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}.

A 200 response confirms success, and the response object reflects your modifications.

Delete a resource

Removes a resource from an endpoint version. You can only remove resources associated with versions that have never been activated on the staging or production network.

DELETE /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}

Sample: /api-definitions/v2/endpoints/12892/versions/1/resources/7689

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 12892 The unique identifier for the endpoint.
versionNumber Integer 1 The endpoint version number.
apiResourceId Integer 7689 The unique identifier for the resource.

Status 204

  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. If you don’t already have an apiResourceId value, run the List resources operation.

  6. Select the appropriate resource from the returned array and store its apiResourceId value.

  7. Make a DELETE request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}.

A 204 response confirms the resource has been deleted.

Get API privacy settings

Returns the API privacy settings configured for an endpoint version and its associated resources.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/api-privacy

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: ApiPrivacySettings

Download schema: apiPrivacySettingsDto-schema.json

Response body:

{
    "public": false,
    "resources": {
        "2926712": {
            "public": false,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": {
                "GET": {
                    "public": false,
                    "inheritsFromEndpoint": true
                },
                "POST": {
                    "public": false,
                    "inheritsFromEndpoint": true
                }
            }
        }
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy.

The response is an ApiPrivacySettings object that displays API privacy settings for the requested endpoint version and its associated resources.

Edit API privacy settings

Updates the API privacy settings configured for an endpoint version and its associated resources.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/api-privacy

Content-Type: application/json

Object type: ApiPrivacySettings

Download schema: apiPrivacySettingsDto-schema.json

Request body:

{
    "public": false,
    "resources": {
        "2926712": {
            "public": false,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": {
                "GET": {
                    "public": false,
                    "inheritsFromEndpoint": true
                },
                "POST": {
                    "public": false,
                    "inheritsFromEndpoint": true
                }
            }
        }
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: ApiPrivacySettings

Download schema: apiPrivacySettingsDto-schema.json

Response body:

{
    "public": false,
    "resources": {
        "2926712": {
            "public": false,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": {
                "GET": {
                    "public": false,
                    "inheritsFromEndpoint": true
                },
                "POST": {
                    "public": false,
                    "inheritsFromEndpoint": true
                }
            }
        }
    }
}

If you don’t already have apiEndpointId and versionNumber values:

  1. Run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

To modify endpoint-level API privacy settings:

  1. Run the Get API privacy settings operation for the complete representation of the object.

  2. Modify the returned ApiPrivacySettings object.

  3. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy.

To modify API privacy settings for individual resources:

  1. Run the List resources operation.

  2. Select the appropriate resource from the returned array and store its apiResourceId value.

  3. If the apiResourceId is present in the ApiPrivacySettings object’s resources, modify the ApiPrivacySettings.resources.{apiResourceId} value.

  4. If the apiResourceId is absent from the ApiPrivacySettings object’s resources, create a new ApiPrivacySettings.resources.{apiResourceId} object under that key.

  5. PUT the full object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy.

A 200 response confirms success, and the response object reflects your modifications.

Get JWT settings

Returns the JWT validation settings configured for an endpoint version and its associated resources.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/jwt

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: JwtSettings

Download schema: jwtDto-schema.json

Response body:

{
    "enabled": true,
    "settings": {
        "location": "HEADER",
        "paramName": "Authorization",
        "clockSkew": 10,
        "validation": {
            "rsaPublicKeyB": null,
            "rsaPublicKeyA": {
                "name": "publicKey",
                "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----"
            },
            "claims": [
                {
                    "name": "aud",
                    "validate": false,
                    "required": false,
                    "type": "ARRAY",
                    "value": []
                },
                {
                    "name": "iss",
                    "validate": true,
                    "required": false,
                    "value": "Akamai",
                    "type": "STRING"
                },
                {
                    "name": "sub",
                    "validate": true,
                    "required": false,
                    "value": "^[a-zA-Z0-9_]*$",
                    "type": "REGEX"
                },
                {
                    "name": "exp",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "nbf",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "dept",
                    "validate": true,
                    "required": false,
                    "value": "IT",
                    "type": "STRING"
                },
                {
                    "name": "roles",
                    "validate": true,
                    "required": false,
                    "type": "ARRAY",
                    "value": [
                        "admin",
                        "premium_user",
                        "regular_user"
                    ]
                }
            ]
        }
    },
    "resources": {
        "2926712": {
            "enabled": true,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": [
                "POST",
                "GET"
            ]
        },
        "2935128": {
            "enabled": true,
            "path": "/user/{userId}",
            "inheritsFromEndpoint": true,
            "notes": "A registered bookstore user.",
            "methods": [
                "POST",
                "GET",
                "PUT"
            ]
        },
        "2935139": {
            "enabled": true,
            "path": "/magazine/{magazineId}",
            "inheritsFromEndpoint": true,
            "notes": "A magazine item within the bookstore API.",
            "methods": [
                "GET"
            ]
        }
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt.

The response is a JwtSettings object that displays JWT validation settings for the requested endpoint version and its associated resources.

Edit JWT settings

Updates the JWT validation settings configured for an endpoint version and its associated resources.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/jwt

Content-Type: application/json

Object type: JwtSettings

Download schema: jwtDto-schema.json

Request body:

{
    "enabled": true,
    "settings": {
        "location": "HEADER",
        "paramName": "Authorization",
        "clockSkew": 10,
        "validation": {
            "rsaPublicKeyB": null,
            "rsaPublicKeyA": {
                "name": "publicKey",
                "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----"
            },
            "claims": [
                {
                    "name": "aud",
                    "validate": false,
                    "required": false,
                    "type": "ARRAY",
                    "value": []
                },
                {
                    "name": "iss",
                    "validate": true,
                    "required": false,
                    "value": "Akamai",
                    "type": "STRING"
                },
                {
                    "name": "sub",
                    "validate": true,
                    "required": false,
                    "value": "^[a-zA-Z0-9_]*$",
                    "type": "REGEX"
                },
                {
                    "name": "exp",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "nbf",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "dept",
                    "validate": true,
                    "required": false,
                    "value": "IT",
                    "type": "STRING"
                },
                {
                    "name": "roles",
                    "validate": true,
                    "required": false,
                    "type": "ARRAY",
                    "value": [
                        "admin",
                        "premium_user",
                        "regular_user"
                    ]
                }
            ]
        }
    },
    "resources": {
        "2926712": {
            "enabled": true,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": [
                "POST",
                "GET"
            ]
        },
        "2935128": {
            "enabled": true,
            "path": "/user/{userId}",
            "inheritsFromEndpoint": true,
            "notes": "A registered bookstore user.",
            "methods": [
                "POST",
                "GET",
                "PUT"
            ]
        },
        "2935139": {
            "enabled": true,
            "path": "/magazine/{magazineId}",
            "inheritsFromEndpoint": true,
            "notes": "A magazine item within the bookstore API.",
            "methods": [
                "GET"
            ]
        }
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: JwtSettings

Download schema: jwtDto-schema.json

Response body:

{
    "enabled": true,
    "settings": {
        "location": "HEADER",
        "paramName": "Authorization",
        "clockSkew": 10,
        "validation": {
            "rsaPublicKeyB": null,
            "rsaPublicKeyA": {
                "name": "publicKey",
                "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----"
            },
            "claims": [
                {
                    "name": "aud",
                    "validate": false,
                    "required": false,
                    "type": "ARRAY",
                    "value": []
                },
                {
                    "name": "iss",
                    "validate": true,
                    "required": false,
                    "value": "Akamai",
                    "type": "STRING"
                },
                {
                    "name": "sub",
                    "validate": true,
                    "required": false,
                    "value": "^[a-zA-Z0-9_]*$",
                    "type": "REGEX"
                },
                {
                    "name": "exp",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "nbf",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "dept",
                    "validate": true,
                    "required": false,
                    "value": "IT",
                    "type": "STRING"
                },
                {
                    "name": "roles",
                    "validate": true,
                    "required": false,
                    "type": "ARRAY",
                    "value": [
                        "admin",
                        "premium_user",
                        "regular_user"
                    ]
                }
            ]
        }
    },
    "resources": {
        "2926712": {
            "enabled": true,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": [
                "POST",
                "GET"
            ]
        },
        "2935128": {
            "enabled": true,
            "path": "/user/{userId}",
            "inheritsFromEndpoint": true,
            "notes": "A registered bookstore user.",
            "methods": [
                "POST",
                "GET",
                "PUT"
            ]
        },
        "2935139": {
            "enabled": true,
            "path": "/magazine/{magazineId}",
            "inheritsFromEndpoint": true,
            "notes": "A magazine item within the bookstore API.",
            "methods": [
                "GET"
            ]
        }
    }
}

If you don’t already have apiEndpointId and versionNumber values:

  1. Run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

To modify endpoint-level JWT validation settings:

  1. Run the Get JWT settings operation for the complete representation of the object.

  2. Modify the returned JwtSettings object.

  3. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt.

To modify JWT validation settings for individual resources:

  1. Run the List resources operation.

  2. Select the appropriate resource from the returned array and store its apiResourceId value.

  3. If the apiResourceId is present in the JwtSettings object’s resources, modify the JwtSettings.resources.{apiResourceId} value.

  4. If the apiResourceId is absent from the JwtSettings object’s resources, create a new JwtSettings.resources.{apiResourceId} object under that key.

  5. PUT the full object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt.

A 200 response confirms success, and the response object reflects your modifications.

Get CORS settings

Returns the cross-origin resource sharing (CORS) settings configured for an endpoint version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/cors

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: CorsSettings

Download schema: corsDto-schema.json

Response body:

{
    "enabled": true,
    "allowCredentials": false,
    "preflightMaxAge": 86400,
    "allowedOrigins": [
        "*"
    ],
    "allowedHeaders": [
        "Akamai-Cors-Allowed"
    ],
    "allowedMethods": [
        "GET"
    ],
    "exposedHeaders": [
        "Akamai-Cors-Exposed"
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors.

The response is a CorsSettings object that displays CORS settings for the requested endpoint version.

Edit CORS settings

Updates the cross-origin resource sharing (CORS) settings configured for an endpoint version.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/cors

Content-Type: application/json

Object type: CorsSettings

Download schema: corsDto-schema.json

Request body:

{
    "enabled": true,
    "allowCredentials": false,
    "preflightMaxAge": 86400,
    "allowedOrigins": [
        "*"
    ],
    "allowedHeaders": [
        "Akamai-Cors-Allowed"
    ],
    "allowedMethods": [
        "GET"
    ],
    "exposedHeaders": [
        "Akamai-Cors-Exposed"
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: CorsSettings

Download schema: corsDto-schema.json

Response body:

{
    "enabled": true,
    "allowCredentials": false,
    "preflightMaxAge": 86400,
    "allowedOrigins": [
        "*"
    ],
    "allowedHeaders": [
        "Akamai-Cors-Allowed"
    ],
    "allowedMethods": [
        "GET"
    ],
    "exposedHeaders": [
        "Akamai-Cors-Exposed"
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get CORS settings operation for the complete representation of the object.

  6. Modify the returned CorsSettings object.

  7. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors.

A 200 response confirms success, and the response object reflects your modifications.

Get cache settings

Returns the caching settings configured for an endpoint version and its associated resources.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/cache

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: CacheSettings

Download schema: cacheSettingsDto-schema.json

Response body:

{
    "enabled": true,
    "option": "CACHE",
    "serveStale": true,
    "maxAge": {
        "duration": 100,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "option": "ALLOW_CACHING",
        "lifetime": "SMALLER_VALUE",
        "maxAge": null,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "markAsPrivate": false
    },
    "cacheKey": {
        "customize": true,
        "option": "INCLUDE_ALL_PRESERVE_ORDER",
        "parameters": null,
        "exactMatch": true
    },
    "errorCaching": {
        "enabled": true,
        "preserveStale": true,
        "maxAge": {
            "duration": 80,
            "unit": "SECONDS"
        }
    },
    "resources": {
        "2926712": {
            "path": "/book/{bookId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "POST",
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935128": {
            "path": "/user/{userId}",
            "option": "CACHE",
            "serveStale": false,
            "inheritsFromEndpoint": false,
            "methods": [
                "POST",
                "GET",
                "PUT"
            ],
            "maxAge": {
                "duration": 120,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": false,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935139": {
            "path": "/magazine/{magazineId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        }
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache.

The response is a CacheSettings object that displays caching settings for the requested endpoint version and its associated resources.

Edit cache settings

Updates the caching settings configured for an endpoint version and its associated resources.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/cache

Content-Type: application/json

Object type: CacheSettings

Download schema: cacheSettingsDto-schema.json

Request body:

{
    "enabled": true,
    "option": "CACHE",
    "serveStale": true,
    "maxAge": {
        "duration": 100,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "option": "ALLOW_CACHING",
        "lifetime": "SMALLER_VALUE",
        "maxAge": null,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "markAsPrivate": false
    },
    "cacheKey": {
        "customize": true,
        "option": "INCLUDE_ALL_PRESERVE_ORDER",
        "parameters": null,
        "exactMatch": true
    },
    "errorCaching": {
        "enabled": true,
        "preserveStale": true,
        "maxAge": {
            "duration": 80,
            "unit": "SECONDS"
        }
    },
    "resources": {
        "2926712": {
            "path": "/book/{bookId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "POST",
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935128": {
            "path": "/user/{userId}",
            "option": "CACHE",
            "serveStale": false,
            "inheritsFromEndpoint": false,
            "methods": [
                "POST",
                "GET",
                "PUT"
            ],
            "maxAge": {
                "duration": 120,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": false,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935139": {
            "path": "/magazine/{magazineId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        }
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: CacheSettings

Download schema: cacheSettingsDto-schema.json

Response body:

{
    "enabled": true,
    "option": "CACHE",
    "serveStale": true,
    "maxAge": {
        "duration": 100,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "option": "ALLOW_CACHING",
        "lifetime": "SMALLER_VALUE",
        "maxAge": null,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "markAsPrivate": false
    },
    "cacheKey": {
        "customize": true,
        "option": "INCLUDE_ALL_PRESERVE_ORDER",
        "parameters": null,
        "exactMatch": true
    },
    "errorCaching": {
        "enabled": true,
        "preserveStale": true,
        "maxAge": {
            "duration": 80,
            "unit": "SECONDS"
        }
    },
    "resources": {
        "2926712": {
            "path": "/book/{bookId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "POST",
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935128": {
            "path": "/user/{userId}",
            "option": "CACHE",
            "serveStale": false,
            "inheritsFromEndpoint": false,
            "methods": [
                "POST",
                "GET",
                "PUT"
            ],
            "maxAge": {
                "duration": 120,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": false,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935139": {
            "path": "/magazine/{magazineId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        }
    }
}

If you don’t already have apiEndpointId and versionNumber values:

  1. Run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

To modify endpoint-level cache settings:

  1. Run the Get cache settings operation for the complete representation of the object.

  2. Modify the returned CacheSettings object.

  3. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache.

To modify or add cache settings for individual resources:

  1. Run the List resources operation.

  2. Select the appropriate resource from the returned array and store its apiResourceId value.

  3. If the apiResourceId is present in the CacheSettings object’s resources, modify the CacheSettings.resources.{apiResourceId} value.

  4. If the apiResourceId is absent from the CacheSettings object’s resources, create a new CacheSettings.resources.{apiResourceId} object under that key.

  5. PUT the full object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache.

A 200 response confirms success, and the response object reflects your modifications.

Get GraphQL cache settings

Returns the GraphQL caching settings configured for an endpoint version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/graphql

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: GraphQLCacheSettings

Download schema: graphQLDto-schema.json

Response body:

{
    "detectError": false,
    "nestingLevel": null,
    "queryParamName": "query",
    "maxQuerySize": null,
    "bodyParamName": "query",
    "cacheOrigin": false,
    "cacheResponseOnError": false,
    "enabled": true,
    "maxAge": {
        "duration": 40,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "markAsPrivate": false,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "maxAge": null,
        "lifetime": "SMALLER_VALUE",
        "option": "NOT_ALLOW_CACHING"
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql.

The response is a GraphQLCacheSettings object that displays GraphQL caching settings for the requested endpoint version.

Edit GraphQL cache settings

Updates the GraphQL caching settings configured for an endpoint version.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/graphql

Content-Type: application/json

Object type: GraphQLCacheSettings

Download schema: graphQLDto-schema.json

Request body:

{
    "detectError": false,
    "nestingLevel": null,
    "queryParamName": "query",
    "maxQuerySize": null,
    "bodyParamName": "query",
    "cacheOrigin": false,
    "cacheResponseOnError": false,
    "enabled": true,
    "maxAge": {
        "duration": 40,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "markAsPrivate": false,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "maxAge": null,
        "lifetime": "SMALLER_VALUE",
        "option": "NOT_ALLOW_CACHING"
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: GraphQLCacheSettings

Download schema: graphQLDto-schema.json

Response body:

{
    "detectError": false,
    "nestingLevel": null,
    "queryParamName": "query",
    "maxQuerySize": null,
    "bodyParamName": "query",
    "cacheOrigin": false,
    "cacheResponseOnError": false,
    "enabled": true,
    "maxAge": {
        "duration": 40,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "markAsPrivate": false,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "maxAge": null,
        "lifetime": "SMALLER_VALUE",
        "option": "NOT_ALLOW_CACHING"
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get GraphQL cache settings operation for the complete representation of the object.

  6. Modify the returned GraphQLCacheSettings object.

  7. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql.

A 200 response confirms success, and the response object reflects your modifications.

Get routing settings

Returns the incoming request’s routing, forwarding, and SureRoute settings configured for an endpoint version. You can run this operation if you’re taking part in the API Gateway beta program.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/routing

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: RoutingSettings

Download schema: routing-schema.json

Response body:

{
    "rules": [
        {
            "name": "/test.html",
            "description": null,
            "forwardPath": "DEFAULT_PATH",
            "origin": "rapidzik.hereokuapp.com",
            "customForwardPath": null,
            "forwardPort": null,
            "forwardHostHeader": null,
            "conditions": [
                {
                    "type": "METHOD",
                    "operator": "IS",
                    "value": "GET"
                },
                {
                    "type": "HOSTNAME",
                    "operator": "IS",
                    "value": "*.www.sqa.rapid.com"
                }
            ]
        }
    ],
    "sureRoute": [
        {
            "origin": "rapidzik.hereokuapp.com",
            "testObjectPath": "/test.html",
            "forceSslForward": false,
            "raceKeyMode": "CUSTOM",
            "raceKey": "some-custom-key.com",
            "raceStatTtl": {
                "duration": 30,
                "unit": "MINUTES"
            }
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing.

The response is a RoutingSettings object that displays Routing settings for the requested endpoint version.

Edit routing settings

Updates the incoming request’s routing, forwarding, and SureRoute settings configured for an endpoint version. You can run this operation if you’re taking part in the API Gateway beta program.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/routing

Content-Type: application/json

Object type: RoutingSettings

Download schema: routing-schema.json

Request body:

{
    "rules": [
        {
            "name": "/test.html",
            "description": null,
            "forwardPath": "DEFAULT_PATH",
            "origin": "rapidzik.hereokuapp.com",
            "customForwardPath": null,
            "forwardPort": null,
            "forwardHostHeader": null,
            "conditions": [
                {
                    "type": "METHOD",
                    "operator": "IS",
                    "value": "GET"
                },
                {
                    "type": "HOSTNAME",
                    "operator": "IS",
                    "value": "*.www.sqa.rapid.com"
                }
            ]
        }
    ],
    "sureRoute": [
        {
            "origin": "rapidzik.hereokuapp.com",
            "testObjectPath": "/test.html",
            "forceSslForward": false,
            "raceKeyMode": "CUSTOM",
            "raceKey": "some-custom-key.com",
            "raceStatTtl": {
                "duration": 30,
                "unit": "MINUTES"
            }
        }
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: RoutingSettings

Download schema: routing-schema.json

Response body:

{
    "detectError": false,
    "nestingLevel": null,
    "queryParamName": "query",
    "maxQuerySize": null,
    "bodyParamName": "query",
    "cacheOrigin": false,
    "cacheResponseOnError": false,
    "enabled": true,
    "maxAge": {
        "duration": 40,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "markAsPrivate": false,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "maxAge": null,
        "lifetime": "SMALLER_VALUE",
        "option": "NOT_ALLOW_CACHING"
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get request routing settings operation for the complete representation of the object.

  6. Modify the returned RoutingSettings object.

  7. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing.

A 200 response confirms success, and the response object reflects your modifications.

Get GZIP settings

Returns the GZIP compression settings configured for an endpoint version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/gzip

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: GzipSettings

Download schema: gzipDto-schema.json

Response body:

{
    "compressResponse": "ALWAYS"
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip.

The response is a GzipSettings object that displays GZIP compression settings for the requested endpoint version.

Edit GZIP settings

Updates the GZIP compression settings configured for an endpoint version.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/gzip

Content-Type: application/json

Object type: GzipSettings

Download schema: gzipDto-schema.json

Request body:

{
    "compressResponse": "ALWAYS"
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: GzipSettings

Download schema: gzipDto-schema.json

Response body:

{
    "compressResponse": "ALWAYS"
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get GZIP settings operation for the complete representation of the object.

  6. Modify the returned GzipSettings object.

  7. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip.

A 200 response confirms success, and the response object reflects your modifications.

Get error response settings

Returns the error response settings configured for an endpoint version.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/error-responses

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: ErrorSettings

Download schema: errorResponsesDto-schema.json

Response body:

{
    "API_KEY_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The API key you provided does not exist.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "API_KEY_FORBIDDEN": {
        "overrideDefaults": false,
        "statusCode": 403,
        "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "QUOTA_EXCEEDED": {
        "overrideDefaults": false,
        "statusCode": 429,
        "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_SIGNATURE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_CLAIM_VALUE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses.

The response is a ErrorSettings object that displays error response settings for the requested endpoint version.

Edit error response settings

Updates the error response settings configured for an endpoint version.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/error-responses

Content-Type: application/json

Object type: ErrorSettings

Download schema: errorResponsesDto-schema.json

Request body:

{
    "API_KEY_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The API key you provided does not exist.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "API_KEY_FORBIDDEN": {
        "overrideDefaults": false,
        "statusCode": 403,
        "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "QUOTA_EXCEEDED": {
        "overrideDefaults": false,
        "statusCode": 429,
        "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_SIGNATURE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_CLAIM_VALUE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: ErrorSettings

Download schema: errorResponsesDto-schema.json

Response body:

{
    "API_KEY_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The API key you provided does not exist.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "API_KEY_FORBIDDEN": {
        "overrideDefaults": false,
        "statusCode": 403,
        "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "QUOTA_EXCEEDED": {
        "overrideDefaults": false,
        "statusCode": 429,
        "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_SIGNATURE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_CLAIM_VALUE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get error response settings operation for the complete representation of the object.

  6. Modify the returned ErrorSettings object.

  7. PUT the object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses.

A 200 response confirms success, and the response object reflects your modifications.

Get an error response

Returns a customizable error response of the selected type.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/error-responses/API_KEY_INVALID

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.
type Enumeration API_KEY_INVALID The type of the customizable error response. For possible values, see ErrorSettings.{errorType} values.

Status 200 application/json

Download schema: errorResponseDto-schema.json

Response body:

{
    "overrideDefaults": false,
    "statusCode": 401,
    "body": "{\"title\":\"The API key you provided does not exist.\" }",
    "headers": [
        {
            "name": "Content-Type",
            "value": "application/problem+json"
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Set the type URL parameter to the value that represents the error response you want to return.

  6. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}.

The response’s ErrorSettings.{errorType} object shows the details of the requested error.

Edit an error response

Updates a customizable error response of the selected type.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/error-responses/API_KEY_INVALID

Content-Type: application/json

Download schema: errorResponseDto-schema.json

Request body:

{
    "overrideDefaults": false,
    "statusCode": 401,
    "body": "{\"title\":\"The API key you provided does not exist.\" }",
    "headers": [
        {
            "name": "Content-Type",
            "value": "application/problem+json"
        }
    ]
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.
type Enumeration API_KEY_INVALID The type of the customizable error response. For possible values, see ErrorSettings.{errorType} values.

Status 200 application/json

Download schema: errorResponseDto-schema.json

Response body:

{
    "overrideDefaults": false,
    "statusCode": 401,
    "body": "{\"title\":\"The API key you provided does not exist.\" }",
    "headers": [
        {
            "name": "Content-Type",
            "value": "application/problem+json"
        }
    ]
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get an error response operation and set the type to the appropriate value.

  6. Modify the returned ErrorSettings.{errorType} object.

  7. PUT the modified object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}.

A 200 response confirms success, and the response object reflects your modifications.

Get OAuth scopes assignments

Returns the assignments of OAuth scopes configured for an endpoint version and its associated resources. You can run this operation if you’re taking part in the API Gateway beta program.

GET /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/oauth

Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: OauthScopesAssignments

Download schema: oauthDto-schema.json

Response body:

{
    "enabled": true,
    "resources": {
        "100": {
            "path": "/books/{bookId}",
            "notes": null,
            "scopes": [
                "admin:calendar"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:calendar"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": [
                        "write:calendar"
                    ]
                }
            }
        },
        "101": {
            "path": "/users/{userId}",
            "notes": null,
            "scopes": [],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:mail"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        },
        "102": {
            "path": "/contacts",
            "notes": "Core contacts API resource",
            "scopes": [
                "contacts"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        }
    }
}
  1. If you don’t already have an apiEndpointId value, run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. If you don’t already have a versionNumber value, run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Make a GET request to /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth.

The response is an OAuthScopesAssignments object that displays OAuth settings for the requested endpoint version and its associated resources.

Edit OAuth scopes assignments

Updates the assignments of OAuth scopes configured for an endpoint version and its associated resources. You can run this operation if you’re taking part in the API Gateway beta program.

PUT /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth

Sample: /api-definitions/v2/endpoints/288595/versions/23/settings/oauth

Content-Type: application/json

Object type: OauthScopesAssignments

Download schema: oauthDto-schema.json

Request body:

{
    "enabled": true,
    "resources": {
        "100": {
            "path": "/books/{bookId}",
            "notes": null,
            "scopes": [
                "admin:calendar"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:calendar"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": [
                        "write:calendar"
                    ]
                }
            }
        },
        "101": {
            "path": "/users/{userId}",
            "notes": null,
            "scopes": [],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:mail"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        },
        "102": {
            "path": "/contacts",
            "notes": "Core contacts API resource",
            "scopes": [
                "contacts"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        }
    }
}
Parameter Type Sample Description
URL path parameters
apiEndPointId Integer 288595 The unique identifier for the endpoint.
versionNumber Integer 23 The unique identifier for the endpoint version.

Status 200 application/json

Object type: OauthScopesAssignments

Download schema: oauthDto-schema.json

Response body:

{
    "enabled": true,
    "resources": {
        "100": {
            "path": "/books/{bookId}",
            "notes": null,
            "scopes": [
                "admin:calendar"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:calendar"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": [
                        "write:calendar"
                    ]
                }
            }
        },
        "101": {
            "path": "/users/{userId}",
            "notes": null,
            "scopes": [],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:mail"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        },
        "102": {
            "path": "/contacts",
            "notes": "Core contacts API resource",
            "scopes": [
                "contacts"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        }
    }
}

If you don’t already have apiEndpointId and versionNumber values:

  1. Run the List endpoints operation.

  2. Select the appropriate endpoint from the returned array and store its apiEndpointId value.

  3. Run the List versions operation.

  4. Select the appropriate endpoint version from the returned array and store its versionNumber value.

  5. Run the Get OAuth scopes assignments operation for the complete representation of the object.

  6. Copy the returned OAuthScopesAssignments object for future use.

  7. Run the List resources operation.

  8. Select the appropriate resource from the returned array and store its apiResourceId value.

  9. If the apiResourceId is present in the OAuthScopesAssignments object’s resources, modify the OAuthAssignments .resources.{apiResourceId} value.

  10. If the apiResourceId is absent from the OAuthScopesAssignments object’s resources, create a new OAuthAssignments .resources.{apiResourceId} object under that key.

To modify OAuth scopes for the resource:

  1. PUT the full object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth.

To modify OAuth scopes for a method within the resource:

  1. Select the appropriate HTTP method associated with the resource you picked.

  2. Modify the OauthScopesAssignments.resources.{apiResourceId}.methods.{apiResourceMethod} object.

  3. PUT the full object back to the same URL as the GET: /api-definitions/v2/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/oauth.

A 200 response confirms success, and the response object reflects your modifications.

List OAuth scopes

Lists the OAuth scopes available to the API client.

GET /api-definitions/v2/oauth-scopes

Status 200 application/json

Download schema: oauthScopeList-schema.json

Response body:

[
    {
        "name": "http://bookstore.api.akamai.com/bookstore/users/id.read",
        "description": "Allow a client app to view user IDs."
    },
    {
        "name": "http://bookstore.api.akamai.com/bookstore/books/id.read",
        "description": "Allow a client app to view book IDs."
    }
]

Create an OAuth scope

Creates an OAuth scope. It lets you provide a meaningful description clarifying the scope. The description of a scope appears on the second consent page in the Manage API Definitions application in Control Center, where resource owners grant client apps access to their data. By providing a meaningful description, you make sure that a resource owner fully understands the extent to which a client app is able to access their resources. To assign the scope to an endpoint version and its associated resources, run the Edit OAuth scopes assignments operation.

POST /api-definitions/v2/oauth-scopes

Content-Type: application/json

Object type: OauthScopeDefinition

Download schema: oauthScope-schema.json

Request body:

{
    "name": "http://bookstore.api.com/bookstore/users/id.read",
    "description": "Allow a client app to view user IDs."
}

Status 201 application/json

Object type: OauthScopeDefinition

Download schema: oauthScope-schema.json

Response body:

{
    "name": "http://bookstore.api.com/bookstore/users/id.read",
    "description": "Allow a client app to view user IDs."
}

Edit an OAuth scope

Updates an OAuth scope. It lets you provide a meaningful description clarifying the scope. The description of a scope appears on the second consent page in the Manage API Definitions application in Control Center, where resource owners grant client apps access to their data. By providing a meaningful description, you make sure that a resource owner fully understands the extent to which a client app is able to access their resources. To assign the scope to an endpoint version and its associated resources, run the Edit OAuth scopes assignments operation.

PUT /api-definitions/v2/oauth-scopes{?name}

Sample: /api-definitions/v2/oauth-scopes?name=Books%3ARead

Content-Type: application/json

Object type: OauthScopeDefinition

Download schema: oauthScope-schema.json

Request body:

{
    "name": "http://bookstore.api.com/bookstore/users/id.read",
    "description": "Allow a client app to view user IDs."
}
Parameter Type Sample Description
Required query parameters
name String Books:Read The name of the OAuth scope.

Status 200 application/json

Object type: OauthScopeDefinition

Download schema: oauthScope-schema.json

Response body:

{
    "name": "http://bookstore.api.com/bookstore/users/id.read",
    "description": "Allow a client app to view user IDs."
}

Delete an OAuth scope

Removes an OAuth scope if it isn’t assigned to any endpoint version that’s active or pending activation on the staging or production network.

DELETE /api-definitions/v2/oauth-scopes{?name}

Sample: /api-definitions/v2/oauth-scopes?name=Books%3ARead

Parameter Type Sample Description
Required query parameters
name String Books:Read The name of the OAuth scope.

Status 204

List categories

Lists all categories available to tag endpoints and optionally indicates the number of endpoints tagged under each category.

GET /api-definitions/v2/categories{?withUsageInfo}

Sample: /api-definitions/v2/categories?withUsageInfo=true

Parameter Type Sample Description
Optional query parameters
withUsageInfo Boolean true Whether the response should include the usageCount data indicating the number of endpoints under a category, false by default.

Status 200 application/json

Object type: Category

Download schema: categoryDtos-schema.json

Response body:

[
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-17T12:42:42+0000",
        "updateDate": "2019-06-17T12:42:42+0000",
        "updatedBy": "bookstore_admin",
        "apiCategoryId": 9903,
        "apiCategoryName": "IT",
        "apiCategoryDescription": "The applications related to the IT department.",
        "link": "/api-definitions/v1/api-categories/9903",
        "lockVersion": 0
    },
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-17T12:43:11+0000",
        "updateDate": "2019-06-17T12:43:11+0000",
        "updatedBy": "bookstore_admin",
        "apiCategoryId": 9904,
        "apiCategoryName": "Internal",
        "apiCategoryDescription": "The applications for internal use only.",
        "link": "/api-definitions/v1/api-categories/9904",
        "lockVersion": 0
    },
    {
        "createdBy": "bookstore_admin",
        "createDate": "2019-06-17T12:40:14+0000",
        "updateDate": "2019-06-17T12:40:14+0000",
        "updatedBy": "bookstore_admin",
        "apiCategoryId": 9902,
        "apiCategoryName": "Sales",
        "apiCategoryDescription": "The applications related to the Sales department.",
        "link": "/api-definitions/v1/api-categories/9902",
        "lockVersion": 0
    }
]
  1. Optionally set the withUsageInfo query parameter to true if you want the listed categories to show the number of endpoints they apply to.

  2. Make a GET request to /api-definitions/v2/categories{?withUsageInfo}.

The response is an array of Category objects.

Create a category

Creates a category that you can use to tag endpoints. The request’s apiCategoryName needs to be unique per account.

POST /api-definitions/v2/categories

Content-Type: application/json

Object type: Category

Download schema: categoryDto-schema.json

Request body:

{
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department."
}

Status 201 application/json

Headers:

Location: /api-definitions/v2/api-categories/123

Object type: Category

Download schema: categoryDto-schema.json

Response body:

{
    "createDate": "2019-06-17T12:40:14+0000",
    "updateDate": "2019-06-17T12:40:14+0000",
    "apiCategoryId": 9902,
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department.",
    "link": "/api-definitions/v2/categories/9902",
    "lockVersion": 0
}
  1. Build a Category object, specifying a unique apiCategoryName.

  2. POST the object to /api-definitions/v2/categories.

The response reflects back the complete Category object, from which you can store the apiCategoryId value. You can access the newly created category at the URL specified in the Location response header.

Get a category

Returns a specific category that you can use to tag endpoints.

GET /api-definitions/v2/categories/{apiCategoryId}

Sample: /api-definitions/v2/categories/13

Parameter Type Sample Description
URL path parameters
apiCategoryId Integer 13 The unique identifier for the category.

Status 200 application/json

Object type: Category

Download schema: categoryDto-schema.json

Response body:

{
    "createDate": "2019-06-17T12:40:14+0000",
    "updateDate": "2019-06-17T12:40:14+0000",
    "apiCategoryId": 9902,
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department.",
    "link": "/api-definitions/v2/categories/9902",
    "lockVersion": 0
}
  1. If you don’t already have an apiCategoryId value, run the List categories operation.

  2. Select the appropriate category from the returned array and store its apiCategoryId value.

  3. Make a GET request to /api-definitions/v2/categories/{apiCategoryId}.

The response is a Category object.

Edit a category

Updates a category’s description or unique name.

PUT /api-definitions/v2/categories/{apiCategoryId}

Sample: /api-definitions/v2/categories/13

Content-Type: application/json

Object type: Category

Download schema: categoryDto-schema.json

Request body:

{
    "createDate": "2019-06-17T12:40:14+0000",
    "updateDate": "2019-06-17T12:40:14+0000",
    "apiCategoryId": 9902,
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department.",
    "link": "/api-definitions/v2/categories/9902",
    "lockVersion": 0
}
Parameter Type Sample Description
URL path parameters
apiCategoryId Integer 13 The unique identifier for the category.

Status 200 application/json

Object type: Category

Download schema: categoryDto-schema.json

Response body:

{
    "createDate": "2019-06-17T12:40:14+0000",
    "updateDate": "2019-06-17T12:40:14+0000",
    "apiCategoryId": 9902,
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department.",
    "link": "/api-definitions/v2/categories/9902",
    "lockVersion": 0
}
  1. If you don’t already have an apiCategoryId value, run the List categories operation.

  2. Select the appropriate category from the returned array and store its apiCategoryId value.

  3. Run the Get a category operation for the complete representation of the object.

  4. Modify the returned Category object.

  5. PUT the object back to the same URL as the GET: /api-definitions/v2/categories/{apiCategoryId}.

A 200 response confirms success, and the response object reflects your modifications.

Delete a category

Removes an unassigned category. If you assigned the category to at least one endpoint, the operation returns a 403 error.

DELETE /api-definitions/v2/categories/{apiCategoryId}

Sample: /api-definitions/v2/categories/13

Parameter Type Sample Description
URL path parameters
apiCategoryId Integer 13 The unique identifier for the category.

Status 204

  1. If you don’t already have an apiCategoryId value of the appropriate Category object, run the List categories operation.

  2. Select the appropriate category from the returned array and store its apiCategoryId value.

  3. Make a DELETE request to /api-definitions/v2/categories/{apiCategoryId}.

A 204 response confirms the category has been deleted.

List contracts and groups

You provision each API endpoint within the context of your contract with Akamai and a Control Center portal group. This operation lists AcgPair objects. These objects encapsulate pairings of contract and group identifiers available within the scope of the user who provisioned the API token, as described in Get started.

GET /api-definitions/v2/contracts/groups

Status 200 application/json

Object type: AcgPair

Download schema: aCGPickerRows-schema.json

Response body:

[
    {
        "displayName": "Bookstore Users",
        "acgId": "3-1Cgoa",
        "groupId": 58220,
        "contractId": "3-1Cgoa"
    },
    {
        "displayName": "Bookstore Users - Developers",
        "acgId": "3-1Cgoa.G75683",
        "groupId": 75683,
        "contractId": "3-1Cgoa"
    }
]

List hostnames

Lists all hostnames through which API consumers can access an endpoint service under a given contract and group pairing. You can use Property Manager (or PAPI) to create new hostnames to make available to users.

GET /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hosts

Sample: /api-definitions/v2/contracts/3-1Cgoa/groups/67890/hosts

Parameter Type Sample Description
URL path parameters
contractId String 3-1Cgoa The unique identifier for the contract.
groupId Integer 67890 The unique identifier for the group.

Status 200 application/json

Download schema: hosts-schema.json

Response body:

[
    "bookstore.api.akamai.com",
    "bookstore2.api.akamai.com"
]
  1. Run the List contracts and groups operation.

  2. From the response array, choose the appropriate pairing of contract and group, and store its contractId and groupId values.

  3. Make a GET request to /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hosts.

The response features a simple array of available hostname strings.

List hostnames with access control groups

Lists all hostnames through which API consumers can access an endpoint service under a given contract and group pairing. Returns each hostname together with the access control group where the hostname is registered. You can use Property Manager (or PAPI) to create new hostnames to make available to users.

GET /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hostsAcgs

Sample: /api-definitions/v2/contracts/3-1Cgoa/groups/67890/hostsAcgs

Parameter Type Sample Description
URL path parameters
contractId String 3-1Cgoa The unique identifier for the contract.
groupId Integer 67890 The unique identifier for the group.

Status 200 application/json

Object type: HostAcgPair

Download schema: acgsHosts-schema.json

Response body:

[
    {
        "hostname": "www.bookstore.api.akamai.com",
        "acgId": "WAA-3-1AINU1T",
        "contractId": "3-1AINU1T"
    },
    {
        "hostname": "www.bookstore2.api.akamai.com",
        "acgId": "WAA-3-WNNG6F",
        "contractId": "3-WNNG6F"
    }
]
  1. Run the List contracts and groups operation.

  2. From the response array, choose the appropriate pairing of contract and group, and store its contractId and groupId values.

  3. Make a GET request to /api-definitions/v2/contracts/{contractId}/groups/{groupId}/hostsAcgs.

The response features an array of HostAcgPair objects.

Data

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

Whenever [] appears at the end of an object’s name, it indicates that the object represents any element in an array of objects.

Download the JSON schemas for this API.

This section’s data schema tables list membership requirements as follows:

Member is required in requests, or always present in responses, even if its value is empty or null.
Member is optional, and may be omitted in some cases.
Member is out of scope, and irrelevant to the specified interaction context. If you include the member in that context, it either triggers an error, or is ignored.

EndpointList

Contains information about a collection of requested endpoints.

Download schema: apiEndpointListDto-schema.json

EndpointList members

Member Type Required Description
EndpointList: Contains information about a collection of requested endpoints.
apiEndPoints Endpoint Array The collection of the returned Endpoint objects.
page Integer The number of the current page with results.
pageSize Integer The number of endpoints on each page with results.
totalSize Integer The total number of endpoints available in the returned set.

Endpoint

Contains information about an endpoint to clone.

Download schema: apiEndpointCloneDto-schema.json, apiEndpointWithResourceDto-schema.json

Sample GET:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-12T13:06:52+0000",
    "updateDate": "2019-06-12T13:06:52+0000",
    "updatedBy": "bookstore_admin",
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
    "basePath": "/bookstore",
    "consumeType": "any",
    "apiEndPointScheme": "http/https",
    "apiEndPointVersion": 574127,
    "contractId": "3-13H55B5",
    "groupId": 44681,
    "versionNumber": 1,
    "clonedFromVersion": null,
    "apiEndPointLocked": false,
    "protectedByApiKey": true,
    "source": null,
    "positiveConstrainsEnabled": null,
    "versionHidden": false,
    "endpointHidden": false,
    "akamaiSecurityRestrictions": null,
    "stagingStatus": null,
    "productionStatus": null,
    "graphQL": false,
    "caseSensitive": true,
    "isGraphQL": false,
    "lockVersion": 0,
    "apiEndPointHosts": [
        "bookstore.api.akamai.com"
    ],
    "apiCategoryIds": [
        2,
        7
    ],
    "availableActions": [
        "DELETE",
        "CLONE_ENDPOINT",
        "ACTIVATE_ON_PRODUCTION",
        "HIDE_ENDPOINT",
        "EDIT_ENDPOINT_DEFINITION",
        "ACTIVATE_ON_STAGING"
    ],
    "stagingVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "productionVersion": {
        "versionNumber": null,
        "status": null,
        "timestamp": null,
        "lastError": null
    },
    "securityScheme": {
        "securitySchemeType": "apikey",
        "securitySchemeDetail": {
            "apiKeyLocation": "header",
            "apiKeyName": "apikey"
        }
    },
    "apiResources": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiResourceId": 2926712,
            "apiResourceName": "books",
            "resourcePath": "/books/{bookId}",
            "description": "A book item within the bookstore API.",
            "link": null,
            "apiResourceClonedFromId": null,
            "apiResourceLogicId": 118435,
            "private": false,
            "lockVersion": 0,
            "apiResourceMethods": [
                {
                    "apiResourceMethodId": 341591,
                    "apiResourceMethod": "GET",
                    "apiResourceMethodLogicId": 184404,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212945,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578116,
                            "apiResourceMethParamId": 494448,
                            "apiParameterRestriction": null,
                            "apiParameterNotes": null,
                            "apiChildParameters": []
                        }
                    ]
                },
                {
                    "apiResourceMethodId": 341592,
                    "apiResourceMethod": "POST",
                    "apiResourceMethodLogicId": 184405,
                    "apiParameters": [
                        {
                            "apiParameterId": 1212946,
                            "apiParameterRequired": true,
                            "apiParameterName": "bookId",
                            "apiParameterLocation": "path",
                            "apiParameterType": "string",
                            "array": false,
                            "pathParamLocationId": null,
                            "apiParamLogicId": 578117,
                            "apiResourceMethParamId": 494449,
                            "apiParameterNotes": null,
                            "apiChildParameters": [],
                            "apiParameterRestriction": {
                                "rangeRestriction": null,
                                "numberRangeRestriction": null,
                                "arrayRestriction": null,
                                "xmlConversionRule": null,
                                "lengthRestriction": {
                                    "lengthMax": 15,
                                    "lengthMin": 3
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Endpoint members

Member Type Clone Create/Modify Description
Endpoint: Contains information about an endpoint to clone.
akamaiSecurityRestrictions Endpoint.akamaiSecurityRestrictions, Null Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you’re a Kona Site Defender customer.
apiCategoryIds Array, Null The Category identifiers that apply to the endpoint. The value is null for uncategorized endpoints.
apiEndPointHosts Array The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.
apiEndPointId Integer Read-only. The unique identifier for the endpoint. For the clone operation, this is the ID of the source endpoint.
apiEndPointLocked Boolean, Null Read-only. Whether the endpoint version is read-only.
apiEndPointName String The name of the endpoint, unique within the account.
apiEndPointScheme Enumeration, Null The URL scheme to which the endpoint may respond, either http, https, or http/https for both.
apiEndPointVersion Integer, Null Read-only. The unique identifier for the endpoint version.
apiResources Resource Array The list of Resource objects associated with the endpoint.
apiVersionInfo Endpoint.apiVersionInfo, Null Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.
availableActions Array, Null Read-only. The collection of available actions that you can perform on the endpoint depending on its versions’ activation status. For possible values, see Endpoint.availableActions values.
basePath String The URL path that serves as a root prefix for all resources’ resourcePath values for the endpoint. This is / if empty. Don’t append a / character to the path.
caseSensitive Boolean, Null Whether the URLs and parameters within the endpoint are case sensitive.
clonedFromVersion Integer, Null Read-only. For cloned endpoints, the unique identifier for the source endpoint version.
consumeType Enumeration, Null The content type the endpoint exchanges, either json, xml, json/xml for dual-format APIs, any, or none.
contractId String Read-only. The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.
createDate String, Null Read-only. The ISO–6801 timestamp indicating when you created the endpoint.
createdBy String, Null Read-only. The identifier for the user who created the endpoint.
description String, Null The description of the endpoint. If you specify null in the request or omit this member from the object, the JSON response reflects it as an empty string.
endpointHidden Boolean, Null Read-only. Whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the Show an endpoint operation.
groupId Integer Read-only. The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.
isGraphQL Boolean Whether the endpoint uses GraphQL to deliver structured content to clients.
lockVersion Integer Read-only. The identifier for the last modification of an endpoint version, used for optimistic locking. See Concurrency control for details.
positiveConstrainsEnabled Boolean, Null Whether the KSD firewall policies are enabled for the endpoint.
productionStatus Enumeration, Null Read-only. The version activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
productionVersion Endpoint.productionVersion Read-only. Contains information about an endpoint version’s activation status on the production network.
protectedByApiKey Boolean Read-only. Whether you enabled API key protection for the endpoint version by making the version private.
securityScheme Endpoint.securityScheme, Null Contains information about the key with which users may access the endpoint.
source Endpoint.source Read-only. Contains information about the import file used to create the endpoint.
stagingStatus Enumeration, Null Read-only. The version activation status on the staging network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
stagingVersion Endpoint.stagingVersion Read-only. Contains information about an endpoint version’s activation status on the staging network.
updateDate String, Null Read-only. The ISO–6801 timestamp indicating when you last modified the endpoint.
updatedBy String, Null Read-only. The identifier for the user who last modified the endpoint.
versionHidden Boolean, Null Read-only. Whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the Show a version operation.
versionNumber Integer The endpoint version number. For the clone operation, this is the source endpoint version number.
Endpoint.akamaiSecurityRestrictions: Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you’re a Kona Site Defender customer.
MAX_BODY_SIZE Integer, Null The maximum allowed size of a request body.
MAX_DOC_DEPTH Integer, Null The maximum depth of nested data elements allowed in a request body.
MAX_ELEMENT_NAME_LENGTH Integer, Null The maximum length of an XML element name or JSON object key name allowed in a request body.
MAX_INTEGER_VALUE Integer, Null The maximum integer value allowed in a request body.
MAX_JSONXML_ELEMENT Integer, Null The maximum number of XML elements, JSON object keys, or array items allowed in a request body.
MAX_STRING_LENGTH Integer, Null The maximum length of any string value in a request body.
POSITIVE_SECURITY_ENABLED Enumeration Whether the API request body and resource constraints should be enforced as whitelists in your KSD security policies. Either 1 for enabled security constraints, or 0 for disabled.
Endpoint.apiVersionInfo: Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.
location Enumeration The location of the API version value in an incoming request. Either HEADER, BASE_PATH, or QUERY parameter.
parameterName String The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding location member is either HEADER or QUERY.
value String The expected API version value in an incoming request.
Endpoint.productionVersion: Contains information about an endpoint version’s activation status on the production network.
lastError Endpoint.productionVersion.lastError, Null Contains information about the last failed activation of the endpoint version.
status Enumeration, Null Read-only. The activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
timestamp String Read-only. The ISO–6801 timestamp indicating when the activation status was last updated.
versionNumber Integer Read-only. The endpoint version number.
Endpoint.productionVersion.lastError: Contains information about the last failed activation of the endpoint version.
status Enumeration, Null Read-only. The activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
timestamp String Read-only. The ISO–6801 timestamp indicating when the activation status was last updated.
versionNumber Integer Read-only. The endpoint version number.
Endpoint.securityScheme: Contains information about the key with which users may access the endpoint.
securitySchemeDetail Endpoint.securityScheme.securitySchemeDetail Contains information about the location of the API key.
securitySchemeType Enumeration The type of security scheme implemented for the endpoint. The only valid value is apikey.
Endpoint.securityScheme.securitySchemeDetail: Contains information about the location of the API key.
apiKeyLocation Enumeration The location of the API key in incoming requests, either cookie, header, or query parameter.
apiKeyName String The name of the header, query parameter, or cookie where you located the API key.
Endpoint.source: Contains information about the import file used to create the endpoint.
apiVersion String, Null Read-only. The major version of the API defined in the import file.
specificationVersion String, Null Read-only. The version of the import file’s specification.
type Enumeration, Null Read-only. The specification of the import file you uploaded to create the endpoint version. Either SWAGGER or RAML.
Endpoint.stagingVersion: Contains information about an endpoint version’s activation status on the staging network.
lastError Endpoint.stagingVersion.lastError, Null Contains information about the last failed activation of the endpoint version.
status Enumeration, Null Read-only. The activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
timestamp String Read-only. The ISO–6801 timestamp indicating when the activation status was last updated.
versionNumber Integer Read-only. The endpoint version number.
Endpoint.stagingVersion.lastError: Contains information about the last failed activation of the endpoint version.
status Enumeration, Null Read-only. The activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
timestamp String Read-only. The ISO–6801 timestamp indicating when the activation status was last updated.
versionNumber Integer Read-only. The endpoint version number.

Endpoint.availableActions values

These values indicate the set of availableActions you can perform on an endpoint depending on its activation status:

Value Description
ACTIVATE_ON_PRODUCTION You can activate at least one version of the endpoint on the production network.
ACTIVATE_ON_STAGING You can activate at least one version of the endpoint on the staging network.
CLONE_ENDPOINT You can clone the endpoint.
DEACTIVATE_ON_PRODUCTION You can deactivate at least one version of the endpoint on the production network.
DEACTIVATE_ON_STAGING You can deactivate at least one version of the endpoint on the staging network.
DELETE You can delete the endpoint.
EDIT_ENDPOINT_DEFINITION You can edit the endpoint and resource settings of at least one version of the endpoint.
HIDE_ENDPOINT You can hide the endpoint and all its versions.
SHOW_ENDPOINT You can reveal the endpoint and all its versions.

VersionList

Contains information about all versions of an endpoint.

Download schema: apiEndpointVersionListDto-schema.json

Sample GET:

{
    "apiEndPointId": 492375,
    "apiEndPointName": "Bookstore API",
    "apiVersions": [
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-17T07:22:29+0000",
            "updateDate": "2019-06-17T07:23:11+0000",
            "updatedBy": "bookstore_admin",
            "apiEndPointVersionId": 599104,
            "basePath": "/bookstore2",
            "versionNumber": 2,
            "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
            "basedOn": 1,
            "stagingStatus": null,
            "productionStatus": null,
            "stagingDate": null,
            "productionDate": null,
            "isVersionLocked": false,
            "hidden": false,
            "lockVersion": 2,
            "availableActions": [
                "ACTIVATE_ON_PRODUCTION",
                "VIEW_AAG_SETTINGS",
                "COMPARE_RAPID_SETTINGS",
                "EDIT_AAG_SETTINGS",
                "HIDE_VERSION",
                "CLONE_VERSION",
                "EDIT_ENDPOINT_DEFINITION",
                "COMPARE_ENDPOINT",
                "RESOURCES",
                "ACTIVATE_ON_STAGING",
                "DELETE"
            ]
        },
        {
            "createdBy": "bookstore_admin",
            "createDate": "2019-06-12T13:06:52+0000",
            "updateDate": "2019-06-12T13:06:52+0000",
            "updatedBy": "bookstore_admin",
            "apiEndPointVersionId": 574127,
            "basePath": "/bookstore",
            "versionNumber": 1,
            "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
            "basedOn": null,
            "stagingStatus": null,
            "productionStatus": null,
            "stagingDate": null,
            "productionDate": null,
            "isVersionLocked": false,
            "hidden": false,
            "lockVersion": 0,
            "availableActions": [
                "VIEW_AAG_SETTINGS",
                "EDIT_AAG_SETTINGS",
                "EDIT_ENDPOINT_DEFINITION",
                "DELETE",
                "ACTIVATE_ON_STAGING",
                "COMPARE_RAPID_SETTINGS",
                "ACTIVATE_ON_PRODUCTION",
                "COMPARE_ENDPOINT",
                "CLONE_VERSION",
                "RESOURCES",
                "HIDE_VERSION"
            ]
        }
    ]
}

VersionList members

Member Type Required Description
VersionList: Contains information about all versions of an endpoint.
apiEndPointId Integer The unique identifier for the endpoint.
apiEndPointName String The name of the endpoint, unique within the account.
apiVersions VersionList.apiVersions[] Contains information about each endpoint version within a collection.
VersionList.apiVersions[]: Contains information about each endpoint version within a collection.
apiEndPointVersionId Integer The unique identifier for the endpoint version.
availableActions Array, Null Read-only. The collection of available actions that you can perform on the version depending on the version’s activation status. For possible values, see VersionList.apiVersions[].availableActions values.
basedOn Integer, Null For cloned versions, the unique identifier for the source version.
basePath String, Null The URL path that serves as a root prefix for all resources’ resourcePath values. This is / if empty. Don’t append a / character to the path. If you specify null in the request or omit this member from the object, the JSON response reflects it as an empty string.
createDate String Read-only. The ISO–6801 timestamp indicating when you created the endpoint version.
createdBy String The identifier for the user who created the version.
description String, Null The description of the endpoint version. If you specify null in the request or omit this member from the object, the JSON response reflects it as an empty string.
hidden Boolean, Null Read-only. Whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the Show a version operation.
isVersionLocked Boolean Whether the endpoint version is read-only.
lockVersion Integer The identifier for the last modification of an endpoint version, used for optimistic locking. See Concurrency control for details.
productionDate String, Null Read-only. The ISO–6801 timestamp indicating when you activated the endpoint version on the production network.
productionStatus Enumeration, Null Read-only. The version activation status on the production network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
stagingDate String, Null Read-only. The ISO–6801 timestamp indicating when you activated the endpoint version on the staging network.
stagingStatus Enumeration, Null Read-only. The version activation status on the staging network, either PENDING if the version contains changes that are being propagated to the network, ACTIVE if the version is active, DEACTIVATED if the version had been active once but has been deactivated, or FAILED if an activation or deactivation attempt for this version has failed. The value is null for versions that have never been activated on this network.
updateDate String Read-only. The ISO–6801 timestamp indicating when you last modified the endpoint version.
updatedBy String The identifier for the user who last modified the version.
versionNumber Integer The endpoint version number.

VersionList.apiVersions

These values indicate the set of availableActions you can perform on an endpoint version depending on its activation status:

Value Description
ACTIVATE_ON_PRODUCTION You can activate the version on the production network.
ACTIVATE_ON_STAGING You can activate the version on the staging network.
CLONE_ENDPOINT You can clone the entire endpoint that includes the version.
CLONE_VERSION You can clone the version.
COMPARE_AAG_SETTINGS You can compare the version’s API delivery settings with another version.
COMPARE_ENDPOINT You can compare the version’s endpoint definition and resource settings with another version.
COMPARE_RESOURCE_PURPOSES If you’re a Bot Manager customer, you can compare the version’s resource purpose settings with another version.
DEACTIVATE_ON_PRODUCTION You can deactivate the version on the production network.
DEACTIVATE_ON_STAGING You can deactivate the version on the staging network.
DELETE You can delete the version.
EDIT_AAG_SETTINGS You can edit the version’s API delivery settings.
EDIT_ENDPOINT_DEFINITION You can edit the version’s endpoint definition and resource settings.
HIDE_VERSION You can hide the version.
RESOURCE You can add and edit resources associated with the version.
SHOW_VERSION You can reveal the version.
VIEW_AAG_SETTINGS You can view the version’s API delivery settings.

Resource

Contains information about a Resource associated with an Endpoint.

Download schema: apiResourceMethParamsDto-schema.json

Sample GET:

{
    "createdBy": "bookstore_admin",
    "createDate": "2019-06-17T08:26:59+0000",
    "updateDate": "2019-06-17T08:26:59+0000",
    "updatedBy": "bookstore_admin",
    "apiResourceId": 2935139,
    "apiResourceName": "magazine",
    "resourcePath": "/magazine/{magazineId}",
    "description": "A magazine item within the bookstore API.",
    "link": null,
    "apiResourceClonedFromId": null,
    "apiResourceLogicId": 126269,
    "private": false,
    "lockVersion": 0,
    "apiResourceMethods": [
        {
            "apiResourceMethodId": 365559,
            "apiResourceMethod": "GET",
            "apiResourceMethodLogicId": 205820,
            "apiParameters": [
                {
                    "apiParameterId": 1223250,
                    "apiParameterRequired": true,
                    "apiParameterName": "magazineId",
                    "apiParameterLocation": "path",
                    "apiParameterType": "string",
                    "array": false,
                    "pathParamLocationId": null,
                    "apiParamLogicId": 588309,
                    "apiResourceMethParamId": 500315,
                    "apiParameterRestriction": null,
                    "apiParameterNotes": null,
                    "apiChildParameters": []
                }
            ]
        }
    ]
}

Resource members

Member Type Required Description
Resource: Contains information about a Resource associated with an Endpoint.
apiResourceClonedFromId Integer, Null Read-only. For cloned resources, the unique identifier for the source resource.
apiResourceId Integer, Null Read-only. The unique identifier for the resource.
apiResourceLogicId Integer, Null Read-only. The unique identifier for the resource across all endpoint versions.
apiResourceMethodNameLists Array, Null The list of HTTP methods the resource may respond to.
apiResourceMethods Method Array The list of Method objects that represent HTTP methods the resource may respond to.
apiResourceName String The name of the resource.
createDate String Read-only. The ISO–6801 timestamp indicating when you created the resource.
createdBy String Read-only. The identifier for the user who created the resource.
description String, Null The description to clarify the resource’s function within the API. If you specify null in the request or omit this member from the object, the JSON response reflects it as an empty string.
link String, Null Read-only. The location of the navigable resource within this API, for use by API clients.
lockVersion Number Read-only. The identifier used for optimistic locking. See Concurrency control for details.
private Boolean Read-only. Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.
resourcePath String The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets ({}) to define path parameters (for example, /path/{pathparam}). If you decide to do so, ensure that the value of the apiParameterName member in the corresponding parameter definition matches the name that you specified in the resource path.
updateDate String Read-only. The ISO–6801 timestamp indicating when you last modified the resource.
updatedBy String Read-only. The identifier for the user who last modified the resource.

Method

Contains information about an HTTP method to which a resource may respond.

Download schema: apiMethodParametersDto-schema.json

Method members

Member Type Required Description
Method: Contains information about an HTTP method to which a resource may respond.
apiParameters Parameter Array The list of Parameter objects associated with the method.
apiResourceMethod Enumeration The core HTTP method to which the resource may respond, either get, put, post, delete, head, patch, or options.
apiResourceMethodId Integer, Null Read-only. The unique identifier for the resource’s allowed method.
apiResourceMethodLogicId Integer, Null Read-only. The unique identifier for the resource’s method across all endpoint versions.

Parameter

Contains information about a method’s parameter.

Download schema: apiParameterDto-schema.json

Parameter members

Member Type Required Description
Parameter: Contains information about a method’s parameter.
apiChildParameters Parameter Array The collection of child JSON members or XML elements for JSON or XML body type parameters.
apiParameterId Integer Read-only. The unique identifier for the parameter.
apiParameterLocation Enumeration The location of the parameter in an HTTP request, either query, header, path, cookie, or body for a JSON or XML body type parameter.
apiParameterName String The name of the parameter. If the corresponding apiParameterLocation is path, ensure that this value matches the parameter name you specified in the resourcePath.
apiParameterNotes String, Null The description to clarify the parameter’s function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as null.
apiParameterRequired Boolean Whether the parameter is needed. If the corresponding apiParameterLocation is path, set this member to true.
apiParameterRestriction Parameter.apiParameterRestriction, Null Contains information about restrictions and XML representation rules specified for the parameter.
apiParameterType Enumeration The data type of the parameter, either string, integer, number, boolean, or json/xml for JSON or XML objects.
apiParamLogicId Integer Read-only. The unique identifier for the parameter across all endpoint versions.
apiResourceMethParamId Integer, Null Read-only. The unique identifier for the parameter’s parent method.
array Boolean Whether the parameter can express more than one value. This member is only applicable for apiChildParameters that you can specify if the corresponding apiParameterLocation is body and the apiParameterType is json/xml. If you enable this, also define the arrayRestriction member.
pathParamLocationId Number, Null The index of a segment that includes a path parameter in a resource path. For example, given a path \books\{bookId}, the books segment has index 0, and the path parameter {bookId} has index 1.
Parameter.apiParameterRestriction: Contains information about restrictions and XML representation rules specified for the parameter.
arrayRestriction Parameter.apiParameterRestriction.arrayRestriction, Null Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding array member.
lengthRestriction Parameter.apiParameterRestriction.lengthRestriction, Null Contains information about length restrictions for string type parameters.
numberRangeRestriction Parameter.apiParameterRestriction.numberRangeRestriction, Null Contains information about range restrictions for number type parameters.
rangeRestriction Parameter.apiParameterRestriction.rangeRestriction, Null Contains information about range restrictions for integer type parameters.
xmlConversionRule Parameter.apiParameterRestriction.xmlConversionRule Contains information about an XML representation of a JSON-encoded parameter.
Parameter.apiParameterRestriction.arrayRestriction: Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding array member.
collectionFormat Enumeration The format of the array that specifies how you separated array values, either the default csv for comma separated values, ssv for space separated values, tsv for tab separated values, pipes for pipe separated values, or multi for several parameter instances instead of several values for a single instance.
maxItems Integer The maximum allowed number of array items.
minItems Integer The minimum allowed number of array items.
uniqueItems Boolean Whether the array contains only unique items.
Parameter.apiParameterRestriction.lengthRestriction: Contains information about length restrictions for string type parameters.
lengthMax Integer, Null The maximum allowed number of characters in the string.
lengthMin Integer, Null The minimum allowed number of characters in the string.
Parameter.apiParameterRestriction.numberRangeRestriction: Contains information about range restrictions for number type parameters.
numberRangeMax Number, Null The maximum range restriction.
numberRangeMin Number, Null The minimum range restriction.
Parameter.apiParameterRestriction.rangeRestriction: Contains information about range restrictions for integer type parameters.
rangeMax Integer, Null The maximum range restriction.
rangeMin Integer, Null The minimum range restriction.
Parameter.apiParameterRestriction.xmlConversionRule: Contains information about an XML representation of a JSON-encoded parameter.
attribute Boolean Whether the parameter should be represented as an attribute.
name String The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.
namespace String The XML namespace.
prefix String The prefix for the XML namespace.
wrapped Boolean Whether the parameter should be wrapped in a parent XML element.

ImportResult

Contains information about a result of an import operation, including endpoint details and a list of potential issues.

Download schema: importResult-schema.json

Sample POST response:

{
    "apiEndpointDetails": {
        "createdBy": null,
        "createDate": null,
        "updateDate": null,
        "updatedBy": null,
        "apiEndPointId": null,
        "apiEndPointName": "Bookstore API",
        "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.",
        "basePath": "/bookstore",
        "apiEndPointScheme": "http/https",
        "consumeType": "any",
        "groupId": null,
        "versionNumber": null,
        "clonedFromVersion": null,
        "apiEndPointLocked": null,
        "stagingVersion": null,
        "productionVersion": null,
        "protectedByApiKey": false,
        "apiProtectVersion": null,
        "apiCategoryIds": null,
        "contractId": null,
        "securityScheme": null,
        "akamaiSecurityRestrictions": null,
        "stagingStatus": null,
        "productionStatus": null,
        "lockVersion": -1,
        "apiEndPointHosts": [
            "bookstore.api.akamai.com"
        ],
        "apiResources": []
    },
    "problems": [
        {
            "type": "/api-definitions/error-types/IMPORT-INVALID-SCHEMA",
            "title": "Invalid schema",
            "detail": "The object instance has properties which are not allowed by the schema: [\"unrecognizable\"]",
            "pointer": "/paths/books/post",
            "level": "error",
            "domain": "validation",
            "keyword": "additionalProperties"
        }
    ]
}

ImportResult members

Member Type Required Description
ImportResult: Contains information about a result of an import operation, including endpoint details and a list of potential issues.
apiEndpointDetails Endpoint Contains information about the imported endpoint.
problems ImportResult.problems[] The list of problems that occurred during the import, such as schema errors or unsupported property warnings.
ImportResult.problems[]: The list of problems that occurred during the import, such as schema errors or unsupported property warnings.
detail String The detailed error message.
errors ImportResult.problems[] The collection of nested error responses.
instance String The non-referenceable URL for the error instance.
status Integer The HTTP status code.
title String The title of the error.
type String The URL for the error type.

Activation

Contains information about an endpoint version activation.

Download schema: activationDto-schema.json

Sample POST request:

{
    "notes": "Activating the first version of the Bookstore API on both staging and production networks.",
    "networks": [
        "STAGING",
        "PRODUCTION"
    ],
    "notificationRecipients": [
        "bookstore_shared@akamai.com"
    ]
}

Activation members

Member Type Required Description
Activation: Contains information about an endpoint version activation.
networks Array The network environments where you activate the endpoint version, either STAGING or PRODUCTION.
notes String The notes describing the version that you activate.
notificationRecipients Array The email addresses where the system sends the activation notification.

CacheSettings

Contains information about caching settings configured for an endpoint. Caching settings specify properties such as the maximum age of cached content, caching HTTP error responses, downstream cacheability, and cache key customization. You can set specific caching instructions for each resource within an endpoint version. You can configure caching settings if the API Gateway product is in your contract.

Download schema: cacheSettingsDto-schema.json

Sample GET:

{
    "enabled": true,
    "option": "CACHE",
    "serveStale": true,
    "maxAge": {
        "duration": 100,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "option": "ALLOW_CACHING",
        "lifetime": "SMALLER_VALUE",
        "maxAge": null,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "markAsPrivate": false
    },
    "cacheKey": {
        "customize": true,
        "option": "INCLUDE_ALL_PRESERVE_ORDER",
        "parameters": null,
        "exactMatch": true
    },
    "errorCaching": {
        "enabled": true,
        "preserveStale": true,
        "maxAge": {
            "duration": 80,
            "unit": "SECONDS"
        }
    },
    "resources": {
        "2926712": {
            "path": "/book/{bookId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "POST",
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935128": {
            "path": "/user/{userId}",
            "option": "CACHE",
            "serveStale": false,
            "inheritsFromEndpoint": false,
            "methods": [
                "POST",
                "GET",
                "PUT"
            ],
            "maxAge": {
                "duration": 120,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": false,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        },
        "2935139": {
            "path": "/magazine/{magazineId}",
            "option": "CACHE",
            "serveStale": true,
            "inheritsFromEndpoint": true,
            "methods": [
                "GET"
            ],
            "maxAge": {
                "duration": 100,
                "unit": "SECONDS"
            },
            "cacheKey": {
                "customize": true,
                "option": "INCLUDE_ALL_PRESERVE_ORDER",
                "parameters": null,
                "exactMatch": true
            }
        }
    }
}

CacheSettings members

Member Type Required Description
CacheSettings: Contains information about caching settings configured for an endpoint. Caching settings specify properties such as the maximum age of cached content, caching HTTP error responses, downstream cacheability, and cache key customization. You can set specific caching instructions for each resource within an endpoint version. You can configure caching settings if the API Gateway product is in your contract.
cacheKey CacheKey Contains information about cache key settings.
downstreamCaching CacheSettings.downstreamCaching Contains information about downstream caching settings. Downstream caching refers to the caching instructions associated with objects sent with responses toward clients—browsers, mobile devices, or client proxies.
enabled Boolean Whether you enabled caching for the endpoint.
errorCaching CacheSettings.errorCaching Contains information about error caching settings.
maxAge Duration Contains information about the maximum duration to keep content in a cache.
option Enumeration The options for how to pass cached content, either CACHE to enable caching in Akamai platform servers according to the instructions you specify, BYPASS_CACHE to disallow caching in Akamai platform servers and keep the existing cache entries, NO_STORE to disallow caching in Akamai platform servers and remove the existing cache entries, HONOR_ORIGIN_CACHE_CONTROL to apply caching instructions specified in your origin’s Cache-Control header, HONOR_ORIGIN_EXPIRES to apply caching instructions specified in your origin’s Expires header, or HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES to apply caching instructions specified in your origin’s Cache-Control and Expires headers.
resources CacheSettings.resources Contains information about caching settings for each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
serveStale Boolean, Null Whether to serve stale responses when the origin is unreachable and content revalidation isn’t possible.
CacheSettings.downstreamCaching: Contains information about downstream caching settings. Downstream caching refers to the caching instructions associated with objects sent with responses toward clients—browsers, mobile devices, or client proxies.
headers Enumeration The policy for sending headers downstream, either CACHE_CONTROL_AND_EXPIRES to send both Cache-Control and Expires headers, CACHE_CONTROL to send only the Cache-Control header, EXPIRES to send only the Expires header, or SAME_AS_ORIGIN to send the same headers as your origin.
lifetime Enumeration The cache lifetime policy, either SMALLER_VALUE for a value smaller than specified in the origin header or the remaining edge TTL, GREATER_VALUE for a value greater than specified in the origin header or the remaining edge TTL, REMAINING_EDGE_TTL for a remaining edge TTL, FULL_EDGE_TTL for a full edge TTL, FIXED_VALUE for a value that you specify, or CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL for calculating the maximum age from the origin Cache-Control header.
markAsPrivate Boolean, Null Whether to disallow storing responses in a shared cache. This is useful when you want to set a maximum age for the end client, but have shared caches not store the response.
maxAge Duration Contains information about the maximum duration to keep content in a cache.
option Enumeration The option for downstream caching, either ALLOW_CACHING to allow downstream caching, ALLOW_CACHING_REQUIRES_REVALIDATION to allow downstream caching, but require origin revalidation, NOT_ALLOW_CACHING to disallow downstream caching, PASS_CACHEABILITY_HEADERS_FROM_ORIGIN to pass cacheability headers from your origin, or DO_NOT_SEND_HEADERS to disallow sending headers and apply browser defaults.
CacheSettings.errorCaching: Contains information about error caching settings.
enabled Boolean Whether you enabled error caching.
maxAge Duration Contains information about the maximum duration to keep error responses in a cache.
preserveStale Boolean, Null Whether to preserve stale responses when the origin is unreachable and content revalidation isn’t possible.
CacheSettings.resources: Contains information about caching settings for each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
cacheKey CacheKey Contains information about cache key settings.
inheritsFromEndpoint Boolean Whether the resource inherits the top-level API caching settings.
maxAge Duration Contains information about the maximum duration of keeping content in a cache. If set, overwrites the max age instructions set at the endpoint level.
option Enumeration The resource caching option, either CACHE to enable caching in Akamai platform servers according to the instructions you specify, BYPASS_CACHE to send requests straight to origin and disallow caching in downstream caches, NO_STORE to disallow caching in Akamai platform servers, HONOR_ORIGIN_CACHE_CONTROL to apply caching instructions specified in your origin’s Cache-Control header, HONOR_ORIGIN_EXPIRES to apply caching instructions specified in your origin’s Expires header, or HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES to apply caching instructions specified in your origin’s Cache-Control and Expires headers. If set, overwrites the caching instructions set at the endpoint level.
serveStale Boolean Whether to serve stale objects when the origin is unreachable and content revalidation is not possible.
{apiResourceId} CacheSettings.resources.{apiResourceId} Contains information about caching settings configured for a resource within your API.
CacheSettings.resources.{apiResourceId}: Contains information about caching settings configured for a resource within your API.
enabled Boolean Whether you enabled caching for the resource. If set, overwrites the endpoint-level caching settings.
methods Array Read-only. The methods associated with the resource, either POST, GET, PUT, DELETE, HEAD, OPTIONS, or PATCH.
path String Read-only. The URL path relative to the hostnames on which the resource resides.

GraphQLCacheSettings

Contains information about GraphQL caching settings configured for an endpoint. GraphQL caching settings specify properties such as the query and body parameters that contain GraphQL queries, maximum age of cached content, and downstream cacheability. You can configure GraphQL caching settings if the API Gateway product is in your contract.

Download schema: graphQLDto-schema.json

Sample GET:

{
    "detectError": false,
    "nestingLevel": null,
    "queryParamName": "query",
    "maxQuerySize": null,
    "bodyParamName": "query",
    "cacheOrigin": false,
    "cacheResponseOnError": false,
    "enabled": true,
    "maxAge": {
        "duration": 40,
        "unit": "SECONDS"
    },
    "downstreamCaching": {
        "markAsPrivate": false,
        "headers": "CACHE_CONTROL_AND_EXPIRES",
        "maxAge": null,
        "lifetime": "SMALLER_VALUE",
        "option": "NOT_ALLOW_CACHING"
    }
}

GraphQLCacheSettings members

Member Type Required Description
GraphQLCacheSettings: Contains information about GraphQL caching settings configured for an endpoint. GraphQL caching settings specify properties such as the query and body parameters that contain GraphQL queries, maximum age of cached content, and downstream cacheability. You can configure GraphQL caching settings if the API Gateway product is in your contract.
bodyParamName String, Null The name of the JSON body parameter that contains a GraphQL query in an incoming POST request. If the request’s content type is application/json, this is the name of the key that contains a GraphQL query as its value. If the request’s content type is application/graphql, edge servers treat the entire request body as a GraphQL query.
cacheResponseOnError Boolean, Null Whether edge servers should cache the response to a GraphQL-type request in case errors are present in the response body.
detectError Boolean, Null By default, GraphQL queries return partial data if only a portion of a request fails. In such cases, status codes don’t indicate errors. Instead, an errors array in a response body contains error details. This indicates whether edge servers should inspect the response body for the errors array.
downstreamCaching GraphQLCacheSettings.downstreamCaching Contains information about downstream caching settings. Downstream caching refers to the caching instructions associated with objects sent with responses toward clients—browsers, mobile devices, or client proxies.
enabled Boolean Whether you enabled GraphQL caching for the endpoint.
maxAge Duration Contains information about the maximum duration to keep content in a cache.
maxQuerySize Integer The maximum size of the query. A post body or a get response can’t exceed 4 KBs.
nestingLevel String The number of supported nesting levels within a query. The maximum number is 100.
queryParamName String, Null The name of the query parameter that contains a GraphQL query in an incoming GET or POST request.
GraphQLCacheSettings.downstreamCaching: Contains information about downstream caching settings. Downstream caching refers to the caching instructions associated with objects sent with responses toward clients—browsers, mobile devices, or client proxies.
headers Enumeration The policy for sending headers downstream, either CACHE_CONTROL_AND_EXPIRES to send both Cache-Control and Expires headers, CACHE_CONTROL to send only the Cache-Control header, EXPIRES to send only the Expires header, or SAME_AS_ORIGIN to send the same headers as your origin.
lifetime Enumeration The cache lifetime policy, either SMALLER_VALUE for a value smaller than specified in the origin header or the remaining edge TTL, GREATER_VALUE for a value greater than specified in the origin header or the remaining edge TTL, REMAINING_EDGE_TTL for a remaining edge TTL, FULL_EDGE_TTL for a full edge TTL, FIXED_VALUE for a value that you specify, or CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL for calculating the maximum age from the origin Cache-Control header.
markAsPrivate Boolean, Null Whether to disallow storing responses in a shared cache. This is useful when you want to set a maximum age for the end client, but have shared caches not store the response.
maxAge Duration Contains information about the maximum duration to keep content in a cache.
option Enumeration The option for downstream caching, either ALLOW_CACHING to allow downstream caching, ALLOW_CACHING_REQUIRES_REVALIDATION to allow downstream caching, but require origin revalidation, NOT_ALLOW_CACHING to disallow downstream caching, PASS_CACHEABILITY_HEADERS_FROM_ORIGIN to pass cacheability headers from your origin, or DO_NOT_SEND_HEADERS to disallow sending headers and apply browser defaults.

ApiPrivacySettings

Contains information about API privacy settings configured for an endpoint and its associated resources. You can configure API privacy settings if the API Gateway product is in your contract.

Download schema: apiPrivacySettingsDto-schema.json

Sample GET:

{
    "public": false,
    "resources": {
        "2926712": {
            "public": false,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": {
                "GET": {
                    "public": false,
                    "inheritsFromEndpoint": true
                },
                "POST": {
                    "public": false,
                    "inheritsFromEndpoint": true
                }
            }
        }
    }
}

ApiPrivacySettings members

Member Type Required Description
ApiPrivacySettings: Contains information about API privacy settings configured for an endpoint and its associated resources. You can configure API privacy settings if the API Gateway product is in your contract.
public Boolean Whether the endpoint is public, that is, accessible without an API key.
resources ApiPrivacySettings.resources Contains information about each resource’s privacy settings.
ApiPrivacySettings.resources: Contains information about each resource’s privacy settings.
{apiResourceId} ApiPrivacySettings.resources.{apiResourceId} Contains information about a resource’s privacy settings.
ApiPrivacySettings.resources.{apiResourceId}: Contains information about a resource’s privacy settings.
inheritsFromEndpoint Boolean Read-only. Whether the resource inherits the top-level API privacy settings.
methods ApiPrivacySettings.resources.{apiResourceId}.methods The methods associated with the resource, either POST, GET, PUT, DELETE, HEAD, OPTIONS, or PATCH.
notes String Read-only. The notes describing the purpose of the resource.
path String Read-only. The URL path relative to the hostnames on which the resource resides.
public Boolean Whether the resource is public, that is, accessible without an API key.
ApiPrivacySettings.resources.{apiResourceId}.methods: The methods associated with the resource, either POST, GET, PUT, DELETE, HEAD, OPTIONS, or PATCH.
{GET\|POST\|PUT\|DELETE\|HEAD\|OPTIONS\|PATCH} ApiPrivacySettings.resources.{apiResourceId}.methods.{GET|POST|PUT|DELETE|HEAD|OPTIONS|PATCH} Contains information about a method’s privacy settings.
ApiPrivacySettings.resources.{apiResourceId}.methods.{GET|POST|PUT|DELETE|HEAD|OPTIONS|PATCH}: Contains information about a method’s privacy settings.
inheritsFromEndpoint Boolean Read-only. Whether the method inherits the top-level API privacy settings.
public Boolean Whether the method is public, that is, accessible without an API key.

RoutingSettings

Contains information about an incoming request’s routing settings configured for an endpoint. Routing settings specify routing, forwarding, and SureRoute instructions for an endpoint version. You can configure routing settings if the API Gateway product is in your contract and you’re taking part in the API Gateway beta program.

Download schema: routing-schema.json

Sample GET:

{
    "rules": [
        {
            "name": "/test.html",
            "description": null,
            "forwardPath": "DEFAULT_PATH",
            "origin": "rapidzik.hereokuapp.com",
            "customForwardPath": null,
            "forwardPort": null,
            "forwardHostHeader": null,
            "conditions": [
                {
                    "type": "METHOD",
                    "operator": "IS",
                    "value": "GET"
                },
                {
                    "type": "HOSTNAME",
                    "operator": "IS",
                    "value": "*.www.sqa.rapid.com"
                }
            ]
        }
    ],
    "sureRoute": [
        {
            "origin": "rapidzik.hereokuapp.com",
            "testObjectPath": "/test.html",
            "forceSslForward": false,
            "raceKeyMode": "CUSTOM",
            "raceKey": "some-custom-key.com",
            "raceStatTtl": {
                "duration": 30,
                "unit": "MINUTES"
            }
        }
    ]
}

RoutingSettings members

Member Type Required Description
RoutingSettings: Contains information about an incoming request’s routing settings configured for an endpoint. Routing settings specify routing, forwarding, and SureRoute instructions for an endpoint version. You can configure routing settings if the API Gateway product is in your contract and you’re taking part in the API Gateway beta program.
rules RoutingSettings.rules[] Consists of criteria that identifies which incoming requests to process for an endpoint.
sureRoute RoutingSettings.sureRoute[] Specifies the SureRoute settings configured for an endpoint.
RoutingSettings.rules[]: Consists of criteria that identifies which incoming requests to process for an endpoint.
conditions RoutingSettings.rules[].conditions[] A set of criteria that determines the action the API takes when an incoming request for an endpoint meets the criteria.
customForwardPath String, Null Specifies the request’s new forward path when the forwardPath value is CUSTOM_PATH.
description String, Null Descriptive text for the rule.
forwardHostHeader String, Null Specifies the request’s new host header.
forwardPath Enumeration Specifies the request’s forward path mode, either CUSTOM_PATH or DEFAULT_PATH.
forwardPort Number, Null Specifies the request’s new port number.
name String A unique identifier for the rule.
origin String Specifies the request’s new origin server destination.
RoutingSettings.rules[].conditions[]: A set of criteria that determines the action the API takes when an incoming request for an endpoint meets the criteria.
operator Enumeration Compares the incoming request to the type and value members. The only value currently available is IS.
type Enumeration Specifies the query string value to match. Use RESOURCE to match on a resource like JSON or XML. Use METHOD to match on the request method in the request header. Use HOSTNAME to match on the hostname in the request’s incoming Host header.
value String, Number Specifies the string you’re trying to match. For flexible URL path matching, use * and ?.
RoutingSettings.sureRoute[]: Specifies the SureRoute settings configured for an endpoint.
forceSslForward Boolean Forces SureRoute to use SSL when requesting the test object from your alternate origin server. Set the value to true when the origin doesn’t respond to HTTP requests or responds with a redirect to HTTPS.
origin String Specifies the origin server where the SureRoute definitions are applied.
raceKey String, Null Specifies a custom key to store race results.
raceKeyMode Enumeration, Null Specifies which hostname to use to store race results. Either DEFAULT for the race destination’s hostname or CUSTOM for a custom hostname.
raceStatTtl RoutingSettings.sureRoute[].raceStatTtl Specifies the TTL to hold the SureRoute race results. Races only run when certain thresholds exceed their limit. If traffic drops below the thresholds, the edge server continues to use the last race results to determine the optimal route until this TTL expires. When traffic next increases over the thresholds, the edge server uses the direct route until SureRoute determines a new optimal route.
testObjectPath Null Specifies the test object’s path on your alternate origin server. SureRoute uses this path in races to test routes. For example, /akamai/testobject.html.
RoutingSettings.sureRoute[].raceStatTtl: Specifies the TTL to hold the SureRoute race results. Races only run when certain thresholds exceed their limit. If traffic drops below the thresholds, the edge server continues to use the last race results to determine the optimal route until this TTL expires. When traffic next increases over the thresholds, the edge server uses the direct route until SureRoute determines a new optimal route.
duration Integer The maximum duration of content caching in the selected unit of time.
unit Enumeration The unit of time for content caching, either DAYS, HOURS, MINUTES, or SECONDS.

GzipSettings

Contains information about GZIP compression settings configured for an endpoint. This feature ensures proper content compression for bandwidth savings. You can configure GZIP compression settings if the API Gateway product is in your contract.

Download schema: gzipDto-schema.json

Sample GET:

{
    "compressResponse": "ALWAYS"
}

GzipSettings members

Member Type Required Description
GzipSettings: Contains information about GZIP compression settings configured for an endpoint. This feature ensures proper content compression for bandwidth savings. You can configure GZIP compression settings if the API Gateway product is in your contract.
compressResponse Enumeration The type of GZIP compression configuration that you select, either ALWAYS for compressing all responses without restrictions, NEVER for no GZIP compression, or SAME_AS_ORIGIN for the same compression rules as specified for your origin server using the Content-Encoding header.

CorsSettings

Contains information about cross-origin resource sharing (CORS) settings configured for an endpoint. CORS enables clients to request restricted resources from external domains outside the domain that served the first resource. You can configure CORS settings if the API Gateway product is in your contract.

Download schema: corsDto-schema.json

Sample GET:

{
    "enabled": true,
    "allowCredentials": false,
    "preflightMaxAge": 86400,
    "allowedOrigins": [
        "*"
    ],
    "allowedHeaders": [
        "Akamai-Cors-Allowed"
    ],
    "allowedMethods": [
        "GET"
    ],
    "exposedHeaders": [
        "Akamai-Cors-Exposed"
    ]
}

CorsSettings members

Member Type Required Description
CorsSettings: Contains information about cross-origin resource sharing (CORS) settings configured for an endpoint. CORS enables clients to request restricted resources from external domains outside the domain that served the first resource. You can configure CORS settings if the API Gateway product is in your contract.
allowCredentials Boolean Whether you allow credentialed HTTP requests to access your resources. Credentials may be cookies or TLS client certificates.
allowedHeaders Array The HTTP header names that you allow using the Access-Control-Allow-Headers header.
allowedMethods Array The HTTP methods that you allow using the Access-Control-Allow-Methods header, either GET, PUT, POST, DELETE, OPTIONS, PATCH, or HEAD.
allowedOrigins Array The origin hostnames that you allow using the Access-Control-Allow-Origin header. The wildcard (*) means all hostnames.
enabled Boolean Whether you enabled CORS for the endpoint.
exposedHeaders Array The headers that you expose using the Access-Control-Expose-Headers header. By exposing a header, you allow clients to access it.
preflightMaxAge Integer The maximum time in seconds for caching responses to preflight requests.

ErrorSettings

Contains information about error response settings configured for an endpoint. If an inbound client request fails, API Gateway returns a default error response with a JSON-formatted description and a status code. You can customize the descriptions, status codes, and headers of selected error responses to help API consumers identify the cause of an error and troubleshoot effectively. You can configure error response settings if the API Gateway product is in your contract.

Download schema: errorResponsesDto-schema.json

Sample GET:

{
    "API_KEY_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The API key you provided does not exist.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "API_KEY_FORBIDDEN": {
        "overrideDefaults": false,
        "statusCode": 403,
        "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "QUOTA_EXCEEDED": {
        "overrideDefaults": false,
        "statusCode": 429,
        "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_SIGNATURE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    },
    "JWT_CLAIM_VALUE_INVALID": {
        "overrideDefaults": false,
        "statusCode": 401,
        "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }",
        "headers": [
            {
                "name": "Content-Type",
                "value": "application/problem+json"
            }
        ]
    }
}

ErrorSettings members

Member Type Required Description
ErrorSettings: Contains information about error response settings configured for an endpoint. If an inbound client request fails, API Gateway returns a default error response with a JSON-formatted description and a status code. You can customize the descriptions, status codes, and headers of selected error responses to help API consumers identify the cause of an error and troubleshoot effectively. You can configure error response settings if the API Gateway product is in your contract.
{errorType} ErrorSettings.{errorType} Contains error responses, keyed by different error types. For possible values, see ErrorSettings.{errorType} values.
ErrorSettings.{errorType}: Contains error responses, keyed by different error types. For possible values, see ErrorSettings.{errorType} values.
body String, Null The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets ({}).
headers ErrorSettings.{errorType}.headers[] The list of HTTP headers to return in case of the error. By default, API Gateway returns the Content-Type header with a value of application/problem+json which reflects the default response body. If the body member indicates a different content type, set the Content-Type header to the appropriate value. For example, in case of an XML body, the value could be application/problem+xml.
overrideDefaults Boolean Read-only. Whether you overrode the default error response.
statusCode Integer The status code to return in case of the error.
ErrorSettings.{errorType}.headers[]: The list of HTTP headers to return in case of the error. By default, API Gateway returns the Content-Type header with a value of application/problem+json which reflects the default response body. If the body member indicates a different content type, set the Content-Type header to the appropriate value. For example, in case of an XML body, the value could be application/problem+xml.
name String The name of the HTTP header to return in case of the error.
value String The value of the HTTP header to return in case of the error.

ErrorSettings.{errorType} values

This section lists all available error type values that you can enter for the type URL parameter in the Get an error response and Edit an error response operations. The ErrorSettings object uses these values as keys indicating different types of customizable errors.

Value Description
API_KEY_FORBIDDEN The API key in the request doesn’t have access to the requested resource.
API_KEY_INVALID The API key in the request doesn’t exist.
JWT_CLAIM_VALUE_INVALID The JWT claim value didn’t pass the JWT validation.
JWT_SIGNATURE_INVALID The JSON web signature in JWT didn’t pass the JWT validation.
QUOTA_EXCEEDED The quota limit for the API key included in the request has been exceeded during the current time period.

JwtSettings

Contains information about JSON web token (JWT) validation settings configured for an endpoint. JWT is an open standard (RFC 7519) that defines a compact and self-contained method for securely transmitting JSON-encoded information between parties. It’s often used for authentication purposes. You can configure JWT validation settings if the API Gateway product is in your contract.

Download schema: jwtDto-schema.json

Sample GET:

{
    "enabled": true,
    "settings": {
        "location": "HEADER",
        "paramName": "Authorization",
        "clockSkew": 10,
        "validation": {
            "rsaPublicKeyB": null,
            "rsaPublicKeyA": {
                "name": "publicKey",
                "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----"
            },
            "claims": [
                {
                    "name": "aud",
                    "validate": false,
                    "required": false,
                    "type": "ARRAY",
                    "value": []
                },
                {
                    "name": "iss",
                    "validate": true,
                    "required": false,
                    "value": "Akamai",
                    "type": "STRING"
                },
                {
                    "name": "sub",
                    "validate": true,
                    "required": false,
                    "value": "^[a-zA-Z0-9_]*$",
                    "type": "REGEX"
                },
                {
                    "name": "exp",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "nbf",
                    "validate": true,
                    "required": false,
                    "value": null,
                    "type": "TIMESTAMP"
                },
                {
                    "name": "dept",
                    "validate": true,
                    "required": false,
                    "value": "IT",
                    "type": "STRING"
                },
                {
                    "name": "roles",
                    "validate": true,
                    "required": false,
                    "type": "ARRAY",
                    "value": [
                        "admin",
                        "premium_user",
                        "regular_user"
                    ]
                }
            ]
        }
    },
    "resources": {
        "2926712": {
            "enabled": true,
            "path": "/book/{bookId}",
            "inheritsFromEndpoint": true,
            "notes": "A book item within the bookstore API.",
            "methods": [
                "POST",
                "GET"
            ]
        },
        "2935128": {
            "enabled": true,
            "path": "/user/{userId}",
            "inheritsFromEndpoint": true,
            "notes": "A registered bookstore user.",
            "methods": [
                "POST",
                "GET",
                "PUT"
            ]
        },
        "2935139": {
            "enabled": true,
            "path": "/magazine/{magazineId}",
            "inheritsFromEndpoint": true,
            "notes": "A magazine item within the bookstore API.",
            "methods": [
                "GET"
            ]
        }
    }
}

JwtSettings members

Member Type Required Description
JwtSettings: Contains information about JSON web token (JWT) validation settings configured for an endpoint. JWT is an open standard (RFC 7519) that defines a compact and self-contained method for securely transmitting JSON-encoded information between parties. It’s often used for authentication purposes. You can configure JWT validation settings if the API Gateway product is in your contract.
enabled Boolean Whether you enabled JWT validation for the endpoint.
resources JwtSettings.resources Contains information about JWT validation settings for each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
settings JwtSettings.settings Contains information about endpoint-level JWT settings.
JwtSettings.resources: Contains information about JWT validation settings for each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
{apiResourceId} JwtSettings.resources.{apiResourceId} Contains information about JWT settings configured for a resource.
JwtSettings.resources.{apiResourceId}: Contains information about JWT settings configured for a resource.
enabled Boolean Whether you enabled JWT validation for the resource.
inheritsFromEndpoint Boolean Read-only. Whether the resource inherits the top-level JWT settings.
methods Array Read-only. The methods associated with the resource, either POST, GET, PUT, DELETE, HEAD, OPTIONS, or PATCH.
notes String, Null Read-only. The description of the resource.
path String Read-only. The URL path relative to the hostnames on which the resource resides.
JwtSettings.settings: Contains information about endpoint-level JWT settings.
clockSkew Integer The allowed time difference in seconds between the server and client clocks when validating the exp and nbf JWT claims. The recommended value is 10.
location Enumeration The location of the JWT in incoming requests, either HEADER for a request header, COOKIE, or QUERY for a query parameter.
paramName String The name of the header, cookie, or query parameter that you specified for the JWT location.
validation JwtSettings.settings.validation, Null Contains information about the JWT validation details, such as RSA public keys and JWT claims.
JwtSettings.settings.validation: Contains information about the JWT validation details, such as RSA public keys and JWT claims.
claims JwtSettings.settings.validation.claims[] The collection of custom and reserved JWT claims that API Gateway validates in incoming requests. Reserved claims are predefined (as per RFC 7519) and serve as a starting point for your JWT claim configuration. Custom claims refer to both private and public claims and you can define them at will. To prevent claim name collisions, you can register public claims at the IANA JSON Web Token Claims registry or give them collision-resistant names, such as universally unique identifiers (UUIDs) or object identifiers (OIDs). Private claims usually contain information specific to your organization, such as internal user ID. They’re different from public claims as they’re not registered at the IANA JSON Web Token Claims registry, and should be used with care.
jwks JwtSettings.settings.validation.jwks, Null Contains information about a JSON web key set to load public keys from. Specify this object only if the corresponding method member is JWKS.
method Enumeration The method of delivering RSA public keys for JWT validation. Either INLINE_PUBLIC_KEY for periodical manual uploads of public keys, or JWKS for a dynamic upload of public keys from specific JWKS URIs.
rsaPublicKeyA JwtSettings.settings.validation.rsaPublicKeyA, Null Contains information about the primary RSA public key that you use for JWT validation. The value is null if the corresponding method member is JWKS.
rsaPublicKeyB JwtSettings.settings.validation.rsaPublicKeyB, Null Contains information about the backup RSA public key for use during key rotations.
JwtSettings.settings.validation.claims[]: The collection of custom and reserved JWT claims that API Gateway validates in incoming requests. Reserved claims are predefined (as per RFC 7519) and serve as a starting point for your JWT claim configuration. Custom claims refer to both private and public claims and you can define them at will. To prevent claim name collisions, you can register public claims at the IANA JSON Web Token Claims registry or give them collision-resistant names, such as universally unique identifiers (UUIDs) or object identifiers (OIDs). Private claims usually contain information specific to your organization, such as internal user ID. They’re different from public claims as they’re not registered at the IANA JSON Web Token Claims registry, and should be used with care.
name String The name of the JWT claim. For reserved claims, it can either be aud to identify the audience that the JWT is intended for, iss to identify the issuer of the JWT claim, sub to identify the subject of the JWT, exp to identify the expiration time on or after which the token isn’t accepted for processing, or nbf to identify the time before which the token isn’t accepted for processing. For custom claims, you can use all alphanumeric characters and these characters: [-_]. The value isn’t case-sensitive for reserved claims and case-sensitive for custom claims. For example, if you enter AUD for a value, the system automatically converts it to aud, but scope and SCOPE represent two different values.
required Boolean Whether the presence of the JWT claim is needed in incoming requests.
type Enumeration The data type of the JWT claim’s value, either ARRAY, STRING, INTEGER, BOOLEAN, or REGEX if it’s a regular expression.
validate Boolean Whether to validate the value of the JWT claim at the edge.
value Array, String, Boolean, Number, Null The value of the JWT claim, represented as a string, boolean or number if it’s a single value, or as an array if there’s more than one value. If the value is a string, it cannot exceed 200 characters. If the value is an array, it cannot contain more than 100 items.
JwtSettings.settings.validation.jwks: Contains information about a JSON web key set to load public keys from. Specify this object only if the corresponding method member is JWKS.
certChain JwtSettings.settings.validation.jwks.certChain Contains information about a PEM file with the certificate to use for validation of hostnames included in the hosts member.
hosts Array The list of hostnames that store JSON web key sets. Each hostname needs to be digitally signed with the certificate chain described in the corresponding certChain field.
publicKeyMaxAge JwtSettings.settings.validation.jwks.publicKeyMaxAge Contains information about the maximum duration to keep a public key in a cache.
JwtSettings.settings.validation.jwks.certChain: Contains information about a PEM file with the certificate to use for validation of hostnames included in the hosts member.
content String The contents of the PEM file that contains the certificate.
name String The name of the PEM file that contains the certificate.
JwtSettings.settings.validation.jwks.publicKeyMaxAge: Contains information about the maximum duration to keep a public key in a cache.
duration Integer The maximum duration of content caching in the selected unit of time.
unit Enumeration The unit of time for content caching, either DAYS, HOURS, MINUTES, or SECONDS.
JwtSettings.settings.validation.rsaPublicKeyA: Contains information about the primary RSA public key that you use for JWT validation. The value is null if the corresponding method member is JWKS.
content String The content of the file containing the primary RSA key.
name String The name of the file containing the primary RSA key.
JwtSettings.settings.validation.rsaPublicKeyB: Contains information about the backup RSA public key for use during key rotations.
content String The content of the file containing the backup RSA key.
name String The name of the file containing the backup RSA key.

OauthScopeDefinition

Contains information about an OAuth scope.

Download schema: oauthScope-schema.json

Sample GET:

{
    "name": "http://bookstore.api.com/bookstore/users/id.read",
    "description": "Allow a client app to view user IDs."
}

OauthScopeDefinition members

Member Type Required Description
OauthScopeDefinition: Contains information about an OAuth scope.
description String The description of the scope.
name String The name of the scope.

OauthScopesAssignments

Contains information about OAuth scopes configured for an endpoint. You can configure OAuth scopes if the API Gateway product is in your contract and you’re taking part in the API Gateway beta program.

Download schema: oauthDto-schema.json

Sample GET:

{
    "enabled": true,
    "resources": {
        "100": {
            "path": "/books/{bookId}",
            "notes": null,
            "scopes": [
                "admin:calendar"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:calendar"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": [
                        "write:calendar"
                    ]
                }
            }
        },
        "101": {
            "path": "/users/{userId}",
            "notes": null,
            "scopes": [],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": [
                        "read:mail"
                    ]
                },
                "POST": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        },
        "102": {
            "path": "/contacts",
            "notes": "Core contacts API resource",
            "scopes": [
                "contacts"
            ],
            "methods": {
                "GET": {
                    "notes": null,
                    "scopes": []
                },
                "PUT": {
                    "notes": null,
                    "scopes": []
                },
                "DELETE": {
                    "notes": null,
                    "scopes": []
                }
            }
        }
    }
}

OauthScopesAssignments members

Member Type Required Description
OauthScopesAssignments: Contains information about OAuth scopes configured for an endpoint. You can configure OAuth scopes if the API Gateway product is in your contract and you’re taking part in the API Gateway beta program.
enabled Boolean Whether you enabled the OAuth scopes assignment for the endpoint.
resources OauthScopesAssignments.resources Contains information about OAuth scopes assigned to each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
OauthScopesAssignments.resources: Contains information about OAuth scopes assigned to each resource associated with an endpoint version. The resources are available through a map of resourceId keys.
{apiResourceId} OauthScopesAssignments.resources.{apiResourceId} Contains information about OAuth scopes assigned to a resource.
OauthScopesAssignments.resources.{apiResourceId}: Contains information about OAuth scopes assigned to a resource.
methods OauthScopesAssignments.resources.{apiResourceId}.methods Contains information about OAuth scopes assigned to each method associated with a resource. The methods are available through a map of apiResourceMethod keys.
notes String, Null Read-only. The description of the resource.
path String Read-only. The URL path relative to the hostnames on which the resource resides.
scopes Array The scopes that define the level of client apps’ access to the resource and its associated methods.
OauthScopesAssignments.resources.{apiResourceId}.methods: Contains information about OAuth scopes assigned to each method associated with a resource. The methods are available through a map of apiResourceMethod keys.
{apiResourceMethod} OauthScopesAssignments.resources.{apiResourceId}.methods.{apiResourceMethod} Contains information about OAuth scopes assigned to a method.
OauthScopesAssignments.resources.{apiResourceId}.methods.{apiResourceMethod}: Contains information about OAuth scopes assigned to a method.
notes String, Null Read-only. The description of the method.
scopes Array The scopes that define the level of client apps’ access to the method.

Category

Contains information about an endpoint category.

Download schema: categoryDto-schema.json

Sample GET response:

{
    "createDate": "2019-06-17T12:40:14+0000",
    "updateDate": "2019-06-17T12:40:14+0000",
    "apiCategoryId": 9902,
    "apiCategoryName": "Sales",
    "apiCategoryDescription": "The applications related to the Sales department.",
    "link": "/api-definitions/v2/categories/9902",
    "lockVersion": 0
}

Category members

Member Type Required Description
Category: Contains information about an endpoint category.
apiCategoryDescription String, Null The description of the category that you may use to tag related endpoints. If you specify null or an empty string in the request, the JSON response doesn’t include this field.
apiCategoryId Integer Read-only. The unique identifier for the category.
apiCategoryName String The unique-per-account name of the category. Any empty value reflects back as an __UNCATEGORIZED__ keyword.
createDate String Read-only. The ISO–6801 timestamp indicating when you created the category.
createdBy String The identifier for the user who created the category.
link String The location of the navigable resource within this API, for use by API clients.
lockVersion Number The identifier used for optimistic locking. See Concurrency control for details.
updateDate String Read-only. The ISO–6801 timestamp indicating when you last modified the category.
updatedBy String The identifier for the user who last modified the category.
usageCount Integer The number of endpoints that share the category.

AcgPair

Contains information about a pairing of contract and group under which you provision the security and delivery settings for an endpoint.

Download schema: aCGPickerRow-schema.json

Sample GET response:

[
    {
        "displayName": "Bookstore Users",
        "acgId": "3-1Cgoa",
        "groupId": 58220,
        "contractId": "3-1Cgoa"
    },
    {
        "displayName": "Bookstore Users - Developers",
        "acgId": "3-1Cgoa.G75683",
        "groupId": 75683,
        "contractId": "3-1Cgoa"
    }
]

AcgPair members

Member Type Required Description
AcgPair: Contains information about a pairing of contract and group under which you provision the security and delivery settings for an endpoint.
acgId String The unique identifier for the pairing of contract and group.
contractId String The unique identifier for the Akamai contract within the pairing.
displayName String The descriptive name for the pairing of contract and group.
groupId Number The unique identifier for the group within the pairing.

CacheKey

Contains information about the cache key settings configured for an endpoint or resource.

Download schema: cacheKeyDto-schema.json

CacheKey members

Member Type Required Description
CacheKey: Contains information about the cache key settings configured for an endpoint or resource.
customize Boolean Whether you want to customize cache key settings for an endpoint.
exactMatch Boolean, Null Whether query parameters in incoming requests should match exactly the string items in the corresponding parameters member. If false, even the parameters that just begin with the strings you specified in the parameters member will match. This is only relevant if you set the corresponding option member to either INCLUDE or IGNORE.
option Enumeration, Null The option for cache key customization. For possible values, see CacheKey.option values. If you select INCLUDE or IGNORE, also specify the corresponding parameters member.
parameters Array, Null The list of parameters to include in or exclude from cache keys, depending on the option you selected. This is only relevant if you set the corresponding option member to either INCLUDE or IGNORE.

CacheKey.option values

This section describes each available cache key customization option.

Value Description
IGNORE Exclude only specific query parameters from a cache key.
IGNORE_ALL Exclude all query parameters from a cache key.
INCLUDE Include only specific query parameters as part of a cache key.
INCLUDE_ALL_ALPHABETIZE_ORDER Include all query parameters as part of a cache key and sort them alphabetically.
INCLUDE_ALL_PRESERVE_ORDER Include all query parameters as part of a cache key and keep their default order.

Duration

Contains information about the maximum duration to keep a public key in a cache.

Download schema: durationDto-schema.json

Duration members

Member Type Required Description
Duration: Contains information about the maximum duration to keep a public key in a cache.
duration Integer The maximum duration of content caching in the selected unit of time.
unit Enumeration The unit of time for content caching, either DAYS, HOURS, MINUTES, or SECONDS.

ImportFile

Contains information about an API definition file to import.

Download schema: importFileDto-schema.json

Sample POST request:

{
    "importFileFormat": "swagger",
    "importFileSource": "BODY_BASE64",
    "importFileContent": "ewogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAidGl0bGUiOiAiQm9va3N0b3JlIEFQSSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gQVBJIGZvciBib29rc3RvcmUgdXNlcnMgYWxsb3dpbmcgdGhlbSB0byByZXRyaWV2ZSBib29rIGl0ZW1zLCBhZGQgbmV3IGl0ZW1zIChhZG1pbiB1c2VycyksIGFuZCBtb2RpZnkgZXhpc3RpbmcgaXRlbXMuIgogIH0sCiAgImhvc3QiOiAiYm9va3N0b3JlLmFwaS5ha2FtYWkuY29tIiwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzZWN1cml0eURlZmluaXRpb25zIjogewogICAgImFwaV9rZXkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogImFwaUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9CiAgfSwKICAiYmFzZVBhdGgiOiAiL2Jvb2tzdG9yZSIsCiAgInBhdGhzIjogewogICAgIi9ib29rcyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdHMgYWxsIGJvb2sgaXRlbXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0Qm9va3MiLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCb29rIHJlc3BvbnNlLiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgYm9vayBpdGVtIGluIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAicG9zdEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiYm9vayIsCiAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBib29rIHRvIGFkZCB0byB0aGUgYm9va3N0b3JlLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9uZXdCb29rIgogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayByZXNwb25zZS4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9ib29rIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9ib29rcy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgYm9vayBpdGVtLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3BlY2lmaWMgSUQgb2YgYSBib29rIGl0ZW0gdG8gcmV0dXJuLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICB9XSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJvb2sgcmVzcG9uc2UuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlcyBhIGJvb2sgaXRlbSBmcm9tIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQm9vayIsCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicGFyYW1ldGVycyI6IFt7CiAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBzcGVjaWZpYyBJRCBvZiBhIGJvb2sgaXRlbSB0byBkZWxldGUuIiwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayBkZWxldGVkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==",
    "contractId": "3-13H55B5",
    "groupId": 44681
}

ImportFile members

Member Type Required Description
ImportFile: Contains information about an API definition file to import.
contractId String The unique identifier for the contract under which to provision the endpoint.
groupId Number The unique identifier for the group under which to provision the endpoint.
importFileContent String The content of the API definition file encoded in Base64 (see RFC 4648 for details). Specify this only if you set the corresponding importFileSource to BODY_BASE64.
importFileFormat Enumeration The format of the API definition file, either raml or swagger. You cam import RAML 0.8 files and Swagger 2.0 or 3.0 files.
importFileSource Enumeration The location of the API definition file, either URL if you store the file on the web, or BODY_BASE64 if you encode the file contents in the request body.
importUrl String The URL from which to get the API definition file. Specify this only if you set the corresponding importFileSource to URL.
root String If the import file located at the importUrl is a ZIP archive, this identifies the API definition’s filename within the archive.

ApiVersionDetails

Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.

Download schema: apiVersionInfo-schema.json

ApiVersionDetails members

Member Type Required Description
ApiVersionDetails: Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.
location Enumeration The location of the API version value in an incoming request. Either HEADER, BASE_PATH, or QUERY parameter.
parameterName String The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding location member is either HEADER or QUERY.
value String The expected API version value in an incoming request.

HostAcgPair

Contains information about a hostname and access control group where the hostname is registered.

Download schema: acgsHost-schema.json

Sample GET response:

[
    {
        "hostname": "www.bookstore.api.akamai.com",
        "acgId": "WAA-3-1AINU1T",
        "contractId": "3-1AINU1T"
    },
    {
        "hostname": "www.bookstore2.api.akamai.com",
        "acgId": "WAA-3-WNNG6F",
        "contractId": "3-WNNG6F"
    }
]

HostAcgPair members

Member Type Required Description
HostAcgPair: Contains information about a hostname and access control group where the hostname is registered.
acgId String The unique identifier for the access control group where the hostname is registered.
contractId String The unique identifier for the Akamai contract within the access control group.
hostname String The hostname that may receive traffic for an endpoint.

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

When the API encounters a problem, it responds with an object that adheres to the HTTP problem details standard. This sample shows an authorization error, where the type value is a non-navigable URI, and the instance may be useful if you need to communicate about the problem with your Akamai support representative:

{
    "type": "https://problems.luna.akamaiapis.net/api-definitions/error-types/UNAUTHORIZED",
    "title": "Unauthorized Access/Action",
    "status": 403,
    "detail": "You don't have access to the end point.",
    "instance": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749"
}

HTTP status codes

This section lists the full range of response codes the API may generate:

Code Description
200 The operation was successful.
201 Resource successfully created.
204 Successfully processed request.
400 Bad request.
401 Authentication failure.
403 Access is forbidden.
404 Resource not found.
405 Method not supported.
409 Conflict with current state of resource.
412 An Etag or If-Match header doesn’t match, indicating the content has been modified. See Concurrency control for more information.
500 Internal server error.

Error types

This table lists each of the API’s error type strings you may encounter. Problem responses provide this data as the type member, each with this common URL prefix: https://problems.luna.akamaiapis.net/api-definitions/error-types/

Error type Description
activation-for-other-version-already-pending You cannot activate the endpoint version because another version’s activation is pending on the Akamai network.
activation-for-path-already-pending At least one base path and hostname combination that you specified for an endpoint is currently being activated on the Akamai network.
allow-any-domain-is-not-allowed For the CORS configuration, you cannot use a wildcard (*) in the allowedOrigins field when the allowCredentials field is set to true.
api-privacy-key-location-not-set For the API privacy configuration, to define an endpoint version as private, you need to first specify the apiKeyLocation value for the endpoint version.
empty-contract You need to specify a contract ID when creating or cloning an endpoint.
empty-group You need to specify a Control Center group ID when creating or cloning an endpoint.
empty-hosts You need to include at least one hostname in the apiEndPointHosts array when creating or cloning an endpoint.
endpoint-name-not-unique An endpoint with the name that you specified already exists.
endpoint-invalid-basepath The basePath that you specified doesn’t meet the syntactic requirements for a base path. Ensure that the base path starts with a forward slash (/) and doesn’t end with one.
endpoint-invalid-host At least one element that you included in the apiEndPointHosts array doesn’t meet the syntactic requirements outlined in RFC 952 and RFC 1123.
endpoint-path-already-active At least one base path and hostname combination that you specified is already active on the Akamai network.
endpoint-path-already-used At least one base path and hostname combination that you specified already exists in another endpoint configuration.
endpoint-version-already-active You cannot activate the endpoint version because it’s already active on the Akamai network.
endpoint-version-is-pending You cannot modify the endpoint version because it has pending changes that are being propagated to the Akamai network.
endpoint-version-locked You cannot modify the endpoint version because it has already been activated on the Akamai network.
endpoint-version-not-active You cannot deactivate the endpoint version because it isn’t currently active on the Akamai network.
endpoint-version-not-found You cannot modify the endpoint version because it doesn’t exist.
greater-than-max The numerical JSON value is too large.
import-invalid-syntax The import file that you provided contains syntactic errors. For details on forming an API definition file, see either the Swagger specification or the RAML specification.
import-invalid-schema The import file that you provided isn’t a valid Swagger 2.0 or RAML 0.8 file. For details on forming an API definition file, see either the Swagger specification or the RAML specification.
import-hostnames-mismatch The hostnames in your imported API definition file don’t match the hostnames configured for the endpoint. This is just to inform you that the system didn’t replace the original hostnames.
import-ref-not-found The importUrl that you specified for the import operation doesn’t point to an API definition file.
invalid-category The apiCategoryId that you specified isn’t associated with any endpoints in the system.
invalid-contract The contract ID that you specified when creating or cloning an endpoint doesn’t exist.
invalid-header The HTTP header value provided for the CORS configuration contains invalid characters.
invalid-http-method The JSON value isn’t an HTTP method name string. This is for JSON fields that expect HTTP methods for values.
invalid-json-value The JSON value doesn’t meet the validation criteria for the corresponding JSON field.
invalid-origin The origin hostname doesn’t meet the syntactic requirements outlined in RFC 952 and RFC 1123.
jwt-public-key-duplicated The primary and backup RSA keys uploaded for JWT validation purposes are identical.
less-than-min The numerical JSON value is too small.
multiple-type-parameters-not-supported The system only supports single-type parameters in imported API definitions files.
not-null The JSON value is null, and the corresponding JSON field doesn’t accept null values.
raml-version-not-supported The system doesn’t support the RAML version of your imported API definition file. The currently supported version is RAML 0.8.
required-param-missing The JSON value specified as required in the schema is missing from the request body.
resource-invalid-path The resourcePath that you specified doesn’t meet the syntactic requirements for a path. Ensure that the resource path starts with a forward slash (/) and doesn’t end with one.
resource-name-not-unique A resource with the name that you specified already exists.
resource-not-found The endpoint, version, or resource with the ID that you specified doesn’t exist.
swagger-version-not-supported The system doesn’t support the Swagger version of your imported API definition file. The currently supported version is Swagger 2.0.
type-mismatch The JSON value is of a different data type than expected in the corresponding JSON field.
unrecognized-json-field The JSON field isn’t present in the corresponding JSON schema.