---
title: Client request
summary: null
url: https://www.fastly.com/documentation/reference/vcl/variables/client-request
---

These variables describe the HTTP request received by Fastly.

### Device detection

Fastly exposes a number of VCL variables describing the client hardware and software
based on known `User-Agent` strings. The data is automatically updated on a
regular basis.

The data in these variables is based on mapping client-provided `User-Agent` headers 
to an open source dataset provided by Fastly. Fastly periodically updates the dataset 
to have the most recent data, but we cannot guarantee its accuracy.

#### Presence of data

It's possible for data to be not known for a particular `User-Agent`. When not
present, numerical variables are set to `-1`, booleans are set `false`, and
strings are set to the empty string.

It's possible to distinguish data being not known from data being explicitly
set `false` by making use of the `client.identified` variable.
`client.identified` is set when all features are identified, and so a false
value for a property can be seen to be meaningful.

To find out more about variables that provide device vendor, model, and
manufacturer details, contact your Fastly account manager or sales
representative, or contact [support@fastly.com](mailto:support@fastly.com).

- [client.bot.name](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-bot-name/)
- [client.browser.name](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-browser-name/)
- [client.browser.version](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-browser-version/)
- [client.class.bot](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-class-bot/)
- [client.class.browser](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-class-browser/)
- [client.display.touchscreen](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-display-touchscreen/)
- [client.identified](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-identified/)
- [client.os.name](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-os-name/)
- [client.os.version](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-os-version/)
- [client.platform.gameconsole](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-gameconsole/)
- [client.platform.hwtype](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-hwtype/)
- [client.platform.mediaplayer](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-mediaplayer/)
- [client.platform.mobile](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-mobile/)
- [client.platform.model](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-model/)
- [client.platform.smarttv](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-smarttv/)
- [client.platform.tablet](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-tablet/)
- [client.platform.vendor](https://www.fastly.com/documentation/reference/vcl/variables/client-request/client-platform-vendor/)
- [fastly_info.h2.is_push](https://www.fastly.com/documentation/reference/vcl/variables/client-request/fastly-info-h2-is-push/)
- [fastly_info.host_header](https://www.fastly.com/documentation/reference/vcl/variables/client-request/fastly-info-host-header/)
- [req.body](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-body/)
- [req.body_bytes_read](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-body-bytes-read/)
- [req.body.base64](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-body-base64/)
- [req.bytes_read](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-bytes-read/)
- [req.enable_range_on_pass](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-enable-range-on-pass/)
- [req.enable_segmented_caching](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-enable-segmented-caching/)
- [req.hash_always_miss](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-hash-always-miss/)
- [req.hash_ignore_busy](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-hash-ignore-busy/)
- [req.header_bytes_read](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-header-bytes-read/)
- [req.headers](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-headers/)
- [req.http.{NAME}](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-http/)
- [req.is_background_fetch](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-is-background-fetch/)
- [req.is_purge](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-is-purge/)
- [req.method](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-method/)
- [req.postbody](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-postbody/)
- [req.proto](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-proto/)
- [req.request](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-request/)
- [req.url](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url/)
- [req.url.basename](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url-basename/)
- [req.url.dirname](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url-dirname/)
- [req.url.ext](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url-ext/)
- [req.url.path](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url-path/)
- [req.url.qs](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-url-qs/)
- [req.xid](https://www.fastly.com/documentation/reference/vcl/variables/client-request/req-xid/)
- [time.elapsed](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed/)
- [time.elapsed.msec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed-msec/)
- [time.elapsed.msec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed-msec-frac/)
- [time.elapsed.sec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed-sec/)
- [time.elapsed.usec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed-usec/)
- [time.elapsed.usec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-elapsed-usec-frac/)
- [time.end](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end/)
- [time.end.msec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end-msec/)
- [time.end.msec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end-msec-frac/)
- [time.end.sec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end-sec/)
- [time.end.usec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end-usec/)
- [time.end.usec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-end-usec-frac/)
- [time.start](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start/)
- [time.start.msec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start-msec/)
- [time.start.msec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start-msec-frac/)
- [time.start.sec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start-sec/)
- [time.start.usec](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start-usec/)
- [time.start.usec_frac](https://www.fastly.com/documentation/reference/vcl/variables/client-request/time-start-usec-frac/)
