Logo
Akamai APIs API Documentation

Property Manager API

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 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.

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.



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.



10. Groups - List groups

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 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.

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.



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 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.

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.



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.



26. Products - List products

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.



27. Products - List use cases

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.



29. Build - Get build details

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 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.

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.



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 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.

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.



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.



67. Includes - List includes

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.



69. Includes - Get an 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.



75. CP codes - List CP codes

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.



76. CP codes - Get a CP code

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 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.

If the response includes any validation errors, you need to resolve them before activating the property version.



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 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.

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.



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