Number of APIs: 81
1. Properties - Create or clone a property
POST https://{{host}}/papi/v1/properties?contractId={{contractId}}&groupId={{groupId}}
This operation either creates a new property from scratch or bases one on another property's rule tree and optionally its set of assigned hostnames. Version 1 of a new property is created automatically. PAPI's ability to create and clone new properties means that you can design a system of rule templates targeted to specific domains, rather than maintain a single set of rules with conditional logic for your full range of domains. Maintaining properties manually within the Control Center interface limited you to that more consolidated approach, but you can deploy rules more efficiently using PAPI. In either case, PAPI makes it much easier for you to support a large, flexible set of domains.
2. Properties - List properties
GET https://{{host}}/papi/v1/properties?contractId={{contractId}}&groupId={{groupId}}
This operation lists properties available for the current contract and group. Use optional query parameters to only show properties that were modified within a specified time range or on a selected network. If you specify the modifiedSince
parameter, contractId
and groupId
become optional. If you don't identify a contract and group, the operation lists all properties you have access to, modified within a specified time range.
3. Properties - Get a property
GET https://{{host}}/papi/v1/properties/:propertyId
This operation gets a specific property. You can call this operation by specifying any of the propertyId
members from a list of properties, or by running a GET on the propertyLink
response when creating a new property.
4. Properties - Remove a property
DELETE https://{{host}}/papi/v1/properties/:propertyId
Removes a specific property, which you can only do if none of its versions are currently active. Activating another property with the same set of hostnames automatically triggers a deactivation on the targeted property. See Create a new activation for details. A successful DELETE results in a 200 response with the confirmation message. Attempting to delete an active property results in a 500 error. Attempting to delete an unknown property results in a 404 error.
5. Property version hostnames - List hostnames for a property version
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/hostnames
List all hostnames whose requests are handled by the rules in this property version.
6. Property version hostnames - Update hostnames for a property version
PUT https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/hostnames
Modify the set of hostnames for a property version. For each hostname entry, set headers indicating their limits. Note: If you're using a new account, first register it on the Akamai network by activating any property version on either staging or production. Otherwise, your attempts to create or specify certificates will fail with a 403 error.
7. Property version hostnames - Add or remove hostnames for a property version
PATCH https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/hostnames
Modify the set of hostnames for a property version. For new entries, specify an Note: If you're using a new account, first register it on the Akamai network by activating any property version on either staging or production. Otherwise, your attempts to create or specify certificates will fail with a 403 error.add
array with a cnameFrom
set to the hostname your end users see as Host
headers. In either cnameTo
or edgeHostnameId
, specify an existing edge hostname you want to redirect your hostname to. If you're using Default Domain Validation (DV) certificates, you can set the cnameTo
to an edge hostname that doesn't exist yet, and PAPI creates it automatically when you activate the property version. To remove a hostname, specify a remove
array with the address of the hostname you don't want to use with this property version anymore. If you remove an edge hostname from an active property configuration, use the Edge Hostname API (HAPI) to delete it entirely. If you modify hostnames with Default DV certificates, the response includes additional X-Limit-Default-Certs-Per-Contract-Limit
and X-Limit-Default-Certs-Per-Contract-Remaining
headers indicating their limits.
8. Custom overrides - List custom overrides
GET https://{{host}}/papi/v1/custom-overrides
Lists the set of custom XML metadata overrides configured for you by Akamai representatives. Referencing the relevant overrideId
from a customOverride
object makes the custom XML append to the rest of the metadata XML defined by the rule tree, typically to restore state. See Custom behaviors and overrides for guidance on custom overrides.
9. Custom overrides - Get a custom override
GET https://{{host}}/papi/v1/custom-overrides/:overrideId
Get information for a single custom override. Use this operation if you want to examine the override's XML metadata.
GET https://{{host}}/papi/v1/groups
You need information about the prevailing group to access most PAPI interfaces. This operation provides a read-only list of groups, which may contain properties. This operation provides a flat list of groups, along with parentGroupId
information to structure them as a hierarchy. Each group also lists any available contracts that enable property features, but not which group contains a given property. Use the Identity and Access Management API to assign properties to groups, and modify the group hierarchy.
11. Edge hostnames - Create a new edge hostname
POST https://{{host}}/papi/v1/edgehostnames?contractId={{contractId}}&groupId={{groupId}}
Note: You can skip this operation if you're using a Default Domain Validation (DV) certificate, which automatically creates an edge hostname upon activation. This POST operation creates a new edge hostname. As detailed in the sections below, you can use three approaches to secure new edge hostnames: Standard TLS, Enhanced TLS, or a Shared Certificate. You can assign a use case mapping profile to optimize the hostname to serve specific types of traffic. Once the edge hostname is active, you can Update a property's hostnames to assign it to a hostname on a property. After you activate a property, modifying your DNS to map the property hostname to the edge hostname ultimately enables traffic on the property. For details, see Enable traffic for a new hostname. Use the Edge Hostname API (HAPI) to modify edge hostnames, or delete any that aren't currently assigned to an active property configuration.
12. Edge hostnames - List edge hostnames
GET https://{{host}}/papi/v1/edgehostnames?contractId={{contractId}}&groupId={{groupId}}
This lists all edge hostnames available under a contract. To assign any of these hostnames to a property, run Update a property's hostnames. Use the Edge Hostname API (HAPI) to modify edge hostnames, or delete any that aren't currently assigned to an active property configuration.
13. Edge hostnames - Get an edge hostname
GET https://{{host}}/papi/v1/edgehostnames/:edgeHostnameId?contractId={{contractId}}&groupId={{groupId}}
This polls the state of an edge hostname, typically after creating a new edge hostname. The response tells you whether the CNAME has been fully distributed across the network. If the hostname's status
is ACTIVE
, the process is complete. Until then, you typically see values of ZONE1
, ZONE2
, ZONE3
, or simply PENDING
.
14. Property activations - Activate or deactivate a property
POST https://{{host}}/papi/v1/properties/:propertyId/activations
This operation creates a new property activation, which deactivates any currently active version. After a necessary delay, this activates your property version's rule tree and set of hostnames across Akamai's network of edge servers, modifying how your edge content responds to end-user requests. Note: To reduce errors, avoid calling PAPI with separate clients on the same data. Avoid frequently polling status values. Instead, progressively increase the delay between calls. If there's a problem with the property you activated, you may have the option to fall back to the previous version. To build the request object, go to the
activationLink
from the activation's response and note down the fallbackVersion
value. Within an hour of activating, POST another activation with propertyVersion
set to the version you noted down and useFastFallback
set to true
. This disables the current activation and falls back to the specified version. A fallback takes a few seconds, but the option is available only if there have been no changes to the set of property hostnames, as indicated by canFastFallback
.
15. Property activations - List property's activations
GET https://{{host}}/papi/v1/properties/:propertyId/activations
This lists all activations for all versions of a property, on both production and staging networks.
16. Property activations - Get a property activation
GET https://{{host}}/papi/v1/properties/:propertyId/activations/:activationId
Gets details about an activation. You typically get a single activation from an Note: To reduce errors, avoid calling PAPI with separate clients on the same data. Avoid frequently polling status values. Instead, progressively increase the delay between calls.activationLink
when launching a new activation and following up to poll its status
. For activations whose status
is PENDING
, a Retry-After
header provides an estimate for when it's likely to change.
17. Property activations - Cancel a property's pending activation
DELETE https://{{host}}/papi/v1/properties/:propertyId/activations/:activationId
If you detect a problem with a property version while its activation is still PENDING
, use this operation to cancel it. Make a DELETE request on the activationLink
you get from the Activate a property operation's response. Once you DELETE the activation, it no longer appears in the list of activations, but you can still access it individually. If there are unexpected problems with an activation that goes live before you're able to cancel it, you often have a one-hour window to quickly fall back to a previous activation. See Activate or deactivate a property for details.
18. Include activations - Activate or deactivate an include
POST https://{{host}}/papi/v1/includes/:includeId/activations
Limited availability This operation creates a new include activation, which deactivates any current activation. After a necessary delay, this activates your version's rule tree modifying how your edge content responds to end-user requests. Note: To reduce errors, avoid calling PAPI with separate clients on the same data. Avoid frequently polling status values. Instead, progressively increase the delay between calls.
19. Include activations - List include's activations
GET https://{{host}}/papi/v1/includes/:includeId/activations
Limited availability This lists all activations for all versions of an include, on both production and staging networks.
20. Include activations - Get an include activation
GET https://{{host}}/papi/v1/includes/:includeId/activations/:activationId
Limited availability Gets details about an activation. The response also shows the results of a validation against the rule trees of active parent properties that reference the include. While you can ignore any warnings that indicate non-blocking, logical inconsistencies, you need to resolve all errors to activate an include. You typically get a single activation from an Note: To reduce errors, avoid calling PAPI with separate clients on the same data. Avoid frequently polling status values. Instead, progressively increase the delay between calls.activationLink
when launching a new activation, and you follow up to poll its status
. For activations whose status
is PENDING
, a Retry-After
header provides an estimate for when it's likely to go live.
21. Include activations - Cancel an include's pending activation
DELETE https://{{host}}/papi/v1/includes/:includeId/activations/:activationId
Limited availability If you detect a problem with an include version while its activation is still PENDING
, use this operation to cancel it. Make a DELETE request on the activationLink
you get from the Activate an include operation's response. Once you DELETE the activation, it no longer appears in the list of activations, but you can still access it individually.
22. Custom behaviors - List custom behaviors
GET https://{{host}}/papi/v1/custom-behaviors
Lists the set of custom XML metadata behaviors configured for you by Akamai representatives. Referencing the relevant behaviorId
from a customBehavior
within the rule tree injects the custom XML within the rest of the rule tree's metadata XML. See Custom behaviors and overrides for guidance on custom overrides.
23. Custom behaviors - Get a custom behavior
GET https://{{host}}/papi/v1/custom-behaviors/:behaviorId
Get information for a single custom behavior. Use this operation if you want to examine the custom behavior's XML metadata source.
24. Bulk activations - Bulk activate a set of properties
POST https://{{host}}/papi/v1/bulk/activations
Bulk activate a set of property versions. Alternately, perform a bulk fallback to the previous activation within an hour of the previous bulk activation. Base the set of versions to activate on the results of a bulk patch operation, which you use in this operation's request. This operation launches an asynchronous process to update properties. To check its progress, run the List bulk-activated properties operation, whose link is available in the Location
header or bulkActivationLink
member of this operation's response. See Bulk Search and Update for overall guidance on this feature.
25. Bulk activations - List bulk-activated properties
GET https://{{host}}/papi/v1/bulk/activations/:bulkActivationId
List all activations that result from a bulk activation request. Once the overall bulkActivationStatus
is COMPLETE
, check each activation's activationStatus
to confirm it's ACTIVATED
. See Bulk Search and Update for overall guidance on this feature.
GET https://{{host}}/papi/v1/products?contractId={{contractId}}
This operation lists the set of products that are available under a given contract. You need a product identifier to create new edge hostnames, CP codes, or properties. The assigned product determines the supported set of rule behaviors available within a property.
GET https://{{host}}/papi/v1/products/:productId/mapping-use-cases?contractId={{contractId}}
For a given product, this lists Akamai-provided use case scenarios. Use cases help optimally map different types of traffic across the Akamai edge network. Optionally run this operation to gather values before creating a new edge hostname.
28. Contracts - List contracts
GET https://{{host}}/papi/v1/contracts
You need information about the prevailing contract to access most PAPI interfaces. This operation provides a read-only list of contract names and identifiers. The response provides context on the overall account that enables each contract and keys your API credentials, but you don't need it to access any PAPI objects.
GET https://{{host}}/papi/v1/build
Gets information about the current API release. Note that available information about version numbers and build dates are unrelated to the overall API version or to various rule format versions. See API versioning for details.
30. Active property hostnames - List hostnames for a property
GET https://{{host}}/papi/v1/properties/:propertyId/hostnames
This operation lists active property hostnames assigned to a specific property. Use the optional query parameters to paginate, sort, and filter the results. You can nest and combine filters to obtain desired results. To view paginated results, use the response's nextLink
and previousLink
. You can call this operation by specifying any of the propertyId
members from a list of properties, or by running a GET on the propertyLink
response when creating a new property.
31. Active property hostnames - Get property hostnames diff
GET https://{{host}}/papi/v1/properties/:propertyId/hostnames/diff
This operation lists active property hostnames whose details differ between the staging and production networks. Optionally paginate the results. You can run this operation by specifying any of the propertyId
members from a list of properties, or by running a GET on the propertyLink
response when creating a new property.
32. Bulk patch - Bulk patch a set of properties
POST https://{{host}}/papi/v1/bulk/rules-patch-requests
Apply a series of JSON Patch operations to modify a set of property versions. Form this set of patches
based on the JSONPath locations from a bulk search response. Specify a set of new property versions based on the results of a bulk versioning operation. The request is a bulk patch object. This operation launches an asynchronous process to update rule trees. To check its progress, run the List bulk-updated properties operation, whose link is available in the Location
header or bulkPatchLink
member of this operation's response. See Bulk Search and Update for overall guidance on this feature.
33. Bulk patch - List bulk-patched properties
GET https://{{host}}/papi/v1/bulk/rules-patch-requests/:bulkPatchId
List all modified property versions that result from a bulk patch request. This operation polls the asynchronous process's status. Once the overall bulkPatchStatus
is COMPLETE
, you can feed all successfully updated property versions whose status
is UPDATED
into a subsequent request to bulk activate them. See Bulk Search and Update for overall guidance on this feature.
34. Rule formats - List rule formats
GET https://{{host}}/papi/v1/rule-formats
Gets a list of available rule formats. Use these dated version strings available in the response's ruleFormats.items
array to control the set of behaviors and criteria you invoke within an include's rules to apply to edge content, either freezing a rule tree or updating to a new rule format. To validate a rule tree to the requirements of a specific rule format, see Get a rule format's schema.
35. Client settings - Get client settings
GET https://{{host}}/papi/v1/client-settings
Get the current set of default values that apply to API clients keyed by the current authorization token.
36. Client settings - Update client settings
PUT https://{{host}}/papi/v1/client-settings
Update the current set of default values that apply to API clients keyed by the current authorization token.
37. Include version rules - Get an include's rule tree
GET https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/rules
Limited availability Gets the entire rule tree for an include version. See the Rule Trees section for details on the response object's structure. Also use this operation to update from one rule format to another more recent version, incrementing the assigned set of features. See Update rules to a newer set of features.
38. Include version rules - Update an include's rule tree
PUT https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/rules
Limited availability To write a rule tree to an include version, make a PUT request to the same resource as the GET request that reads it, passing in the rule object in the body of the request. See the Rule Trees section for details on the rule tree's structure. Use this operation also to freeze a set of rules to a rule format version to ensure no change in a deployed activation's behavior. Set the validateRules
query parameter to false
to bypass a set of validation tests that may significantly slow this operation's execution time. See Validation best practices for guidance on when to defer validation. See Rule tree errors and warnings and Validation errors for information on how validation data is embedded within the response object.
39. Include version rules - Patch an include's rule tree
PATCH https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/rules
Limited availability Selectively modify a rule tree using JSON patch syntax. Set the validateRules
query parameter to false
to bypass a set of validation tests that may significantly slow this operation's execution time. See Validation best practices for guidance on when to defer validation. See Rule tree errors and warnings and Validation errors for information on how validation data is embedded within the response object.
40. Include version rules - Get a digest for an include's rule tree
HEAD https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/rules
Limited availability Gets the rule tree's ETag without the rule tree object. Ordinarily when you get a rule tree, the response includes a large rule tree object. As discussed in Concurrency control, it includes a top-level etag
data digest to use when writing back the data. Use this operation if you simply want to get the ETag
as a header without the data.
41. Property version includes - List property's includes
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/includes
Limited availability Lists the set of includes referenced in the property version's rule tree.
42. Include versions - Create a new include version
POST https://{{host}}/papi/v1/includes/:includeId/versions
Limited availability Create a new include version based on any previous version. All data from the createFromVersion
populates the new version. Specify createFromVersionEtag
if you want to ensure you're creating from a version that hasn't changed since you fetched it.
43. Include versions - List include versions
GET https://{{host}}/papi/v1/includes/:includeId/versions
Limited availability Lists the include's versions, with results limited to the 500 most recent versions. Optionally paginate the results. Each include version indicates an activation status on different networks, and an etag
digest useful when cloning the include.
44. Include versions - Get the latest include version
GET https://{{host}}/papi/v1/includes/:includeId/versions/latest
Limited availability This operation provides either the latest include version overall, or the latest one active on the production or staging networks. By default, the response yields the include version with the highest number. Specifying an activatedOn
of STAGING
or PRODUCTION
yields the version that's currently active on either network.
45. Include versions - Get an include version
GET https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion
Limited availability This polls the state of a specific include version, for example to check its activation status. When specifying Accept: text/xml
, this operation provides the Akamai metadata configuration data that's distributed to edge servers when you activate an include version. This XML data encapsulates the include version's component rules and is available on a read-only basis. Contact your Akamai representative if you need help interpreting it.
46. Include versions - List available behaviors for an include
GET https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/available-behaviors
Limited availability Lists the set of behaviors you may apply within an include version's rules. The available set depends on the product under which you created the property and any additional modules enabled under your account.
47. Include versions - List available criteria for an include
GET https://{{host}}/papi/v1/includes/:includeId/versions/:includeVersion/available-criteria
Limited availability Lists the set of criteria you may apply within an include version's rules. The available set depends on the product under which you created the property and any additional modules enabled under your account.
48. Property hostnames - List hostnames for an account
GET https://{{host}}/papi/v1/hostnames
This operation lists active property hostnames for all properties available in an account. Use the optional query parameters to paginate, sort, and filter the results. You can nest and combine filters to obtain desired results. To view paginated results, use the response's nextLink
and previousLink
.
49. Property hostnames - Generate domain validation challenges
POST https://{{host}}/papi/v1/hostnames/certificate-challenges
If you're using Default Domain Validation (DV) certificates, you can generate the domain validation challenges ahead of setting hostnames for your property. Ordinarily, you get the challenges when you add hostnames to a property version or add hostnames to a property's hostname bucket. This operation returns the Note: If you're using a new account, first register it on the Akamai network by activating any property version on either staging or production. Otherwise, your attempts to generate certificates will fail with a 403 error.validationCname
object that you use to validate the certificate's domain. For each requested property hostname, create a new CNAME record in the DNS configuration and map the object's hostname
to the target
.
50. Property hostnames - Get audit history
GET https://{{host}}/papi/v1/hostnames/:hostname/audit-history
Gets a detailed record of all modifications made to a property hostname.
51. Bulk search - Bulk search a set of properties or includes
POST https://{{host}}/papi/v1/bulk/rules-search-requests
POST a bulk search object to search across all active property or include versions. Specify a JSONPath expression to match their rule trees. This operation launches an asynchronous process to gather search results. To check its progress, run the List bulk search results operation, whose link is available in the Location
header or the bulkSearchLink
member of this operation's response. After gathering completed results, you can create new property versions, bulk patch the rule trees, then activate them. See Bulk Search and Update for guidance on this feature. Run Synchronously bulk search a set of properties as an alternative to get completed search results directly. To perform simpler searches for an include's name or property's name or hostnames to which it applies, run the Search properties and includes operation instead.
52. Bulk search - Synchronously bulk search a set of properties or includes
POST https://{{host}}/papi/v1/bulk/rules-search-requests-synch
Provides an alternative to the asynchronous Bulk search a set of properties or includes operation. It yields completed bulk search results directly, but with possibly high latency, making it more appropriate to target for small-batch searches. POST a bulk search object to search across all active property or include versions, specifying a JSONPath expression to match their rule trees. After gathering results, you can create new property versions, bulk patch the rule trees, then activate them. See Bulk Search and Update for guidance on this feature. To perform simpler searches for an include's name or property's name or hostnames to which it applies, run the Search properties and includes operation instead.
53. Bulk search - List bulk search results
GET https://{{host}}/papi/v1/bulk/rules-search-requests/:bulkSearchId
List all property or include versions that result from a bulk search request. Run this operation to poll the asynchronous process's status. Once the searchTargetStatus
is COMPLETE
, you can feed the results
into a bulk versioning operation. Also use the JSON path matchLocations
to run a bulk patch operation over the rule trees. See Bulk Search and Update for guidance.
54. Hostname buckets - List property hostname activations
GET https://{{host}}/papi/v1/properties/:propertyId/hostname-activations
For a property with useHostnameBucket
set to true
at creation, this lists the activations for all hostnames in the property's hostname bucket, on both production and staging networks. To view paginated results, use the response's nextLink
and previousLink
.
55. Hostname buckets - Get a property hostname activation
GET https://{{host}}/papi/v1/properties/:propertyId/hostname-activations/:hostnameActivationId?contractId={{contractId}}&groupId={{groupId}}
For a property with useHostnameBucket
set to true
at creation, this operation gets details about a specific property hostname activation. You typically get a single activation from an activationLink
when launching a new property hostname activation and following up to poll its status
. For property hostname activations whose status
is PENDING
, a Retry-After
header provides an estimate for when it's likely to change.
56. Hostname buckets - Cancel a pending property hostname activation
DELETE https://{{host}}/papi/v1/properties/:propertyId/hostname-activations/:hostnameActivationId?contractId={{contractId}}&groupId={{groupId}}
For a property with useHostnameBucket
set to true
when created, if you detect a problem with a property hostname while its activation is still PENDING
, use this operation to cancel it. Make a DELETE request on the activationLink
you get from the Add or remove hostnames for a property operation's response. Once you DELETE the activation, it no longer appears in the list of activations, but you can still access it individually.
57. Hostname buckets - Add or remove hostnames for a property's hostname bucket
PATCH https://{{host}}/papi/v1/properties/:propertyId/hostnames
For a property with Note: If you're using a new account, first register it on the Akamai network by activating any property version on either staging or production. Otherwise, your attempts to create or specify certificates will fail with a 403 error.useHostnameBucket
set to true
when created, this operation adds or removes up to 1000 property hostnames without incrementing the property version. Changes automatically activate on the selected network. If a property doesn't have hostname buckets enabled, this operation returns a 403 error. If another activation is in progress, whether it's a hostname activation or a property version activation, the operation fails with a 409 error. Once you perform this operation, it blocks subsequent requests until all the property hostnames are active. Note that to build the request body, you need to first obtain the edgeHostnameId
either from an existing edge hostname or a new one you create by running the Create a new edge hostname operation.
58. Property versions - Create a new property version
POST https://{{host}}/papi/v1/properties/:propertyId/versions
Create a new property version based on any previous version. All data from the createFromVersion
populates the new version, including its rules and hostnames. Specify createFromVersionEtag
if you want to ensure you're creating from a version that hasn't changed since you fetched it.
59. Property versions - List property versions
GET https://{{host}}/papi/v1/properties/:propertyId/versions
Lists the property's versions, with results limited to the 500 most recent versions. Optionally paginate the results. Each property version indicates activation status on different networks, and an etag
digest useful when cloning the property.
60. Property versions - Get the latest property version
GET https://{{host}}/papi/v1/properties/:propertyId/versions/latest
This operation provides either the latest property version overall, or the latest one active on the production or staging networks. By default, the response yields the property version with the highest number. Specifying an activatedOn
of STAGING
or PRODUCTION
yields the version that's currently active on either network.
61. Property versions - Get a property version
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion
This polls the state of a specific property version, for example to check its activation status. When specifying Accept: text/xml
, this operation provides the Akamai metadata configuration data that's distributed to edge servers when you activate a property version. This XML data encapsulates the property version's component rules and hostnames, and is available on a read-only basis. Contact your Akamai representative if you need help interpreting it.
62. Property versions - List available behaviors for a property
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/available-behaviors
Lists the set of behaviors you may apply within a property version's rules. The available set depends on the product under which you created the property and any additional modules enabled under your account.
63. Property versions - List available criteria for a property
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/available-criteria
Lists the set of criteria you may apply within a property version's rules. The available set depends on the product under which you created the property and any additional modules enabled under your account.
64. Schemas - Get a schema for a rule format
GET https://{{host}}/papi/v1/schemas/products/:productId/:ruleFormat
Get the JSON schema for the given product and rule format, which you can use to validate a rule tree object. Note that your rule tree may still fail to activate if you specify features that are optional within the schema for a product but not currently supported on your contract. To validate the set of currently available features you want to activate, run List available behaviors and List available criteria.
65. Schemas - Get a schema for a request
GET https://{{host}}/papi/v1/schemas/request/:filename
Fetch the JSON schema for a particular request. Error messages about schema mismatches typically link the schema filename.
66. Includes - Create or clone an include
POST https://{{host}}/papi/v1/includes?contractId={{contractId}}&groupId={{groupId}}
Limited availability This operation either creates a new include from scratch or bases one on another include's rule tree. Version 1 of a new include is created automatically.
GET https://{{host}}/papi/v1/includes?contractId={{contractId}}&groupId={{groupId}}
Limited availability This operation lists includes available for the current contract and group. Use optional query parameters to only show includes that were modified within a specified time range or on a selected network. If you specify the modifiedSince
parameter, contractId
and groupId
become optional. If you don't identify a contract and group, the operation lists all includes you have access to, modified within a specified time range.
68. Includes - Validate an include
GET https://{{host}}/papi/v1/includes/validation-results/:activationId/properties/:propertyId/versions/:propertyVersion
Limited availability Gets the results of an include validation against the specified parent property version that references the include.
GET https://{{host}}/papi/v1/includes/:includeId
Limited availability This operation gets a specific include. You can call this operation by specifying any of the includeId
members from a list of includes, or by running a GET on the includeLink
response when creating a new include.
70. Includes - Remove an include
DELETE https://{{host}}/papi/v1/includes/:includeId
Limited availability Removes a specific include, which you can only do if none of its versions are currently active. A successful DELETE results in a 200 response and a confirmation message. Attempting to delete an active include results in a 500 error. Attempting to delete an unknown include results in a 404 error.
71. Includes - List parent properties
GET https://{{host}}/papi/v1/includes/:includeId/parents
Limited availability Lists all active properties that reference a specific include. Combine optional query parameters to paginate, sort, and filter the results. Specify any includeId
you get from a list of includes.
72. Bulk versioning - Bulk version a set of properties
POST https://{{host}}/papi/v1/bulk/property-version-creations
Create new versions of a set of properties based on any previous version. This operation launches an asynchronous process to increment versions. To check its progress, run the List bulk-versioned properties operation, whose link is available in the Location
header or bulkCreateVersionLink
member of this operation's response. Run this operation only after bulk searching a set of properties you want to change, to prepare new versions to bulk patch. See Bulk Search and Update for guidance on this feature.
73. Bulk versioning - List bulk-versioned properties
GET https://{{host}}/papi/v1/bulk/property-version-creations/:bulkCreateId
List all new property versions that result from a bulk versioning request. This operation polls the asynchronous process's status. After the bulkCreateVersionsStatus
is COMPLETE
, use the new version numbers along with search paths from a bulk search operation to bulk patch them. See Bulk Search and Update for guidance.
74. CP codes - Create a new CP code
POST https://{{host}}/papi/v1/cpcodes?contractId={{contractId}}&groupId={{groupId}}
To create a new CP code, you need to associate it with a product. You can assign any CP code within a property's rule tree as detailed in the Rule Trees section. Make sure the CP code's productId
value matches the one assigned to the properties that invoke your CP code, otherwise you may get a warning about problems this may cause in traffic reports.
To view or update certain CP code data, such as name, time zone, and purgeability, use the CP Codes and Reporting Groups API. You can write contractid
and groupId
data only on the initial POST operation. They're read-only in subsequent PUT operations. To reassign a CP code's contract or group, contact your Akamai representative for help.
GET https://{{host}}/papi/v1/cpcodes?contractId={{contractId}}&groupId={{groupId}}
This operation lists CP codes available within your contract and group pairing. You assign CP codes to a property within its rule tree. To list all CP codes in your account at once, without having to filter the request by contracts and groups, use the CP Codes and Reporting Groups API. CP codes include information about their product assignment. When creating a new property, you need to apply the same product you specified for the assigned CP code. To view or update certain CP code data, such as name, time zone, and purgeability, use the CP Codes and Reporting Groups API.
GET https://{{host}}/papi/v1/cpcodes/:cpcodeId?contractId={{contractId}}&groupId={{groupId}}
This operation gets details about a CP code. To view or update certain CP code data, such as name, time zone, and purgeability, use the CP Codes and Reporting Groups API.
77. Search - Search properties or includes
POST https://{{host}}/papi/v1/search/find-by-value
This operation searches includes by name, or properties either by name, hostname, or edge hostname for which they're currently active. Specify a search request object with a single query member. The response lists the matching set of currently active property or include versions, and also the latest version if inactive. Each of the response's versions features additional context for the property or include in which it appears, or the account, contract, or group under which it's deployed. Note that to perform more complex searches for content within a rule tree, run Bulk search a set of properties or includes instead.
78. Property version rules - Get a property's rule tree
GET https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/rules
Gets the entire rule tree for a property version. See the Rule Trees section for details on the response object's structure. Also use this operation to:
- Update from one frozen rule format to a more recent version, incrementing the assigned set of features. See Update rules to a newer set of features.
- Update a set of features to their most recent version in the If the response includes any validation errors, you need to resolve them before activating the property version.latest
rule format. You may experience some stability problems when new versions of features emerge with new requirements. You should use the most recent dated rule format available. See API versioning for details.
79. Property version rules - Update a property's rule tree
PUT https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/rules
To write a rule tree to a property version, make a PUT request to the same resource as the GET request that reads it. Pass in the rule object in the body of the request. See the Rule Trees section for details on the rule tree's structure. Set the Use this operation also to Freeze a set of rules to a rule format version to ensure no change in a deployed activation's behavior.validateRules
query parameter to false
to bypass a set of validation tests that may significantly slow this operation's execution time. See Validation best practices for guidance on when to defer validation. If the GET response yields any rule tree errors, you need to fix them before activating. This PUT operation saves a rule tree even if it contains errors that block the property activation. See Rule tree errors and warnings and Validation errors for information on how validation data is embedded within the response object.
80. Property version rules - Patch a property's rule tree
PATCH https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/rules
Selectively modify a rule tree using JSON patch syntax. As a component of the larger Bulk patch a set of properties, this operation patches an individual rule tree. See Bulk Search and Update for more information. To bypass a set of validation tests that may significantly slow this operation's execution time, set the validateRules
query parameter to false
or validateMode
to fast
. See Validation best practices for guidance on when to defer validation. See Rule tree errors and warnings and Validation errors for information on how validation data is embedded within the response object.
81. Property version rules - Get a digest for a property's rule tree
HEAD https://{{host}}/papi/v1/properties/:propertyId/versions/:propertyVersion/rules
Gets the rule tree's ETag without the rule tree object. Ordinarily when you get a rule tree, the response includes a large rule tree object. As discussed in Concurrency control, it includes a top-level etag
data digest to use when writing back the data. Use this operation if you simply want to get the ETag
as a header without the data.
ENDPOINTS