# Urql > `urql`is a highly customizable and versatile GraphQL client with which you add on features like ## Pages - [Overview](docs-readme.md): `urql`is a highly customizable and versatile GraphQL client with which you add on features like - [Advanced](docs-advanced-readme.md): In this chapter we'll dive into various topics of "advanced"`urql`usage. This is admittedly a - [Authentication](docs-advanced-authentication.md): Most APIs include some type of authentication, usually in the form of an auth token that is sent with each request he... - [Authoring Exchanges](docs-advanced-authoring-exchanges.md): As we've learned [on the "Architecture" page](../architecture.md) page,`urql`'s`Client`structures - [Auto-populate Mutations](docs-advanced-auto-populate-mutations.md): The`populateExchange`allows you to auto-populate selection sets in your mutations using the - [Debugging](docs-advanced-debugging.md): We've tried to make debugging in`urql`as seamless as possible by creating tools for users of`urql` - [Persistence & Uploads](docs-advanced-persistence-and-uploads.md): `urql`supports (Automatic) Persisted Queries, and File Uploads via GraphQL - [Retrying Operations](docs-advanced-retry-operations.md): The`retryExchange`lets us retry specific operation, by default it will - [Server-side Rendering](docs-advanced-server-side-rendering.md): In server-side rendered applications we often need to set our application up so that data will be - [Subscriptions](docs-advanced-subscriptions.md): One feature of`urql`that was not mentioned in the ["Basics" sections](../basics/README.md) is`urql`'s - [Testing](docs-advanced-testing.md): Testing with`urql`can be done in a multitude of ways. The most effective and straightforward - [API](docs-api-readme.md): `urql`is a collection of multiple packages. You'll likely be using one of the framework bindings - [@urql/exchange-auth](docs-api-auth-exchange.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/core](docs-api-core.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/exchange-execute](docs-api-execute-exchange.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/exchange-graphcache](docs-api-graphcache.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/preact](docs-api-preact.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/exchange-refocus](docs-api-refocus-exchange.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/exchange-request-policy](docs-api-request-policy-exchange.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/exchange-retry](docs-api-retry-exchange.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/svelte](docs-api-svelte.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [urql (React)](docs-api-urql.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [@urql/vue](docs-api-vue.md): **Note:** These API docs are deprecated as we now keep TSDocs in all published packages. - [Architecture](docs-architecture.md): `urql`is a highly customizable and flexible GraphQL client. - [Basics](docs-basics-readme.md): In this chapter we'll explain the basics of`urql`and how to get started with using it without any - [Core / Node.js](docs-basics-core.md): The`@urql/core`package contains`urql`'s`Client`, some common utilities, and some default - [Document Caching](docs-basics-document-caching.md): By default,`urql`uses a concept called _Document Caching_. It will avoid sending the same requests - [Errors](docs-basics-errors.md): When we use a GraphQL API there are two kinds of errors we may encounter: Network Errors and GraphQL - [React/Preact Bindings](docs-basics-react-preact.md): This guide covers how to install and setup`urql`and the`Client`, as well as query and mutate data, - [Svelte Bindings](docs-basics-svelte.md): This "Getting Started" guide covers how to install and set up`urql`and provide a`Client`for - [TypeScript integration](docs-basics-typescript-integration.md): URQL, with the help of [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen), can leverage the typed-de... - [UI-Patterns](docs-basics-ui-patterns.md): This page is incomplete. You can help us expanding it by suggesting more patterns or asking us about common problems ... - [Vue Bindings](docs-basics-vue.md): The`@urql/vue`bindings have been written with [Vue - [Comparison](docs-comparison.md): This comparison page aims to be detailed, unbiased, and up-to-date. If you see any information that - [Graphcache](docs-graphcache-readme.md): In`urql`, caching is fully configurable via [exchanges](../architecture.md), and the default - [Cache Updates](docs-graphcache-cache-updates.md): As we've learned [on the page on "Normalized - [Errors](docs-graphcache-errors.md): **This document lists out all errors and warnings in`@urql/exchange-graphcache`.** - [Local Directives](docs-graphcache-local-directives.md): Previously, we've learned about local resolvers [on the "Normalized Caching" - [Local Resolvers](docs-graphcache-local-resolvers.md): Previously, we've learned about local resolvers [on the "Normalized Caching" - [Normalized Caching](docs-graphcache-normalized-caching.md): In GraphQL, like its name suggests, we create schemas that express the relational nature of our - [Offline Support](docs-graphcache-offline.md): _Graphcache_ allows you to build an offline-first app with built-in offline and persistence support, - [Schema Awareness](docs-graphcache-schema-awareness.md): Previously, [on the "Normalized Caching" page](./normalized-caching.md) we've seen how Graphcache - [Showcase](docs-showcase.md): `urql`wouldn't be the same without our growing and loving community of users, - [URQL GraphQL Client Documentation](main-readme.md): A highly customisable and versatile GraphQL client