Overview
urql is a family of GraphQL clients for React, Vue, Solid, Svelte, and other frameworks. It starts with simple document caching and lets applications add or replace exchanges for authentication, retry behavior, normalized caching, debugging, and other requirements.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Run queries and mutations with a simple document cache
Configure a GraphQL endpoint on a client and use framework bindings to execute operations with straightforward default caching.
Extend request behavior through exchanges
Exchanges can add authentication, retries, debugging, and Graphcache-based normalized caching as application needs grow.
For GraphQL apps that want incremental client complexity
It fits teams that want a small starting point and the option to add SSR or normalized caching later without replacing the client model.
Sources: [2]
Watch `@urql/core` deduplication and cache semantics
Multiple @urql/core versions can cause type and bundle issues. The default document cache and Graphcache also have different semantics, so choose based on consistency requirements.
Official sources
- [1]urql-graphql/urql repository(2026-09-21)
- [2]urql README(2026-09-21)
- [3]urql documentation(2026-09-21)
- [4]urql React package(2026-09-21)
- [5]urql MIT license(2026-09-21)
Supplemental curator note
urql is designed to start with a small document cache and add capabilities such as Graphcache when needed. The React `urql` package is 5.0.4 and currently expects `@urql/core` 6.x and React 16.8+. Duplicate `@urql/core` versions can cause TypeScript and bundle problems, so dependency resolution should be checked.
Try it in 3 steps
- 1
Install urql for React
Add the React package and GraphQL peer dependency.
npm install urql graphql - 2
Create a client and provide it
Configure the GraphQL endpoint and provide the client to the React tree.
const client = createClient({ url: 'https://your-api.example/graphql' }); <Provider value={client}>…</Provider> - 3
Run the first query with useQuery
Inspect fetching, error, and data results and observe the default document-cache behavior.
useQuery({ query: "query { ... }" })
Growth
Growth trends · Last 30 days
8,977 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 16
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- graphql
- graphql-client
- exchange
- graphql-clients
- complex-apps
- Stars
- 8,977
- Forks
- 480
- Watchers
- 87
- Open issues
- 16
- Contributors
- 248
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Sep 9, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- AWS Amplify JavaScript9,561 Stars
3 shared tag(s) · 2 shared category(s) · Same language
AWS Amplify's JavaScript library for using authentication, APIs, storage, and other cloud capabilities from web and React Native applications. The current `aws-amplify` package is 6.21.0.
TypeScript - Onfido GraphQL Request1 Stars
3 shared tag(s) · 1 shared category(s) · Same language
An Onfido fork of a minimal GraphQL client that defaults to global fetch and accepts full RequestInit options for requests.
TypeScript - Hey.xyz (open-source snapshot)29,366 Stars
3 shared tag(s) · Same language
A historical snapshot preserving the last public open-source Hey.xyz/Lens social application code from before May 15, 2026.
TypeScript - tRPC40,630 Stars
2 shared tag(s) · 2 shared category(s) · Same language
A TypeScript RPC framework that propagates server types to clients so inputs, outputs, and errors stay type-safe without separate schema or code generation.
TypeScript - Hoppscotch80,429 Stars
2 shared tag(s) · 1 shared category(s) · Same language
An API development ecosystem spanning REST, GraphQL, WebSocket, MQTT, Web/Desktop/CLI clients, and self-hosting.
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.