openapi: 3.0.0
info:
title: 'Akamai: API Endpoint Definition Access tokens Endpoints API'
version: '2'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://{hostname}/api-definitions/v2
tags:
- name: Endpoints
paths:
/endpoints:
post:
description: 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](https://techdocs.akamai.com/api-definitions/reference/post-resource) operation. The endpoint's name needs to be unique within an account.
operationId: post-endpoints
summary: Register an endpoint
tags:
- Endpoints
externalDocs:
description: See documentation for this operation in Akamai's API Endpoint Definition API
url: https://techdocs.akamai.com/api-definitions/reference/post-endpoints
requestBody:
required: true
content:
application/json:
example:
apiEndPointName: Bookstore API
apiEndPointScheme: http/https
apiGatewayEnabled: true
basePath: /bookstore
consumeType: any
contractId: C-0N7RAC71
description: An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.
groupId: 44681
isGraphQL: false
lockVersion: 0
apiCategoryIds:
- 2
- 7
apiEndPointHosts:
- bookstore.api.akamai.com
akamaiSecurityRestrictions:
MAX_BODY_SIZE: 61056
MAX_DOC_DEPTH: 64
MAX_ELEMENT_NAME_LENGTH: 256
MAX_INTEGER_VALUE: 9999
MAX_JSONXML_ELEMENT: 1032
MAX_STRING_LENGTH: 8192
POSITIVE_SECURITY_ENABLED: 1
securityScheme:
securitySchemeType: apikey
securitySchemeDetail:
apiKeyLocation: header
apiKeyName: apikey
apiResources:
- apiResourceName: books
description: A book item within the bookstore API.
resourcePath: /books/{bookId}
apiResourceMethods:
- apiResourceMethod: GET
apiParameters:
- apiParameterLocation: path
apiParameterName: bookId
apiParameterNotes: null
apiParameterRequired: true
apiParameterRestriction: null
apiParameterType: string
array: false
response: false
- apiResourceMethod: POST
apiParameters:
- apiParameterLocation: path
apiParameterName: bookId
apiParameterNotes: null
apiParameterRequired: true
apiParameterType: string
array: false
response: false
apiParameterRestriction:
lengthRestriction:
lengthMax: 15
lengthMin: 3
schema:
additionalProperties: false
description: Contains information about an endpoint and its associated resources.
type: object
required:
- apiEndPointName
- apiEndPointHosts
- groupId
- contractId
- lockVersion
properties:
akamaiSecurityRestrictions:
additionalProperties: false
description: 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.
nullable: true
type: object
properties:
ALLOW_ONLY_SPEC_UNDEFINED_METHODS:
description: Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_BODY_PARAMS:
description: Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_COOKIE_PARAMS:
description: Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_HEADER_PARAMS:
description: Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_DELETE:
description: Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_GET:
description: Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_HEAD:
description: Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_OPTIONS:
description: Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_PATCH:
description: Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_POST:
description: Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_METHOD_PUT:
description: Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_PARAMS:
description: Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_QUERY_PARAMS:
description: Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_RESOURCES:
description: Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
ALLOW_UNDEFINED_SPEC_PARAMS:
description: Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.
type: integer
enum:
- 0
- 1
MAX_BODY_SIZE:
description: The maximum allowed size of a request body.
nullable: true
type: integer
MAX_DOC_DEPTH:
description: The maximum depth of nested data elements allowed in a request body.
nullable: true
type: integer
MAX_ELEMENT_NAME_LENGTH:
description: The maximum length of an XML element name or JSON object key name allowed in a request body.
nullable: true
type: integer
MAX_INTEGER_VALUE:
description: The maximum integer value allowed in a request body.
nullable: true
type: integer
MAX_JSONXML_ELEMENT:
description: The maximum number of XML elements, JSON object keys, or array items allowed in a request body.
nullable: true
type: integer
MAX_STRING_LENGTH:
description: The maximum length of any string value in a request body.
nullable: true
type: integer
POSITIVE_SECURITY_ENABLED:
description: Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.
type: integer
enum:
- 0
- 1
POSITIVE_SECURITY_VERSION:
description: Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.
nullable: true
type: integer
enum:
- 1
- 2
RESPONSE_RESTRICTIONS_ENABLED:
description: When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.
type: integer
enum:
- 0
- 1
apiCategoryIds:
description: The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.
nullable: true
type: array
items:
type: integer
apiEndPointHosts:
description: The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.
minItems: 1
type: array
items:
type: string
apiEndPointId:
description: The unique identifier for the endpoint.
example: '{{apiEndPointId}}'
nullable: true
readOnly: true
type: integer
apiEndPointLocked:
description: Whether the endpoint version is read-only.
example: '{{apiEndPointLocked}}'
nullable: true
readOnly: true
type: boolean
apiEndPointName:
description: The name of the endpoint, unique within the account.
example: '{{apiEndPointName}}'
type: string
apiEndPointScheme:
description: The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.
example: '{{apiEndPointScheme}}'
nullable: true
type: string
enum:
- http
- https
- http/https
apiEndPointVersion:
description: The unique identifier for the endpoint version.
example: '{{apiEndPointVersion}}'
nullable: true
readOnly: true
type: integer
apiGatewayEnabled:
default: true
description: Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.
example: '{{apiGatewayEnabled}}'
nullable: true
type: boolean
apiResources:
description: The list of resources assigned to the endpoint.
nullable: true
type: array
items:
additionalProperties: false
description: Contains information about a resource assigned to an endpoint.
type: object
required:
- apiResourceName
- resourcePath
properties:
apiResourceClonedFromId:
description: For cloned resources, the unique identifier for the source resource.
nullable: true
type: integer
apiResourceId:
description: The unique identifier for the resource.
type: integer
apiResourceLogicId:
description: The unique identifier for the resource across all endpoint versions.
type: integer
apiResourceMethodNameLists:
description: The list of HTTP methods the resource may respond to.
type: array
items:
type: string
apiResourceMethods:
description: The list of HTTP methods the resource may respond to.
type: array
items:
additionalProperties: false
description: Contains information about an HTTP method to which a resource may respond.
type: object
required:
- apiResourceMethod
properties:
apiParameters:
description: The list of parameter objects assigned to the method.
nullable: true
type: array
items:
additionalProperties: false
description: Contains information about a method's parameter.
type: object
required:
- apiParameterName
- apiParameterType
- apiParameterRequired
- apiParameterLocation
properties:
apiChildParameters:
description: The collection of child JSON members or XML elements for JSON or XML body type parameters.
type: array
items:
description: A further nested endpoint object.
type: object
x-akamai:
file-path: schemas/apiParameterDto-nested.yaml
apiParamLogicId:
description: The unique identifier for the parameter across all endpoint versions.
readOnly: true
type: integer
apiParameterContentType:
description: The content type of the parameter. Only applicable for top level body parameters.
type: string
enum:
- json
- xml
- urlencoded
- json/xml
- any
- none
apiParameterId:
description: The unique identifier for the parameter.
readOnly: true
type: integer
apiParameterLocation:
description: The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.
type: string
enum:
- query
- body
- header
- path
- cookie
apiParameterName:
description: The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.
type: string
apiParameterNotes:
description: 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`.
nullable: true
type: string
apiParameterRequired:
description: Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.
type: boolean
apiParameterRestriction:
additionalProperties: false
description: Contains information about restrictions and XML representation rules specified for the parameter.
nullable: true
type: object
properties:
arrayRestriction:
additionalProperties: false
description: Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.
nullable: true
type: object
properties:
collectionFormat:
default: csv
description: 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.
type: string
enum:
- csv
- ssv
- tsv
- pipes
- multi
maxItems:
description: The maximum allowed number of array items.
type: integer
minItems:
description: The minimum allowed number of array items.
type: integer
uniqueItems:
description: Whether the array contains only unique items.
type: boolean
lengthRestriction:
additionalProperties: false
description: Contains information about length restrictions for string type parameters.
nullable: true
type: object
properties:
lengthMax:
description: The maximum allowed number of characters in the string.
nullable: true
type: integer
lengthMin:
description: The minimum allowed number of characters in the string.
nullable: true
type: integer
numberRangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for number type parameters.
nullable: true
type: object
properties:
numberRangeMax:
description: The maximum range restriction.
nullable: true
type: number
numberRangeMin:
description: The minimum range restriction.
nullable: true
type: number
rangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for integer type parameters.
nullable: true
type: object
properties:
rangeMax:
description: The maximum range restriction.
nullable: true
type: integer
rangeMin:
description: The minimum range restriction.
nullable: true
type: integer
responseRestriction:
additionalProperties: false
type: object
properties:
maxBodySize:
description: Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.
type: string
enum:
- SIZE_6K
- SIZE_8K
- SIZE_12K
- NO_LIMIT
statusCodes:
description: The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.
nullable: true
type: array
items:
type: integer
xmlConversionRule:
additionalProperties: false
description: Contains information about an XML representation of a JSON-encoded parameter.
nullable: true
type: object
properties:
attribute:
default: false
description: Whether the parameter should be represented as an attribute.
type: boolean
name:
description: The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.
type: string
namespace:
description: The XML namespace.
type: string
prefix:
description: The prefix for the XML namespace.
type: string
wrapped:
default: false
description: Whether the parameter should be wrapped in a parent XML element.
type: boolean
x-akamai:
file-path: schemas/xmlRestrictionDto.yaml
apiParameterType:
description: The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.
type: string
enum:
- string
- integer
- number
- boolean
- json/xml
apiResourceMethParamId:
description: The unique identifier for the parameter's parent method.
nullable: true
readOnly: true
type: integer
array:
description: 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.
type: boolean
pathParamLocationId:
description: 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`.
nullable: true
type: number
response:
description: Whether the parameter is within a response type.
type: boolean
x-akamai:
file-path: schemas/apiParameterDto.yaml
apiResourceMethod:
description: The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.
type: string
enum:
- GET
- PUT
- POST
- DELETE
- HEAD
- PATCH
- OPTIONS
apiResourceMethodId:
description: The unique identifier for the resource's allowed method.
nullable: true
readOnly: true
type: integer
apiResourceMethodLogicId:
description: The unique identifier for the resource's method across all endpoint versions.
nullable: true
readOnly: true
type: integer
x-akamai:
file-path: schemas/apiMethodParametersDto.yaml
apiResourceName:
description: The name of the resource.
type: string
createDate:
description: The ISO 6801 timestamp indicating when you created the resource.
format: date-time
type: string
createdBy:
description: The identifier for the user who created the resource.
type: string
description:
description: 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.
type: string
link:
description: The location of the navigable resource within this API, for use by API clients.
nullable: true
type: string
lockVersion:
description: The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.
type: number
private:
description: Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.
type: boolean
resourcePath:
description: 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 yo
# --- truncated at 32 KB (533 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai/refs/heads/main/openapi/akamai-endpoints-api-openapi.yml