Criteria Reference, v2015–08–17

The following represents all rule criteria the Property Manager API supports. The set available to you is determined by the product and modules associated with the property. Use the List Available Criteria operation to get this information.

This reference specifies features used in the v2015-08-17 rule format. See the Criteria section for details on the most recent feature set, which corresponds to the latest rule format.

bucket

This read-only criteria matches a specified percentage of requests when used with the required accompanying spdy behavior. Contact Akamai Professional Services for help configuring it.

Options:

  • bucket (number within 0–100 range): Specifies the percentage of SPDY requests to match.

cacheability

Matches the current cache state.

NOTE: Any no-store or bypass-cache HTTP headers set on the origin’s content overrides properties’ caching instructions.

Options:

  • result (boolean): When disabled, reverses the match so that the cache state does not match the specified value. (In the Beta API, please substitute "true" and "false" string values.)
  • value (enum string): Content’s cache is enabled (cacheable) or not (no-store), or else is ignored (bypass-cache).

clientIp

Matches the IP number of the requesting client.

Options:

  • result (boolean): When disabled, reverses the match so that the IP is not among the specified set. (In the Beta API, please substitute "true" and "false" string values.)
  • value (array of string values): IP or CIDR block, for example: 71.92.0.0/14.
  • use-headers (boolean): When connecting via a proxy server as determined by the X-Forwarded-For header, enabling this option matches the connecting client’s IP address rather than the original end client specified in the header.

Feature Previously Named: clientip

clientIpVersion

Matches the version of the IP protocol used by the requesting client.

Options:

  • value (enum string): The IP version of the client request, either 4 or 6.
  • use-headers (boolean): When connecting via a proxy server as determined by the X-Forwarded-For header, enabling this option matches the connecting client’s IP address rather than the original end client specified in the header.

Feature Previously Named: clientipversion

cloudletsOrigin

Allows Cloudlets Origins, referenced by label, to define their own criteria to assign custom origin definitions. The criteria may match, for example, for a specified percentage of requests defined by the cloudlet to use an alternative version of a website.

This criteria must be paired with a sibling origin definition. It should not appear with any other criteria, and an allowCloudletsOrigins behavior must appear within a parent rule.

Options:

  • originId (string): The Cloudlets Origins identifier, limited to alphanumeric and underscore characters.

Feature Previously Named: conditionalOriginId

contentDeliveryNetwork

A read-only criteria that specifies the type of Akamai network handling the request. Contact Akamai Professional Services for help configuring it.

Options:

  • result (boolean): When disabled, reverses the match so that the request is not served from the specified network. (In the Beta API, please substitute "true" and "false" string values.)
  • network (enum string): Match requests served from either the production network, or when use-staging is in effect.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field.

Feature Previously Named: network_match

contentType

Matches the HTTP response header’s Content-Type.

Options:

  • result (boolean): When disabled, reverses the match so that the Content-Type is not among the specified set. (In the Beta API, please substitute "true" and "false" string values.)
  • value (array of string values): Content-Type response header value, for example text/html.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field, so that specifying text/* matches both text/html and text/css.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.

Feature Previously Named: contenttype

deviceCharacteristic

Match various aspects of the device or browser making the request.

Based on the value of the characteristic option, the expected value is either a boolean, a number, or a string, possibly representing a version number. Each type of value requires a different value- field:

  • value-boolean specifies a boolean value.
  • value-number specifies a numeric value.
  • value-version specifies a version number string value.
  • value-string specifies any other string value, to which the value-case and value-wildcard options apply.

Options:

  • characteristic (enum string): Aspect of the device or browser to match. The following values are boolean:

    • accept_third_party_cookie
    • ajax_support_javascript
    • cookie_support
    • dual_orientation (whether the display adapts to portrait/landscape orientation)
    • full_flash_support
    • gif_animated
    • is_mobile
    • is_tablet (subset of is_mobile)
    • is_wireless_device

    The following are numeric values:

    • physical_screen_height (millimeters)
    • physical_screen_width (millimeters)
    • resolution_height (pixels)
    • resolution_width (pixels)
    • xhtml_support_level

    The following are version string values:

    • device_os_version
    • mobile_browser_version

    The following are string values:

    • brand_name (such as Samsung or Apple)
    • device_os
    • marketing_name (such as Samsung Illusion)
    • mobile_browser
    • model_name (such as SCH-I110)
  • op-string (boolean): Specifies string-matching operators: beginswith, endswith, and contains for substring matches, or true and false for complete matches. (In the Beta API, please substitute "true" and "false" string values.)
  • op-number (enum string): When the characteristic expects a numeric value, compares the specified value-number against the matched client, using the following operators: eq, ge, gt, le, lt, ne.
  • op-version (enum string): When the characteristic expects a version string value, compares the specified value-version against the matched client, using the following operators: version-eq, version-ge, version-gt, version-le, version-lt, version-ne.
  • value-boolean (boolean): When the characteristic expects a boolean value, this sets the value to true or false. (In the Beta API, please substitute "true" and "false" string values.)
  • value-string (array of string values): When the characteristic expects a string, this specifies the set of values.
  • value-number (number): When the characteristic expects a numeric value, this specifies the number.
  • value-version (string): When the characteristic expects a version number, this specifies it as a string.
  • value-case (boolean): When enabled, the match is case-sensitive for the value-string field.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value-string field.

Feature Previously Named: devicecharacteristics

fileExtension

Matches the requested filename’s extension, if present.

Options:

  • result (boolean): When disabled, reverses the set of matching results so that the requested file does not match any of the specified extensions. (In the Beta API, please substitute "true" and "false" string values.)
  • value (array of string values): An array of file extension strings, with no leading dot characters, for example png, jpg, jpeg, and gif.
  • case (boolean): When enabled, the match is case-sensitive.

Feature Previously Named: ext

filename

Matches the requested filename, or test whether it is present.

Options:

  • result (enum string): If true or false, matches whether the value matches. If empty or not_empty, matches whether the specified filename is part of the path.
  • value (array of string values): Matches the filename component of the request URL. Wildcards are allowed, where ? matches a single character and * matches more than one. For example, specify filename.* to accept any extension.
  • case (boolean): When enabled, the match is case-sensitive for the value field.

hostname

Matches the requested hostname.

Options:

  • result (boolean): When disabled, reverses the match so that the hostname is not among the specified set. (In the Beta API, please substitute "true" and "false" string values.)
  • host (array of string values): A list of hostnames. Wildcards match, so *.example.com matches both m.example.com and www.example.com.

Feature Previously Named: hoit

matchAdvanced

A read-only criteria that specifies Akamai XML metadata. It can only be configured on your behalf by Akamai Professional Services.

Options:

  • description (string): A human-readable description of what the XML block does.
  • open_xml (string): An XML string that opens the relevant block.
  • close_xml (string): An XML string that closes the relevant block.

Feature Previously Named: advancedmatch

matchCpCode

Match the assigned content provider code.

Options:

  • cpcode (object): Specifies an object that encodes information about the cpcode to match, including an id key and a descriptive name:

    "cpcode": {
        "id"   : 12345,
        "name" : "my cpcode"
    }
    

Feature Previously Named: matchcpcode

matchResponseCode

Match a set or range of HTTP response codes.

Options:

  • result (boolean): When disabled, reverses the match so that the response code does not match the value. (In the Beta API, please substitute "true" and "false" string values.)
  • value-type (enum string): The type of match. If set to checklist, matches discrete codes specified in the value field. If set to range, considers range-start-value and range-end-value instead.
  • value (array of string values): A set of response codes to match, for example ["404","500"].
  • range-start-value (string): Specifies the start of a range of responses when value-type is set to range. For example: 400 to match anything from 400 to 500.
  • range-end-value (string): Specifies the end of a range of responses when value-type is set to range. For example: 500 to match anything from 400 to 500.

Feature Previously Named: responsecode

originTimeout

Matches when the origin responds with a timeout error.

Options:

  • result (enum string): Toggle the match. When this option is disabled, the match occurs when there is no timeout.

Feature Previously Named: origintimeout

path

Matches the URL’s non-hostname path component.

Options:

  • result (boolean): When disabled, reverses the match so that the requested pathname does not match any of those specified as a value. (In the Beta API, please substitute "true" and "false" string values.)
  • value (array of string values): Matches the URL path, excluding leading hostname and trailing query parameters. The path is relative to the server root, for example /blog. The value accepts * or ? wildcard characters, for example /blog/*/2014.
  • case (boolean): When enabled, the match is case-sensitive.

Feature Previously Named: wildcard

queryStringParameter

Matches query string field names or values.

Options:

  • name (string): The name of the query field, for example, q in ?q=string.
  • result (enum string): Narrows the match according to the following criteria:

    • exists or doesntexist tests whether the query field’s name is present in the requesting URL.
    • true or false tests whether the field’s value string matches.
    • islessthan or ismorethan matches ranges when the value is numeric.
    • isbetween also matches numeric ranges, but considers lowerbound and upperbound fields rather than value.
  • value (array of string values): The value of the query field, for example, string in ?q=string.
  • lowerbound (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s minimum value.
  • upperbound (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s maximum value.
  • name-wildcard (boolean): When enabled, allows * and ? wildcard matches in the name field.
  • name-case (boolean): When enabled, the match is case-sensitive for the name field.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.
  • value-escape (boolean): When enabled, matches when the value is URL-escaped.

Feature Previously Named: querystring

random

Matches a specified percentage of requests. Use this match to apply behaviors to a percentage of your incoming requests that differ from the remainder, useful for A/b testing, or to offload traffic onto different servers.

Options:

  • bucket (number within 0–100 range): Specify a percentage of random requests to which to apply a behavior. Any remainders do not match.

requestCookie

Match the cookie name or value passed with the request.

Options:

  • name (string): The name of the cookie, for example, visitor in visitor:anon.
  • result (enum string): Narrows the match according to the following criteria:

    • exists or doesntexist tests whether the cookie name exists.
    • true or false tests whether the field’s value string matches.
    • isbetween tests whether a numeric cookie value falls between lower and upper.
  • value (string): The cookie’s value, for example, anon in visitor:anon.
  • lower (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s minimum value.
  • upper (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s maximum value.
  • name-wildcard (boolean): When enabled, allows * and ? wildcard matches in the name field.
  • name-case (boolean): When enabled, the match is case-sensitive for the name field.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.

Feature Previously Named: requestcookie

requestHeader

Match HTTP header names or values.

Options:

  • name (string): The name of the request header, for example Accept-Language.
  • result (enum string): Narrows the match according to the following criteria:

    • exists or doesntexist tests whether the field name exists.
    • true or false tests whether the field’s value string matches.
  • value (array of string values): The request header’s value, for example en-US when the header name is Accept-Language.
  • name-wildcard (boolean): When enabled, allows * and ? wildcard matches in the name field.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.

Feature Previously Named: requestheader

requestMethod

Specify the request’s HTTP verb.

Options:

  • result (boolean): When disabled, reverses the match so that the request method does not match the value. (In the Beta API, please substitute "true" and "false" string values.)
  • value (enum string): Any of the following HTTP methods: CONNECT, COPY, GET, HEAD, HTTP_DELETE, OPTIONS, POST, PUT, and TRACE. Also the following WebDAV headers: DAV_COPY, DAV_LOCK, DAV_MKCOL, DAV_MOVE, DAV_PROPFIND, DAV_PROPPATCH, and DAV_UNLOCK.

Feature Previously Named: requestmethod

requestProtocol

Matches whether the request uses the HTTP or HTTPS protocol.

Options:

  • value (enum string): Either HTTP or HTTPS.

Feature Previously Named: requestprotocol

responseHeader

Match HTTP header names or values.

Options:

  • name (string): The name of the response header, for example Content-Type.
  • result (enum string): Narrows the match according to the following criteria:

    • exists or doesntexist tests whether the HTTP field name is present.
    • true or false tests whether the field’s value string matches.
    • islessthan or ismorethan matches ranges when the value is numeric.
    • isbetween also matches numeric ranges, but considers lowerbound and upperbound fields rather than value.
  • value (array of string values): The response header’s value, for example application/x-www-form-urlencoded when the header name is Content-Type.
  • lowerbound (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s minimum value.
  • upperbound (string): When the value is numeric and the result is set to isbetween, this field specifies the match’s maximum value.
  • name-wildcard (boolean): When enabled, allows * and ? wildcard matches in the name field.
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.

Feature Previously Named: responseheader

time

Specifies ranges of times during which the request occurred.

Options:

  • behavior (enum string): Specifies how to define the range of time:

    • beginning if the duration is indefinite, using the value of begindate.
    • between sets a single range between two dates, using the values of begindate and enddate.
    • lasting also sets a single range, but based on duration relative to the starting time. It relies on the values of lastingdate and lastingduration.
    • repeating allows a lasting-style range to repeat at regular intervals. It relies on the values of repeatbegindate, repeatduration, and repeatinterval.
  • repeatinterval (duration string): Sets the time between each repeating time period’s starting points when behavior set to repeating.
  • repeatduration (duration string): Sets the duration of each repeating time period with behavior set to repeating.
  • lastingduration (duration string): With behavior set to lasting, specifies the end of a time period as a duration relative to the lastingdate.
  • lastingdate (ISO 8601 format date/time string): Sets the start of a fixed time period with behavior set to lasting.
  • repeatbegindate (ISO 8601 format date/time string): Sets the start of the initial time period with behavior set to repeating.
  • applydst (boolean): Adjusts the start time plus repeat interval to account for daylight saving time. Applies when the current time and the start time use different systems, daylight and standard, and the two values are in conflict. (In the Beta API, please substitute "on" and "off" string values.)
  • begindate (ISO 8601 format date/time string): Sets the start of a time period with behavior set to beginning or between.
  • enddate (ISO 8601 format date/time string): Sets the end of a fixed time period with behavior set to between.

tokenAuthorization

Match on Auth Token 2.0 verification results.

Options:

  • result (enum string): Either pass if there are no errors, fail for any errors specified by statusList, or failAll if there are any errors.
  • statusList (array of string values): Match specific failure cases:
failure:expired_token
failure:invalid_acl_delimiter
failure:invalid_delimiter
failure:invalid_hmac
failure:invalid_hmac_key
failure:invalid_ip
failure:invalid_token
failure:invalid_url
failure:missing_expiration_time
failure:missing_token
failure:missing_url
failure:need_url_xor_acl
failure:token_not_valid_yet
failure:unauthorized_ip
failure:unauthorized_url
failure:unsupported_version

Feature Previously Named: token_auth_match

userAgent

Matches the user agent string that helps identify the client browser and device.

Options:

  • result (boolean): When disabled, reverses the match so that the client’s user agent does not match the value. (In the Beta API, please substitute "true" and "false" string values.)
  • value (array of string values): The User-Agent header’s value. For example, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1).
  • value-wildcard (boolean): When enabled, allows * and ? wildcard matches in the value field. For example, *Android*, *iPhone5*, *Firefox*, or *Chrome*.
  • value-case (boolean): When enabled, the match is case-sensitive for the value field.

Feature Previously Named: useragent

userLocation

The client browser’s approximate geographic location, determined by looking up the IP address in a database.

Options:

  • field (enum string): Indicates the geographic scope: CONTINENT, COUNTRY_CODE, or REGION_CODE for states or provinces within a country.
  • result (boolean): When disabled, reverses the match so that the client’s location does not match the set of values. (In the Beta API, please substitute "true" and "false" string values.)
  • country-value (array of string values): ISO 3166–1 country code, such as US or CN.
  • continent-value (array of string values): Continent code, one of AF (Africa), AS (Asia), EU (Europe), NA (North America), SA (South America), OC (Oceania), or OT (Antarctica).
  • region-value (array of string values): ISO 3166 country and region codes, for example US:MA for Massachusetts or JP:13 for Tokyo.
  • check-ips (enum string): Specifies which IP addresses determine the user’s location:

    • connecting considers the connecting client’s IP address.
    • headers considers IP addresses specified in the X-Forwarded-For header, succeeding if any of them match.
    • both behaves like headers, but also considers the connecting client’s IP address.
  • use-headers (enum string): When connecting via a proxy server as determined by the X-Forwarded-For header, enabling this option matches the connecting client’s IP address rather than the original end client specified in the header.

Feature Previously Named: userlocation

userNetwork

Matches details of the network over which the request was made, determined by looking up the IP address in a database.

Options:

  • field (enum string): The type of information to match, either BW for bandwidth, NETWORK for specific networks, or more general NETWORK_TYPE.
  • result (boolean): When disabled, reverses the match so that the client’s network does not match the value. (In the Beta API, please substitute "true" and "false" string values.)
  • network-type-value (array of string values): Specifies the basic type of network, either cable, dialup, dsl, fios, isdn, mobile, or uverse.
  • network-value (array of string values): Any set of specific networks:
airtel
alpha_internet
altitudetelecom
aol
arnet
asahi
att
bellcanada
biglobe
bitmailer
bouygues
brighthouse
bskyb
bt
cablevision
cernet
chinamobile
chinanet
chinaunicom
clearwire
colt
comcast
completel
compuserve
covad
dion
dreamnet
dtag
dti
earthlink
easynet
eurociber
fastweb
fibertel
francetelecom
free
freecom
h3g
hinet
ibm
idecnet
iij4u
infosphere
janet
jazztell
justnet
livedoor
mci
mediacom
mediaone
microsoft
mil
nerim
newnet
@nifty
numericable
ocn
odn
ono
panasonic-hi-ho
plala
plusnet
prodigy
qwest
rediris
renater
reserved
retevision
roadrunner
rogers
seednet
seikyo_internet
sfr
shaw
so-net
sprint
suddenlink
talktalk
telefonica
telstra
terramexico
ti
tikitiki
timewarner
tiscali
tmobile
turktelekom
uni2
uninet
upc
uunet
verizon
virginmedia
vodafone
wakwak
wind
windstream
zero
  • bandwidth-value (array of string values): Bandwidth range in bits per second, either 1, 57, 257, 1000, 2000, or 5000.
  • check-ips (enum string): Specifies which IP addresses determine the user’s network:

    • connecting considers the connecting client’s IP address.
    • headers considers IP addresses specified in the X-Forwarded-For header, succeeding if any of them match.
    • both behaves like headers, but also considers the connecting client’s IP address.
  • use-headers (enum string): When connecting via a proxy server as determined by the X-Forwarded-For header, enabling this option matches the connecting client’s IP address rather than the original end client specified in the header.

Feature Previously Named: usernetwork