Flow variables reference

This pageapplies toApigee andApigee hybrid.

View Apigee Edge documentation.

This section provides reference information about the following common Apigee flow variables:

apigeeisrequest
apiproductloadbalancingresponse
apiproxymessageroute
clientmessageidservicecallout
currentmintsystem
environmentorganizationtarget
errorproxyvariable
faultpublishmessage
graphqlratelimit

Each of these variables is described in the sections that follow.

This document does not include flow variables that are specific to a singlepolicy. Those flow variables are documented with the policy that introducesthem. For example, theresponsecache flow variable is documentedwith theResponseCache policy. For the list of available policies, see Policy reference overview.

Flow variable terminology

Aflow variable refers to a value within a context. The value of a flow variable can be either a primitive type (such as a string, boolean, or integer) or a reference to a specific object, such as an object instantiated by Apigee during request/response processing.

Whether a flow variable refers to a primitive type or an object depends on the context—the time at which you refer to it. Thecontext for a flow variable is the flow segment in which an API proxy processes a request/response. For example, in any segment of the response flow context, theresponse flow variable refers to theresponse object.

In most cases, you can think of flow variables as referencing an object. To refer to properties of that object, you use dot notation. For example, to access thecontent property ofresponse, useresponse.content.

Working with flow variables

For information on using flow variables, seeFlow variables overview.

Keep the following in mind when working with flow variables:

  • Each flow variable, such asrequest, has properties that you access using dot-notation syntax. For example:
    request.headers.count
  • Not all flow variables are accessible from all policies or tools. For example, in the request PreFlow, you won't be able to access theresponse.
  • Most properties are read only. Where some are read/write, they might be read only, too, depending on where in the flow you access them.
  • Some policies definepolicy-specific flow variables. For example, theResponseCache policy defines aresponsecache variable. For more information, see thepolicies reference.
  • Do not rely on undocumented variables in your API proxies and apps. For example, do not rely on the values in the undocumented X-Apigee.* headers in your API proxies as these headers are not intended for customer use and can be removed or changed by Apigee at any time.

For more information, see:

apigee

A helper variable that provides information about execution time of the policy.

The following table describes the properties of theapigee variable:

PropertyTypeRead/WriteDescription Scope begins
apigee.metrics.policy.policy_name.timeTakenIntegerRead onlyThe time, in nanoseconds, that the policy took to execute.Policy

apiproduct

A helper variable that provides information about API products.

The following table describes the properties of theapiproduct variable:

PropertyTypeRead/WriteDescription Scope begins
apiproduct.operationStringRead only

Name of the API product's operation. This variable helps you differentiate between theQuota policy's settings and the quota settings on an API product's operation.

For example,my-operation.

Proxy request
apiproduct.operation.resourceStringRead only

The resource name of the operation that is matched to a request.

Proxy request
apiproduct.operation.methodsArrayRead only

An array of HTTP methods that the operation being matched allows.

Proxy request
apiproduct.operation.attributes.key_nameArrayRead only

Gets the custom attribute value that matches thekey_name.

Proxy request

For more information, see the following:

apiproxy

Describes the API proxy.

The following table describes the properties of theapiproxy variable:

PropertyTypeRead/WriteDescriptionScope begins
apiproxy.nameStringRead onlyName of the API proxy. For example,My Proxy.Proxy request
apiproxy.revisionStringRead onlyThe revision number of an API proxy. For example,6.Proxy request
apiproxy.basepathStringRead onlyThe deployment base path (specified during API deployment).Proxy request

For more information on working with API proxies, seeUnderstanding APIs and API proxies.

client

The application or system that sent a request to the load balancer.

The following table describes the properties of theclient variable:

PropertyTypeRead/WriteDescriptionScope begins
client.cnStringRead only

The common name specified in the TLS/SSL certificate presented by the client app.

Proxy request
client.countryStringRead only

The country in the TLS/SSL certificate presented by the client app.

Proxy request
client.email.addressStringRead only

The email address in the TLS/SSL certificate presented by the client app.

Proxy request
client.hostStringRead only

The HTTP host IP associated with the request received by the ProxyEndpoint.

Proxy request
client.ipStringRead only

The IP address of the client or system sending the message to the load balancer. For example, this could be the original client IP or a load balancer IP.

Proxy request
client.localityStringRead only

The locality (City) in the TLS/SSL certificate presented by the client.

Proxy request
client.organizationStringRead onlyThe organization in the TLS/SSL certificate presented by the client. (Not necessarily equivalent to the organization on Apigee.)Proxy request
client.organization.unitStringRead only

The organizational unit in the TLS/SSL certificate presented by the client.

Proxy request
client.portIntegerRead only

The HTTP port associated with the originating client request to the ProxyEndpoint.

Proxy request
client.received.end.timeStringRead only

The time, expressed in string form, at which the proxy finished receiving the request from the originating client at the ProxyEndpoint. For example: Wed, 21 Aug 2013 19:16:47 UTC.

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Proxy request
client.received.end.timestampLongRead only

The timestamp value specifying when the proxy finished receiving the request from the originating client at the ProxyEndpoint. This value is a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Proxy request
client.received.start.timeStringRead only

The time, expressed in string form, at which the proxy began receiving the request from the originating client at the ProxyEndpoint. For example: Wed, 21 Aug 2013 19:16:47 UTC

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Proxy request
client.received.start.timestampLongRead only

The timestamp value specifying when the proxy began receiving the request from the originating client at the ProxyEndpoint. This value is a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Note: This time value is used to calculate traffic metrics for API proxies in the analytics dashboards.
Proxy request
client.resolved.ipStringRead only

The resolved client IP address. This is either the value determined from a configured client IP resolution setting or from the default algorithm, if a client IP resolution setting is not specified. SeeClient IP resolution for information.

Proxy request
client.schemeStringRead only

Returns HTTP or HTTPS depending on the transport used by client app to send the request message.

Proxy request
client.sent.end.timeStringRead only

The time, expressed in string form, at which the proxy finished sending the response from the ProxyEndpoint to the client. For example: Wed, 21 Aug 2013 19:16:47 UTC.

This value is a string representation of the corresponding 32-bitclient.sent.end.timestamp. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Note: This property is only available in the ProxyEndpoint response's PostClientFlow. In all other flows, the value of this property is the empty string.

For information about accessing this property, seeMessageLogging policy.

PostClientFlow
client.sent.end.timestampLongRead onlyThe timestamp value specifying when the ProxyEndpoint finished returning the response to the originating client app. This value is a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.Note: This property is only available in the ProxyEndpoint response's PostClientFlow. In all other flows, the value of this property is -1.

For information about accessing this property, seeMessageLogging policy.

PostClientFlow
client.sent.start.timeStringRead onlyThe time, expressed in string form, when the ProxyEndpoint started returning the response to the originating client app. For example, Wed, 21 Aug 2013 19:16:47 UTC.

This value is a string representation of the corresponding 32-bitclient.sent.start.timestamp. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Note: This property is only available in the ProxyEndpoint response's PostClientFlow. In all other flows, the value of this property is the empty string.

For information about accessing this property, seeMessageLogging policy.

PostClientFlow
client.sent.start.timestampLongRead onlyWhen the proxy began sending the response to the client from the ProxyEndpoint. This value is expressed as a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.Note: This property is only available in the ProxyEndpoint response's PostClientFlow. In all other flows, the value of this property is -1.

For information about accessing this property, seeMessageLogging policy.

PostClientFlow
client.ssl.enabledStringRead only

true if the ProxyEndpoint is configured for TLS/SSL; otherwisefalse.

Proxy request
client.stateStringRead only

The state in the TLS/SSL certificate presented by the client.

Proxy request

current

Contains information about the current API proxy flow.

The following table describes the properties of thecurrent variable:

PropertyTypeRead/WriteDescriptionScope begins
current.flow.nameStringRead onlyThe name of the flow that is currently executing (such asPreFlow,PostFlow, or the name of a conditional flow).Proxy request
current.flow.descriptionStringRead onlyThe description of the currently executing flow. This is the same as the value of the<Description> element in the flow's XML configuration.Proxy request

You can view these properties in the Apigee UI's Trace view.

environment

A container for theenvironment.name property.

The following table describes the properties of theenvironment variable:

PropertyTypeRead/WriteDescriptionScope begins
environment.nameStringRead onlyName of the environment in which the transaction ran.Proxy request

error

A contextual object that represents an error message in theerror flow.

Note: Error variables are only available in the error flow.

The following table describes the properties of theerror variable:

PropertyTypeRead/WriteDescriptionScope begins
errormessageRead/WriteError of typemessage, which is a contextual object in the error flow.Error
error.contentStringRead/WriteContent of the error.Error
error.messageStringRead only

Message associated with an error, whose value is available only before the error Flow is executed.

Error
error.status.codeIntegerRead only

The HTTP status code associated with the error. For example,400.

Error
error.transport.messageTransportMessageRead only

Any error of typeTransportMessage.

Error
error.stateIntegerRead only

State in the Flow where an error occurred.

Error
error.header.header_nameStringRead/Write

Get or set the response header.

Error

fault

Provides information about a runtime error source, reason, and details. Apigee sets these variables when a policy throws an error, and values are specific to each policy. To understand when thefault variables are set, see About policy errors.

PropertyTypeRead/WriteDescriptionScope begins
fault.nameStringRead onlyThe name of the fault, as described in theRuntime errors table included in each policy reference topic. This variable may be useful in Conditions applied to FaultRules.Error
fault.reasonStringRead onlyThe reason for the fault. For example, when theOASValidation policy detects that an inbound request does not validate against the OpenAPI Specification, it will set this variable to a string that describes the policy name, the specification name, and the detail describing why the request does not validate against the specification. Other policies will set this variable to messages appropriate for their faults.Error
fault.categoryStringRead onlyThe category. For example if the fault occurs in a policy step, this variable might hold the value "Step". This variable may be useful in Conditions applied to FaultRules.Error
fault.subcategoryStringRead onlyThe subcategory. For example, if theOASValidation policy detects that a request does not validate against an OpenAPI Specification, it will set this variable to "OASValidationFailure". This variable may be useful in Conditions applied to FaultRules.Error

graphql

Gives you access to the results of a GraphQL query at runtime. For more information, seeGraphQL policy.

The following table describes the properties of thegraphql variable:

PropertyTypeRead/WriteDescription
graphqlComplex typeREAD ONLY/READ WRITEThe root GraphQL query.SCOPE
graphql.fragmentComplex typeREAD ONLY/READ WRITEA reference to the default fragment for this query.SCOPE
graphql.fragment.countIntegerRead OnlyThe number of framents spawned by this GraqhQL query.SCOPE
graphql.fragment.INDEX.selectionSet.INDEXTYPEREAD ONLY/READ WRITEA reference to the selection set at the specified index.SCOPE
graphql.fragment.INDEX.selectionSet.INDEX.nameStringREAD ONLY/READ WRITEThe name of the selection set at the specified index.SCOPE
graphql.fragment.INDEX.selectionSet.countIntegerRead OnlyThe number of selection sets in this fragment.SCOPE
graphql.fragment.INDEX.selectionSet.nameStringREAD ONLY/READ WRITEThe name of the default selection set in the fragment.SCOPE
graphql.operationComplex typeREAD ONLY/READ WRITEA reference to the query's default operation.

You cannot set quotas at the operation level. Instead, set them at the environment level.

SCOPE
graphql.operation.nameStringRead OnlyThe name of the query's default operation.SCOPE
graphql.operation.operationTypeEnumerationRead OnlyThe type of query's default operation that can be executed against this API proxy. Possible values arequery,mutation, orall.SCOPE
graphql.operation.selectionSetComplex TypeThe default selection set for the query's default operation.SCOPE
graphql.operation.selectionSet.countIntegerRead OnlyThe number of selection sets in the query's default operation.SCOPE
graphql.operation.selectionSet.nameStringRead OnlyThe name of the query's default operation's default selection set.SCOPE
graphql.operation.selectionSet.INDEXIntegerRead OnlyA reference to the selection set at the specified index in the list of selection sets.SCOPE
graphql.operation.selectionSet.INDEX.nameStringRead OnlyThe name of the selection at the specified index in the list of selection sets for this operation.SCOPE
graphql.operation.selectionSet.INDEX.[selectionSet]Complex typeREAD ONLY/READ WRITEOne or more additional selection set objects.

Selection sets can be accessed recursively. For example, after aselectionSet.index, you can have anotherselectionSet.index rather than aname property. And after that another and so on until you reach the value of<MaxCount> that you set in theGraphQL policy.

SCOPE
graphql.operation.selectionSet.INDEX.directiveComplex typeA reference to the default directive in the specified selection set.SCOPE
graphql.operation.selectionSet.INDEX.directive.countComplex typeSCOPE
graphql.operation.selectionSet.INDEX.directive.INDEXIntegerRead OnlyA reference to the directive at the specified index.SCOPE
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEXIntegerRead OnlyA reference to the argument at the specified index.SCOPE
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.nameStringThe name of the argument at the specified index.SCOPE
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.valueStringThe value of the argument at the specified index.SCOPE
graphql.operation.selectionSet.INDEX.directive.nameStringSCOPE
graphql.operation.variableDefinitionsComplex typeA reference to a list of variable definitions for the query's default operation.SCOPE
graphql.operation.variableDefinitions.countIntegerThe number of variable definitions for the query's default operation.SCOPE
graphql.operation.variableDefinitions.INDEXIntegerA reference to the variable definition at the specified index.SCOPE
graphql.operation.variableDefinitions.INDEX.nameStringThe name of the variable definition at the specified index.SCOPE
graphql.operation.variableDefinitions.INDEX.typeThe type of the variable definition's value at the specified index.SCOPE

is

A container for theis.error property.

The following table describes the properties of theis variable:

PropertyTypeRead/WriteDescriptionScope begins
is.errorBooleanRead only

Error flag.

Proxy request

loadbalancing

Provides information about the TargetEndpoint's load balancing status.

The following table describes the properties of theloadbalancing variable:

PropertyTypeRead/WriteDescriptionScope begins
loadbalancing.failedserversArray of StringsRead only

List of failed TargetServers during load balancing at TargetEndpoint.

Target response
loadbalancing.isfallbackBooleanRead only

true if fallback is enabled for the TargetServer invoked during load balancing at TargetEndpoint.

Target response
loadbalancing.targetserverStringRead only

TargetServer invoked during load balancing at TargetEndpoint. Set only if the<Path> element is set while defining the load balancer element.

Target response

message

A contextual object, with the same value asrequest in the request flow or asresponse in the response flow or aserror in the error flow.

The following table describes the properties of themessage variable:

PropertyTypeRead/WriteDescriptionScope begins
messagemessageRead/Write

A contextual object, with the same value asrequest in the request Flow or asresponse in the response Flow or aserror in the Error flow.

Proxy request
message.contentStringRead/Write

Content of the request, response, or error message.

Proxy request
message.content.as.base64StringRead only

Base64-encoded payload content of the request, response, or error message.

Proxy request
message.content.as.url.safe.base64StringRead only

URL-safe base64-encoded payload content of the request, response, or error message.

Proxy request
message.formparam.param_nameStringRead/Write

Value of the specified form parameter.

Proxy request
message.formparam.param_name.
 values
CollectionRead only

All values of the specified form parameter in the message.

Proxy request
message.formparam.param_name.
 values.count
IntegerRead only

Count of the values of the specified form parameters in the message.

Proxy request
message.formparams.countIntegerRead only

Count of all form parameters in the message.

Proxy request
message.formparams.namesCollectionRead only

Value of all form parameters in the message.

Proxy request
message.formparams.names.stringStringRead only

A comma-separated list of names of all the form parameters in the message.

Proxy request
message.formstringStringRead only

Value of form string in the message.

Proxy request
message.header.header_nameStringRead/Write

Gets or sets the value of a particular header found in the request. If the header contains a comma, upon read you will receive only the segment of the text up to the first comma.

For example, if theCache-control header ispublic, maxage=16544, then the return value ofmessage.header.cache-control ispublic.

If you want the entire header as a string, use a variable likemessage.header.header_name.values.string.

Proxy request
message.header.header_name.NStringRead/Write

The value of theNth particular header value in the message, either request or response, depending on the state of the flow. Apigee splits header text values by commas. The index starts at 1 for the left-most value.

For example, if theCache-control header ispublic,maxage=16544, then the return value ofmessage.header.cache-control.2 ismaxage=16544.

Proxy request
message.header.header_name.
 values
CollectionRead only

All values of the specified HTTP header name in the message.

Proxy request
message.header.header_name.
 values.count
IntegerRead only

Count of the values of the specified HTTP header name in the message.

Proxy request
message.header.header_name.
 values.string
StringRead only

All the values of a particular header in the message, in the form of a single string.

For example, if theCache-control header ispublic,maxage=16544, then the return value ofmessage.header.cache-control.values.string ispublic,maxage=16544.

Proxy request
message.headers.countIntegerRead only

Count of all HTTP headers in the message.

Proxy request
message.headers.namesCollectionRead only

Value of all HTTP headers in the message.

Proxy request
message.headers.names.stringStringRead only

A comma-separated list of names of all the headers in the message.

Proxy request
message.pathStringRead/Write

The complete request message path in URL excluding any query parameters.

Proxy request
message.queryparam.param_nameStringRead only

Returns the specified message query parameter.

Proxy request
message.queryparam.param_name.NStringRead/Write

The value of theNth query parameter in the message. For example, if therequest.querystring isa=hello&a=world, then the return value ofmessage.queryparam.a.1 ishello.

As an example of writing multiple values for a single query parameter name, such astype=siteid:1&type=language:us-en&type=currency:USD, set the following:

  • message.queryparam.type.1 tositeid:1
  • message.queryparam.type.2 tolanguage:en-us
  • message.queryparam.type.3 tocurrency:USD
Proxy request
message.queryparam.param_name.
 values
CollectionRead only

All the values of a particular query parameter in the message, formatted as a comma-separated list.

For example, if the query string isa=hello&a=world, then the value ofmessage.queryparam.a.values is['hello', 'world']code>.

Proxy request
message.queryparam.param_name.
 values.count
IntegerRead only

The total count of a specified query parameter associated with the request sent to the ProxyEndpoint from the client app.

Proxy request
message.queryparams.countIntegerRead only

The total count of all query parameters associated with the request sent to the ProxyEndpoint from the client app.

Proxy request
message.queryparams.namesCollectionRead only

A list of all query parameter names associated with the request sent to the ProxyEndpoint from the client app.

Proxy request
message.queryparams.names.stringStringRead only

A comma-separated list of names of all the query parameters in the message.

Proxy request
message.querystringStringRead only

A string containing all query parameter names and values associated with the request sent to the ProxyEndpoint from the client app.

For example, for the requesthttp://api.apifactory.com/inventors?name=nick&surname=danger, the value ofmessage.querystring isname=nick&surname=danger.

Proxy request
message.status.codeIntegerRead only

HTTP status code of the response message from target.

Target response
message.transport.messageTransportMessageRead only

Message of type TransportMessage which is a contextual object.

Proxy request
message.uriStringRead only

The complete URI path (following the domain URL) including query parameters.

For example, for the requesthttp://api.apifactory.com/inventors?name=nikola&surname=tesla, this variable returnsinventors?name=nikola&surname=tesla.

Proxy request
message.verbStringRead only

The HTTP verb (GET,PUT,POST,DELETE, etc.) associated with the request.

Proxy request
message.versionStringRead/Write

The HTTP version associated with the request sent to the ProxyEndpoint from the client application.

Proxy request

For more information on messages, seeMessage template function reference.

messageid

A container for the globally unique ID for the request.

The following table describes the properties of themessageid variable:

PropertyTypeRead/WriteDescriptionScope begins
messageidStringRead only

Holds the globally unique ID for the request, which includes the load balancer host name. This ID allows requests received at the load balancer to be tracked after they are sent to the message processor.

This ID is logged in Apigee error logs to correlate themessageid with the errors.

Proxy request

mint

A helper variable that provides information about monetization.

The following table describes the properties of themint variable:

PropertyTypeRead/WriteDescriptionScope begins
mint.limitscheck.is_request_blockedBooleanRead only

Flag that specifies whether the API request is blocked. Set totrue ifis_subscription_found isfalse.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.limitscheck.is_subscription_foundBooleanRead only

Flag that specifies whether the developer has an active subscription to the API product. Set totrue if a developer has a subscription.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.limitscheck.prepaid_developer_balanceNumericRead only

Current balance in the developer's prepaid account wallet associated with the rate plan's currency.

Proxy request
mint.limitscheck.prepaid_developer_currencyStringRead only

Currency of the balance available in themint.limitscheck.prepaid_developer_balance variable.

Proxy request
mint.limitscheck.purchased_product_nameStringRead only

Name of the associated API product.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.limitscheck.status_messageStringRead only

Additional information about the execution of the MonetizationLimitsCheck policy for debugging purposes.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.mintng_consumption_pricing_ratesStringRead only

Consumption-based fees.

Set the fees whencreating a rate plan.

PostClientFlow
mint.mintng_consumption_pricing_typeStringRead only

Consumption-based pricing type. For example:FIXED_PER_UNIT

Set the consumption-based fees whencreating a rate plan.

PostClientFlow
mint.mintng_currencyStringRead only

Currency for calculating the revenue.

This flow variable has the value of thecurrencymonetization variable.

DataCapture policy
mint.mintng_dev_shareNumericRead only

Revenue to be shared with developer.

Set the revenue to be shared with the developer whencreating a rate plan.

PostClientFlow
mint.mintng_is_apiproduct_monetizedBooleanRead only

Flag that specifies whether the API product is currently monetized (that is, if there is an active rate plan in effect).

This flow variable is added by the VerifyAPIKey or VerifyAccessToken policy attached to the API proxy. SeeAdding an authentication policy.

Proxy request
mint.mintng_priceNumericRead only

Revenue for calculating the developer's share.

The flow variable has the value of therevShareGrossPricemonetization variable.

DataCapture policy and PostClientFlow
mint.mintng_price_multiplierNumericRead only

Factor (multiplier) by which the per-transaction cost is multiplied.

The flow variable has the value of theperUnitPriceMultipliermonetization variable.

DataCapture policy and PostClientFlow
mint.mintng_rateNumericRead only

Rate charged for the API call.

This flow variable shows the consumption-based fee per API call. Set the consumption-based fee whencreating a rate plan. If you have configured theperUnitPriceMultipliermonetization variable in your DataCapture policy, Apigee calculates the cost of the transaction after considering the value of theperUnitPriceMultiplier variable. For more information, seeApi price multiplier inMetrics.

PostClientFlow
mint.mintng_rate_before_multipliersNumericRead only

Rate charged for the API call without theperUnitPriceMultiplier calculation.

If the DataCapture policy captures theperUnitPriceMultipliermonetization variable, this flow variable shows the transaction cost before multiplying the cost byperUnitPriceMultiplier.

PostClientFlow
mint.mintng_rate_plan_idStringRead only

ID of the rate plan.

This flow variable is added by the VerifyAPIKey or VerifyAccessToken policy attached to the API proxy. SeeAdding an authentication policy.

Proxy request
mint.mintng_revenue_share_ratesStringRead only

Revenue share rates.

Set the revenue share rate whencreating a rate plan.

PostClientFlow
mint.mintng_revenue_share_typeStringRead only

Revenue share type. For example:FIXED

Set the revenue share type whencreating a rate plan.

PostClientFlow
mint.mintng_tx_successBooleanRead only

Specifies if the transaction is monetized.

This flow variable has the value of thetransactionSuccessmonetization variable.

DataCapture policy
mint.prepaid_updated_developer_usageNumericRead only

Current usage of the prepaid developer.

The usage is calculated based on your rate plan configuration and the value of theperUnitPriceMultiplier monetization variable.

PostClientFlow
mint.rateplan_end_time_msNumericRead only

Expiration time for the rate plan in milliseconds since epoch.

This flow variable is added by the VerifyAPIKey or VerifyAccessToken policy attached to the API proxy. SeeAdding an authentication policy.

Proxy request
mint.rateplan_start_time_msNumericRead only

Activation time for the rate plan in milliseconds since epoch.

This flow variable is added by the VerifyAPIKey or VerifyAccessToken policy attached to the API proxy. SeeAdding an authentication policy.

Proxy request
mint.statusStringRead only

Status of the monetized call. Populated only on error.

PostClientFlow
mint.status_codeNumericRead only

HTTP status code of the monetized call. Populated only on error.

PostClientFlow
mint.subscription_end_time_msNumericRead only

Expiration time for the API product subscription in milliseconds since epoch.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.subscription_start_time_msNumericRead only

Activation time for the API product subscription in milliseconds since epoch.

This flow variable is available if the MonetizationLimitsCheck policy is attached to the API proxy. See MonetizationLimitsChecks Flow variables.

Proxy request
mint.tx_success_resultBooleanRead only

Indicates whether monetization is successful for the transaction.

Themint.tx_success_result variable can have the following values:

  • tx_success set to true: ThetransactionSuccess variable istrue, and the transaction is monetized. Because the transaction is monetized, the values ofmint.mintng_rate andmint.mintng_dev_share variables are calculated.
  • tx_success set to false: ThetransactionSuccess variable isfalse, and the transaction is not monetized. Because the transaction is not monetized, the values ofmint.mintng_rate andmint.mintng_dev_share variables are not calculated.
  • tx_success not found. Message status code was non 2xx: ThetransactionSuccess variable is not captured and the HTTP status code (message.status.code) of the transaction is not 2xx. The transaction is not monetized.
  • tx_success not found. Message status code was 2xx: ThetransactionSuccess variable is not captured and the HTTP status code (message.status.code) of the transaction is 2xx. The transaction is monetized.
PostClientFlow

For more information, see the following:

organization

A container for theorganization.name property.

The following table describes the properties of theorganization variable:

PropertyTypeRead/WriteDescriptionScope begins
organization.nameStringRead only

Name of the organization.

Proxy request

For more information on organizations, seeUnderstanding organizations.

proxy

The API proxy configuration.

The following table describes the properties of theproxy variable:

PropertyTypeRead/WriteDescriptionScope begins
proxy.basepathStringRead only

The value of the Base Path in your API proxy endpoint configuration. The base path is the left-most URI fragment that follows the host in the URL. Conditional flow URIs follow the base path.

Suppose that you have an API Proxy Endpoint configured with a basepath of/v2/weatherapi. (SeeProxy Endpoint configuration for details.) In that case, if the inbound request uses the URLhttps://myhost.example.net/v2/weatherapi/forecastrss?w=12797282, then:

  • The host name ismyhost.example.net. You can retrieve this by reading the variablerequest.header.host.
  • The base path is/v2/weatherapi. Retrieve this by reading the variableproxy.basepath.
  • The path suffix is/forecastrss. Retrieve this by reading the variableproxy.pathsuffix.

If you define a dynamic Base Path in your API proxy configuration, such as/v2/*/weatherapicode>, then theproxy.basepath variable is set to the dynamic path. To retrieve the actual URL for the request, read and parse the variableproxy.url.

Proxy request
proxy.client.ipStringRead only

TheX-Forwarded-For address of the inbound call, which is the IP address Apigee received from the last external TCP handshake. This could be the calling client or a load balancer.

Proxy request
proxy.nameStringRead only

The name attribute configured for the ProxyEndpoint.

Proxy request
proxy.pathsuffixStringRead only

The value of the path suffix in the URL that is sent from the client and received at the ProxyEndpoint.

The basepath is the left-most path component that uniquely identifies an API proxy within an Environment Group. Suppose that you have an API Proxy endpoint configured with a basepath of/v2/weatherapi. In that case, a request sent tohttps://myhost.example.net/v2/weatherapi/forecastrss?w=12797282, theproxy.pathsuffix variable will hold the string/forecastrss.

Proxy request
proxy.urlStringRead only

Gets the complete URL associated with the proxy request received by the ProxyEndpoint, including any query parameters present.

For an example that constructs arequest URL using the original request host (rather than the router host used inproxy.url), seeAccess request messages.
Proxy request

For more information on working with API proxies, seeUnderstanding APIs and API proxies.

publishmessage

Populated when a the PublishMessage policy executes.

PropertyTypeRead/WriteDescriptionScope begins
publishmessage.message.idStringRead-OnlyReturns themessageId (ID of the published message) from the Pub/Sub server.

Apigee sets this flow variable only if the publish request is successful.

Proxy request

ratelimit

Populated when a Quota or SpikeArrest policy executes.

Note: Theratelimit.policy_name.failed property is the only property applicable to the Spike Arrest policy.

The following table describes the properties of theratelimit variable:

PropertyTypeRead/WriteDescriptionScope begins
ratelimit.policy_name.allowed.countLongRead-OnlyReturns the allowed quota count.PostClientFlow
ratelimit.policy_name.used.countLongRead-OnlyReturns the current quota used within a quota interval.PostClientFlow
ratelimit.policy_name.available.countLongRead-OnlyReturns the available quota count in the quota interval.PostClientFlow
ratelimit.policy_name.exceed.countLongRead-OnlyReturns 1 after the quota is exceeded.PostClientFlow
ratelimit.policy_name.total.exceed.countLongRead-OnlyReturns 1 after the quota is exceeded.PostClientFlow
ratelimit.policy_name.expiry.timeLongRead-Only

Returns the UTC time (in milliseconds), which determines when the quota expires and when the new quota interval starts.

When the Quota policy's type isrollingwindow, this value is not valid because the quota interval never expires.

PostClientFlow
ratelimit.policy_name.identifierStringRead-OnlyReturns the (client) identifier reference attached to the policyPostClientFlow
ratelimit.policy_name.classStringRead-OnlyReturns the class associated with the client identifierPostClientFlow
ratelimit.policy_name.class.allowed.countLongRead-OnlyReturns the allowed quota count defined in the classPostClientFlow
ratelimit.policy_name.class.used.countLongRead-OnlyReturns the used quota within a classPostClientFlow
ratelimit.policy_name.class.available.countLongRead-OnlyReturns the available quota count in the classPostClientFlow
ratelimit.policy_name.class.exceed.countLongRead-OnlyReturns the count of requests that exceeds the limit in the class in the current quota intervalPostClientFlow
ratelimit.policy_name.class.total.exceed.countLongRead-OnlyReturns the total count of requests that exceeds the limit in the class across all quota intervals, so it is the sum ofclass.exceed.count for all quota intervals.PostClientFlow
ratelimit.policy_name.failedBooleanRead-Only

Indicates whether or not the policy failed (true or false).

PostClientFlow

For more information, see the following:

request

The complete request, including any payload present.

For more information about request data, seeHow is request data passed to the backend server?

The following table describes the properties of therequest variable:

PropertyTypeRead/WriteDescriptionScope begins
requestmessageRead only

The complete request, including any payload present.

Proxy request
request.contentStringRead/Write

Gets or sets the payload of the request message.

Proxy request
request.content.as.base64StringRead only

Base64-encoded payload content of the request message.

Proxy request
request.content.as.url.safe.base64StringRead only

URL-safe base64-encoded payload content of the request message.

Proxy request
request.formparam.param_nameStringRead/Write

Gets or sets the value of the specified form parameter in the request sent from the client application.

Proxy request
request.formparam.param_name.
 values
CollectionRead only

All the values of a particular form parameter in the request, formatted as a comma-separated list.

For example, if the payload isa=hello&x=greeting&a=world, then the value ofrequest.formparam.a.values is['hello', 'world'].

Proxy request
request.formparam.param_name.
 values.count
IntegerRead only

Count of all values for the specified form parameter associated with the request.

Proxy request
request.formparam.param_name.NStringRead/Write

The value of theNth particular form parameter in the message. For example, if the form string isa=hello&a=world, then the return value ofrequest.formparam.a.1 ishello.

Proxy request
request.formparams.countIntegerRead only

Count of all parameters associated with the request sent from the client application.

Proxy request
request.formparams.namesCollectionRead only

A list of all parameter names associated with the request.

Proxy request
request.formparams.names.stringStringRead only

A comma-separated list of all form parameter names associated with the request.

Proxy request
request.formstringStringRead only

The completeformparam in the request sent from the client app.

For example,name=test&type=first&group=A.

Proxy request
request.grpc.rpc.nameStringRead only

Applicable only when using a gRPC target server. The RPC name. For information on gRPC proxies, seeCreating gRPC API proxies.

Proxy request
request.grpc.service.nameStringRead only

Applicable only when using a gRPC target server. The gRPC status service name. For information on gRPC proxies, seeCreating gRPC API proxies.

Proxy request
request.header.header_nameStringRead/Write

Gets or sets the value of a particular header found in the request. If the header contains a comma, upon read you will receive only the segment of the text up to the first comma.

For example, if theCache-control header ispublic, maxage=16544, then the return value ofrequest.header.cache-control ispublic.

If you want the entire header as a string, use a variable likerequest.header.header_name.values.string.

Proxy request
request.header.header_name.NStringRead/Write

The value of theNth particular header value in the request. Apigee splits header text values by commas. The index starts at 1 for the left-most value.

For example, if theCache-control header ispublic, maxage=16544, then the return value ofrequest.header.cache-control.2 ismaxage=16544.

Proxy request
request.header.header_name.
 values
CollectionRead only

All the values of a particular header in the request.

Proxy request
request.header.header_name.
 values.count
IntegerRead only

Count of all the values of a particular header in the request.

Proxy request
request.header.header_name.
 values.string
StringRead only

All the values of a particular header in the request, in the form of a single string.

For example, if theCache-control header ispublic, maxage=16544, then the return value ofrequest.header.cache-control.values.string ispublic, maxage=16544.

Proxy request
request.headers.countIntegerRead only

Count of all the headers in the request.

Proxy request
request.headers.namesCollectionRead only

Names of all the headers in the request.

Proxy request
request.headers.names.stringStringRead only

A comma-separated list of names of all the headers in the request.

Proxy request
request.pathStringRead only

The un-proxied resource path (not including the host) to the backend service, excluding query parameters.

For example, if the URI to the backend service ishttps://example.com/rest/api/latest, then the value ofrequest.path is/rest/api/latest.

Proxy request
request.queryparam.param_nameStringRead/Write

The value of a particular query parameter found in the request.

Proxy request
request.queryparam.param_name.NStringRead/Write

The value of theNth query parameter in the request.

For example, if therequest.querystring isa=hello&a=world, then the return value of isrequest.queryparam.a.1 ishello.

As an example of writing multiple values for a single query parameter name, such astype=siteid:1&type=language:us-en&type=currency:USD, set the following:

  • request.queryparam.type.1 tositeid:1
  • request.queryparam.type.2 tolanguage:en-us
  • request.queryparam.type.3 tocurrency:USD
Proxy request
request.queryparam.param_name.
 values
CollectionRead only

All the values of a particular query parameter in the request, formatted as a comma-separated list.

For example, ifrequest.querystring isa=hello&b=lovely&a=world, then the value ofrequest.queryparam.a.values is['hello', 'world'].

Proxy request
request.queryparam.param_name.
 values.count
IntegerRead only

The count of all the values of a particular query parameter in the request.

Proxy request
request.queryparams.countIntegerRead only

The count of all the query parameters in the request.

Proxy request
request.queryparams.namesCollectionRead only

The names of all the query parameters in the request.

Proxy request
request.queryparams.names.stringStringRead only

A comma-separated list of the names of all the query parameters in the request.

Proxy request
request.querystringStringRead only

The complete list of query parameters in the request sent from the client app.

For example, if the request ishttp://host.com/123?name=first&surname=second&place=address, then this variable returnsname=first&surname=second&place=address.

Proxy request
request.transportidStringRead only

ID of the request as type TransportMessage which is contextual.

Proxy request
request.transport.messageTransport-MessageRead only

Request of type TransportMessage which is contexual.

Proxy request
request.uriStringRead only

In an API proxy, the proxy<BasePath> in the ProxyEndpoint (in addition to the proxy's base URL) maps to the target service URL in the TargetEndpoint. For example:

<ProxyEndpoint>
...
  <BasePath>/my-mock-proxy</BasePath>

Points to

<TargetEndpoint>
...
  <HTTPTargetConnection>
    http://mocktarget.apigee.net
  </HTTPTargetConnection>

In therequest,request.uri is the proxy base path + the remainder of the address, including query parameters.

In theresponse,request.uri is the remainder of the address, including query parameters, after the HTTPTargetConnection.

The difference is because the original request came into the proxy, but then the proxy makes another request to the target service.

Let's say the following call is made to our sample proxy, which has a base path of/my-mock-proxy:

http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude

And the proxy calls:

http://mocktarget.apigee.net

Which appends/user?user=Dude to that URL.

  • Request:request.uri =/my-mock-proxy/user?user=Dude
  • Response:request.uri =/user?user=Dude
Proxy request (differs in the response)
request.urlStringRead only

The complete URL of the request made to the target endpoint, including the query string parameters, but not including the port number (if specified).

For example, if you make a call to a sample proxyhttp://my_org-test.apigee.net/my-mock-proxy/user?user=Dude, and the target endpoint ishttp://example.com:8080, then the value is:

  • Request: n/a
  • Response:http://example.com/user?user=Dude
Target response
request.verbStringRead only

The HTTP verb used for the request. For example,GET,PUT, andDELETE.

Proxy request
request.versionStringRead only

The HTTP version of the request. For example,1.1.

Proxy request

response

The complete response, including any payload present.

The following table describes the properties of theresponse variable:

PropertyTypeRead/WriteDescriptionScope begins
responsemessageRead/Write

Complete response message returned by target.

Target response
response.contentStringRead/Write

Payload content of the response message returned by the target.

Target response
response.content.as.base64StringRead only

Base64-encoded payload content of the response message.

Target response
response.content.as.url.safe.base64StringRead only

URL-safe base64-encoded payload content of the response message.

Target response
response.event.current.contentStringRead/Write

The content returned in an EventFlow streaming response. SeeStreaming server-sent events for more information.

EventFlow response
response.event.current.countIntegerRead

Incrementally counts the number of response events sent. This value is updated for each received event. SeeStreaming server-sent events for more information.

.
EventFlow response
response.header.header_nameStringRead/Write

Gets or sets the value of a specified HTTP header in the response.

If the header text includes a comma, Apigee infers multiple values. In this case,response.header.header_name returns the first value only.

For example, if theCache-control header ispublic,maxage=16544, then the return value ofresponse.header.cache-control ispublic.

If you want the entire header as a string, use a variable likeresponse.header.header_name.values.string.

Target response
response.header.header_name.
 values
CollectionRead only

All the values of a specified HTTP header in response.

Target response
response.header.header_name.
 values.count
IntegerRead only

Count of all the values of the specified HTTP header in response.

Target response
response.header.header_name.
 values.string
StringRead only

All the values of a particular header in the response, in the form of a single string.

For example, if theCache-control header ispublic,maxage=16544, then the return value ofresponse.header.cache-control.values.string ispublic,maxage=16544.

Target response
response.header.header_name.NStringRead/Write

The value of theNth particular header value in the response. Apigee splits header text values by commas. The index starts at 1 for the left-most value.

For example, if theCache-control header ispublic,maxage=16544, thenresponse.header.cache-control.2 returnsmaxage=16544.

Target response
response.headers.countIntegerRead only

Count of all the headers in the response.

Target response
response.headers.namesCollectionRead only

The names of all the headers in the response.

Target response
response.headers.names.stringStringRead only

A comma-separated list of the names of all the headers in the response.

Target response
response.status.codeIntegerRead/Write

The response code returned for a request. You can use this variable to override the response status code, which is stored inmessage.status.code. For more, seemessage.

Target response
response.transport.messageStringRead only

Response of type TransportMessage which is a contexual object.

Target response

route

Specifies the names of the<RouteRule> and TargetEndpoint.

The following table describes the properties of theroute variable:

PropertyTypeRead/WriteDescriptionScope begins
route.nameStringRead only

The name of the<RouteRule> that was executed in the ProxyEndpoint. For example,default. A RouteRule references an API proxy TargetEndpoint to execute.

Target request
route.targetStringRead only

The name of the TargetEndpoint that was executed. For example,default.

Target request

servicecallout

Describes the TargetEndpoint for aServiceCallout policy.

The following table describes the properties of theservicecallout variable:

PropertyTypeRead/WriteDescriptionScope begins
servicecallout.policy_name.expectedcnStringRead/Write

The expected Common Name of the TargetEndpoint as referred to in aServiceCallout policy. This is meaningful only when the TargetEndpoint refers to an TLS/SSL endpoint.

Proxy request
servicecallout.policy_name.target.urlStringRead/Write

The TargetEndpoint URL for a particularServiceCallout policy.

Proxy request
servicecallout.requesturiStringRead/Write

The TargetEndpoint URI for aServiceCallout policy. The URI is the TargetEndpoint URL without the protocol and domain specification.

Proxy request

system

Specifies the IP address of the system, as well as details about the proxy.

The following table describes the properties of thesystem variable:

PropertyTypeRead/WriteDescriptionScope begins
system.interface.interface_nameStringRead only

IP address of the system.

Proxy request
system.pod.nameStringRead only

The name of the pod where the proxy is running.

Proxy request
system.region.nameStringRead only

The name of the data center region where the proxy is running.

Proxy request
system.timeStringRead only

The time when this variable was read. For example, Wed, 21 Aug 2013 19:16:47 GMT.

This value is the string representation of the corresponding value ofsystem.timestamp. For example, Wed, 21 Aug 2013 19:16:47 GMT corresponds to the timestamp value of 1377112607413.

Proxy request
system.time.yearIntegerRead only

The year portion ofsystem.time.

Proxy request
system.time.monthIntegerRead only

The month portion ofsystem.time.

Proxy request
system.time.dayIntegerRead only

The day of month portion ofsystem.time.

Proxy request
system.time.dayofweekIntegerRead only

The day of the week portion ofsystem.time.

Proxy request
system.time.hourIntegerRead only

The hour portion ofsystem.time.

Proxy request
system.time.minuteIntegerRead only

The minute portion ofsystem.time.

Proxy request
system.time.secondIntegerRead only

The second portion ofsystem.time.

Proxy request
system.time.millisecondIntegerRead only

The millisecond portion ofsystem.time.

Proxy request
system.time.zoneStringRead only

Timezone of the system.

Proxy request
system.timestampLongRead only

The 64-bit (long) integer representing the time that this variable was read. The value is the number of milliseconds elapsed since midnight, on January 1, 1970 UTC. For example,1534783015000.

Proxy request
system.uuidStringRead only

The UUID of the message processor handling the proxy.

Proxy request

target

Describes the target of the request.

The following table describes the properties of thetarget variable:

PropertyTypeRead/WriteDescriptionScope begins
target.basepathStringRead only

The resource path (not including the domain) to the target service, excluding query parameters, that is defined in the proxy's TargetEndpoint.

For example, say an API proxy calls the following target:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net/user?user=Dude</URL>
  </HTTPTargetConnection>

In this example, thetarget.basepath is/user.

If the target were this:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
  </HTTPTargetConnection>

Thetarget.basepath would be null.

Target request
target.copy.pathsuffixBooleanRead/Write

Whentrue, the request forwarded from ProxyEndpoint to TargetEndpoint retains the path suffix (the URI path fragment following the URI defined in the ProxyEndpoint base path).

Target request
target.copy.queryparamsBooleanRead/Write

Whentrue, request forwarded from ProxyEndpoint to TargetEndpoint retains query parameters.

Target request
target.countryStringRead only

Country of the TLS/SSL certificate presented by the target server

Target response
target.cnStringRead only

The Common Name of the TargetEndpoint. This is meaningful only when the TargetEndpoint refers to an TLS/SSL endpoint.

Target request
target.email.addressStringRead only

Email address of the TLS/SSL certificate presented by the target server

Target response
target.evaluated.urlStringRead/Write

The URL configured in the TargetEndpoint XML file or the dynamic target URL (iftarget.evaluated.url is set during the message flow). The variable does not include any additional path elements or query parameters. Returns null if called out of scope or otherwise unset.

You can use aJavaScript policy or anAssignMessage policy that uses theAssignVariable element to set this variable. Attach the policy to the TargetEndpoint Request flow.

Important:target.evaluated.url andtarget.url serve the same purpose except thattarget.evaluated.url should be used whenever the URL is dynamically constructed based on user input.
Target request
target.expectedcnStringRead/Write

The expected Common Name of the TargetEndpoint. This is meaningful only when the TargetEndpoint refers to an TLS/SSL endpoint.

Proxy request
target.header.hostStringRead/Write

The flow variable used by Apigee to set theHost header value for the outgoing request to the target. Used to set the value to a hostname in situations when an IP address is used in the Target URL or Target Server, as would be the case with a PSC Endpoint based target.

Target request
target.hostStringRead only

The domain name of the target service returning the response to the API proxy.

Target response
target.ipStringRead only

The IP address of the target service returning the response to the API proxy.

Target response
target.localityStringRead only

Locality (city) of the TLS/SSL certificate presented by the target server

Target response
target.nameStringRead only

Target to which message is reaching from targetendpoint.

Target request
target.organizationStringRead only

Organization of the TLS/SSL certificate presented by the target server.

Target response
target.organization.unitStringRead only

Organization unit of the TLS/SSL certificate presented by the target server.

Target response
target.portIntegerRead only

The port number of the target service returning the response to the API proxy.

Target response
target.received.end.timeStringRead only

The time, expressed in string form, at which the TargetEndpoint finished receiving the response from the target. For example, Wed, 21 Aug 2013 19:16:47 UTC.

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413..

Target response
target.received.end.
  timestamp
LongRead only

The timestamp value specifying when the TargetEndpoint finished receiving the response from the target. For example,1534783015000. This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target response
target.received.start.timeStringRead only

The time, expressed in string form, at which the TargetEndpoint started receiving the response from the target. For example, Wed, 21 Aug 2013 19:16:47 UTC.

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Target response
target.received.start.
  timestamp
LongRead only

The timestamp value specifying when the TargetEndpoint started receiving the response from the target. For example,1534783015000. This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target response
target.schemeStringRead only

Scope begins: Target response
Type: String
Permission: Read/Write

Returns http or https depending on the request message.

Target request
target.sent.end.timeStringRead only

The time, expressed in string form, at which the proxy stopped sending the request to the URL specified in the TargetEndpoint. For example, Wed, 21 Aug 2013 19:16:47 UTC.

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Target request
target.sent.end.timestampLongRead only

The timestamp value specifying when the proxy finished sending the request to the URL specified in the TargetEndpoint. For example, 1377112607413. This value is a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target request
target.sent.start.timeStringRead only

The time, expressed in string form, at which the proxy began sending the request to the URL specified in the TargetEndpoint. For example, Wed, 21 Aug 2013 19:16:47 UTC.

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, Wed, 21 Aug 2013 19:16:47 UTC corresponds to the timestamp value of 1377112607413.

Target request
target.sent.start.timestampLongRead only

The timestamp value specifying when the proxy started sending the request to the URL specified in the TargetEndpoint. For example,1534783015000. This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target request
target.ssl.enabledBooleanRead only

Whether TargetEndpoint is running on TLS/SSL.

Proxy request
target.stateStringRead only

State of the TLS/SSL certificate presented by the target server.

Target response
target.urlStringRead/Write

The URL configured in the TargetEndpoint XML file or the dynamic target URL (iftarget.url is set during the message flow). The variable does not include any additional path elements or query parameters. Returns null if called out of scope or otherwise unset.

You can use aJavaScript policy or anAssignMessage policy that uses theAssignVariable element to set this variable. Attach the policy to the TargetEndpoint Request flow.

Important:target.url andtarget.evaluated.url serve the same purpose except thattarget.evaluated.url should be used whenever the URL is dynamically constructed based on user input.target.url should not be used for dynamically constructed URLs based on user input.
Target request

variable

A container for thevariable.expectedcn property.

The following table describes the properties of thevariable variable:

PropertyTypeRead/WriteDescriptionScope begins
variable.expectedcnStringRead/Write

Variable exposed for the common name if it's running on TLS/SSL.

Proxy request

For more information on working with TLS, seeOptions for configuring TLS.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-17 UTC.