---
title: VCL objects
summary: null
url: https://www.fastly.com/documentation/reference/api/vcl-services
---

Most Fastly services are powered by [Fastly VCL](https://www.fastly.com/documentation/reference/vcl/). While we provide full access to upload and run your own VCL code, it's also possible to _generate_ the VCL you need to perform the most common request and response processing using these **VCL service configuration objects**. For example, the _Header_ object could be used to delete cookies on inbound requests, or the _Cache setting_ object to set a custom cache lifetime for responses. To make these template actions respond only on certain types of requests or responses that meet particular criteria, attach a _Condition_.

In addition to these high level tools, you can also use APIs in this section to upload raw VCL code, either in subroutine-specific _snippets_ or as a full VCL file.

- [Apex redirect](https://www.fastly.com/documentation/reference/api/vcl-services/apex-redirect/) - Supports redirecting traffic for apex domains, subdomains, or wildcard domains to a WWW subdomain.
- [Cache settings](https://www.fastly.com/documentation/reference/api/vcl-services/cache-settings/) - Configures cache lifetime for objects stored in the Fastly cache, overriding cache freshness information that would otherwise be determined from cache-related headers on the HTTP response. When used in conjunction with conditions, cache settings objects provide detailed control over how long content persists in the cache.
- [Condition](https://www.fastly.com/documentation/reference/api/vcl-services/condition/) - Conditions are used to control whether logic defined in configured VCL objects is applied for a particular client request. A condition contains a VCL conditional expression that evaluates to either true or false and is used to determine whether the condition is met. The type of the condition determines where it is executed and the VCL variables that can be evaluated as part of the conditional logic.
- [Gzip](https://www.fastly.com/documentation/reference/api/vcl-services/gzip/) - Gzip configuration allows you to choose resources to automatically compress.  For more information about compressing and decompressing data with Fastly, check out our <a href="https://www.fastly.com/documentation/learning/concepts/compression/">concept guide to compression</a>.
- [Header](https://www.fastly.com/documentation/reference/api/vcl-services/header/) - Header objects are used to add, modify, or delete headers from requests and responses. The header content can be simple strings or be derived from variables inside Varnish. Regular expressions can be used to customize the headers even further.
- [HTTP3/QUIC](https://www.fastly.com/documentation/reference/api/vcl-services/http3/) - Supports the use of the HTTP/3 (QUIC) protocol.
- [Rate Limiter](https://www.fastly.com/documentation/reference/api/vcl-services/rate-limiter/) - Rate limiters add configurable origin request rate limiting to a service. This information is part of a limited availability release. For more information, see our <a href="https://docs.fastly.com/products/fastly-product-lifecycle#limited-availability">product and feature lifecycle</a> descriptions. To use this feature you must purchase a Professional or Premier Platform subscription for either <a href="https://docs.fastly.com/products/signal-sciences-cloud-waf">Signal Sciences Cloud WAF</a> or <a href="https://docs.fastly.com/products/signal-sciences-next-gen-waf">Signal Sciences Next-Gen WAF</a> and have a <a href="https://www.fastly.com/documentation/guides/account-info/billing/account-types/">paid account with a contract</a> for <a href="https://docs.fastly.com/products/fastlys-legacy-full-site-delivery-services">full-site delivery</a>.
- [Request settings](https://www.fastly.com/documentation/reference/api/vcl-services/request-settings/) - Settings used to customize Fastly's request handling. When used with <a href="https://www.fastly.com/documentation/reference/api/vcl-services/condition/">Conditions</a> the Request Settings object allows you to fine tune how specific types of requests are handled.
- [Response object](https://www.fastly.com/documentation/reference/api/vcl-services/response-object/) - Allows you to create synthetic responses that exist entirely on the varnish machine. Useful for creating error or maintenance pages that exists outside the scope of your backend architecture. Best when used with <a href="https://www.fastly.com/documentation/reference/api/vcl-services/condition/">Condition</a> objects.
- [Settings](https://www.fastly.com/documentation/reference/api/vcl-services/settings/) - Handles default settings for a particular version of a service.
- [VCL](https://www.fastly.com/documentation/reference/api/vcl-services/vcl/) - A VCL is a Varnish configuration file used to customize the configuration for a Service.
- [VCL Diff](https://www.fastly.com/documentation/reference/api/vcl-services/diff/) - Compare the changes in generated VCL between two versions of a service. This is sometimes called a "diff" because the comparison may highlight "differences" between the versions. To compare the configuration changes between two versions of a service represented in YAML format instead, use the related <a href="https://www.fastly.com/documentation/reference/api/utils/diff/#diff-service-versions">diff</a> endpoint.
- [VCL Snippets](https://www.fastly.com/documentation/reference/api/vcl-services/snippet/) - VCL Snippets are blocks of VCL logic inserted into your service's configuration that don't require custom VCL.
