> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fingerprint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Flow worker request headers

When [Edge Bot Detection](/docs/flow-deployments#using-a-flow-worker-to-detect-bots-at-the-edge) is enabled on a [Cloudflare Flow worker](/docs/flow-deployments), the worker enriches requests it forwards to your origin with HTTP request headers derived from the Automation Intelligence API response.

This page maps each request header to the corresponding property on the [`Get an event by event ID`](/reference/server-api-get-event) response, so you can cross-reference field semantics, value types, and constraints between the two surfaces.

<Info>
  Header values are encoded as [RFC 9651 structured fields](https://www.rfc-editor.org/info/rfc9651/): strings are quoted (`"AWS"`), booleans are sent as `?1` only for true values (false values are omitted entirely), and Unix timestamps use the `@` prefix (`@1733943233`).

  A single request is either IPv4 or IPv6, so only the matching set of `fp-ip-info-v4-*` or `fp-ip-info-v6-*` headers is set. Headers with no detected value are omitted entirely.
</Info>

## IP intelligence headers

### Address

| Request Header          | Event property                                                                      |
| ----------------------- | ----------------------------------------------------------------------------------- |
| `fp-ip-info-v4-address` | [`ip_info.v4.address`](/reference/server-api-get-event#response-ip-info-v4-address) |
| `fp-ip-info-v6-address` | [`ip_info.v6.address`](/reference/server-api-get-event#response-ip-info-v6-address) |

### Geolocation, ASN, and datacenter

The following headers are provided for both IPv4 and IPv6 (replace `v4` with `v6` for IPv6 requests).

| Request Header                              | Event property                                                                                                              |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `fp-ip-info-v4-geolocation-accuracy-radius` | [`ip_info.v4.geolocation.accuracy_radius`](/reference/server-api-get-event#response-ip-info-v4-geolocation-accuracy-radius) |
| `fp-ip-info-v4-geolocation-latitude`        | [`ip_info.v4.geolocation.latitude`](/reference/server-api-get-event#response-ip-info-v4-geolocation-latitude)               |
| `fp-ip-info-v4-geolocation-longitude`       | [`ip_info.v4.geolocation.longitude`](/reference/server-api-get-event#response-ip-info-v4-geolocation-longitude)             |
| `fp-ip-info-v4-geolocation-postal-code`     | [`ip_info.v4.geolocation.postal_code`](/reference/server-api-get-event#response-ip-info-v4-geolocation-postal-code)         |
| `fp-ip-info-v4-geolocation-timezone`        | [`ip_info.v4.geolocation.timezone`](/reference/server-api-get-event#response-ip-info-v4-geolocation-timezone)               |
| `fp-ip-info-v4-geolocation-city-name`       | [`ip_info.v4.geolocation.city_name`](/reference/server-api-get-event#response-ip-info-v4-geolocation-city-name)             |
| `fp-ip-info-v4-geolocation-country-code`    | [`ip_info.v4.geolocation.country_code`](/reference/server-api-get-event#response-ip-info-v4-geolocation-country-code)       |
| `fp-ip-info-v4-geolocation-continent-code`  | [`ip_info.v4.geolocation.continent_code`](/reference/server-api-get-event#response-ip-info-v4-geolocation-continent-code)   |
| `fp-ip-info-v4-asn-name`                    | [`ip_info.v4.asn.name`](/reference/server-api-get-event#response-ip-info-v4-asn-name)                                       |
| `fp-ip-info-v4-asn-network`                 | [`ip_info.v4.asn.network`](/reference/server-api-get-event#response-ip-info-v4-asn-network)                                 |
| `fp-ip-info-v4-asn-type`                    | [`ip_info.v4.asn.type`](/reference/server-api-get-event#response-ip-info-v4-asn-type)                                       |
| `fp-ip-info-v4-datacenter-name`             | [`ip_info.v4.datacenter_name`](/reference/server-api-get-event#response-ip-info-v4-datacenter-name)                         |

### Proxy

Proxy headers are only set when a proxy is detected. When no proxy is detected, none of the `fp-proxy-*` headers are sent.

| Request Header                  | Event property                                                                                      |
| ------------------------------- | --------------------------------------------------------------------------------------------------- |
| `fp-proxy`                      | [`proxy`](/reference/server-api-get-event#response-proxy)                                           |
| `fp-proxy-confidence`           | [`proxy_confidence`](/reference/server-api-get-event#response-proxy-confidence)                     |
| `fp-proxy-details-proxy-type`   | [`proxy_details.proxy_type`](/reference/server-api-get-event#response-proxy-details-proxy-type)     |
| `fp-proxy-details-last-seen-at` | [`proxy_details.last_seen_at`](/reference/server-api-get-event#response-proxy-details-last-seen-at) |
| `fp-proxy-details-provider`     | [`proxy_details.provider`](/reference/server-api-get-event#response-proxy-details-provider)         |

### VPN

VPN headers are only set when a VPN is detected. Individual `fp-vpn-methods-*` headers are only set for detection methods that triggered; methods that did not trigger are omitted.

| Request Header                     | Event property                                                                                            |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `fp-vpn`                           | [`vpn`](/reference/server-api-get-event#response-vpn)                                                     |
| `fp-vpn-confidence`                | [`vpn_confidence`](/reference/server-api-get-event#response-vpn-confidence)                               |
| `fp-vpn-methods-timezone-mismatch` | [`vpn_methods.timezone_mismatch`](/reference/server-api-get-event#response-vpn-methods-timezone-mismatch) |
| `fp-vpn-methods-public-vpn`        | [`vpn_methods.public_vpn`](/reference/server-api-get-event#response-vpn-methods-public-vpn)               |
| `fp-vpn-methods-auxiliary-mobile`  | [`vpn_methods.auxiliary_mobile`](/reference/server-api-get-event#response-vpn-methods-auxiliary-mobile)   |
| `fp-vpn-methods-os-mismatch`       | [`vpn_methods.os_mismatch`](/reference/server-api-get-event#response-vpn-methods-os-mismatch)             |
| `fp-vpn-methods-relay`             | [`vpn_methods.relay`](/reference/server-api-get-event#response-vpn-methods-relay)                         |

### IP blocklist

| Request Header             | Event property                                                                            |
| -------------------------- | ----------------------------------------------------------------------------------------- |
| `fp-ip-blocklist-tor-node` | [`ip_blocklist.tor_node`](/reference/server-api-get-event#response-ip-blocklist-tor-node) |

## Bot intelligence headers

Bot intelligence headers are only set for requests attributed to a bot or AI automation. Otherwise, none of the `fp-bot-info-*` headers are sent.

| Request Header         | Event property                                                                    |
| ---------------------- | --------------------------------------------------------------------------------- |
| `fp-bot-info-category` | [`bot_info.category`](/reference/server-api-get-event#response-bot-info-category) |
| `fp-bot-info-provider` | [`bot_info.provider`](/reference/server-api-get-event#response-bot-info-provider) |
| `fp-bot-info-name`     | [`bot_info.name`](/reference/server-api-get-event#response-bot-info-name)         |
| `fp-bot-info-identity` | [`bot_info.identity`](/reference/server-api-get-event#response-bot-info-identity) |
