The @tanstack/svelte-query package offers a 1st-class API for using TanStack Query via Svelte.


Include the QueryClientProvider near the root of your project:

<script lang="ts">
import { QueryClient, QueryClientProvider } from '@tanstack/svelte-query'
import Example from './lib/Example.svelte'
const queryClient = new QueryClient()
<QueryClientProvider client={queryClient}>
<Example />

Then call any function (e.g. createQuery) from any component:

<script lang="ts">
import { createQuery } from '@tanstack/svelte-query'
const query = createQuery({
queryKey: ['todos'],
queryFn: () => fetchTodos(),
{#if $query.isLoading}
{:else if $query.isError}
<p>Error: {$query.error.message}</p>
{:else if $query.isSuccess}
{#each $query.data as todo}


If you are using SvelteKit, please have a look at SSR & SvelteKit.

Available Functions

Svelte Query offers useful functions and components that will make managing server state in Svelte apps easier.

  • createQuery
  • createQueries
  • createInfiniteQuery
  • createMutation
  • useQueryClient
  • useIsFetching
  • useIsMutating
  • useHydrate
  • <QueryClientProvider>
  • <Hydrate>

Important Differences between Svelte Query & React Query

Svelte Query offers an API similar to React Query, but there are some key differences to be mindful of.

  • Many of the functions in Svelte Query return a Svelte store. To access values on these stores reactively, you need to prefix the store with a $. You can learn more about Svelte stores here.
  • If your query or mutation depends on variables, you must assign it reactively. You can read more about this here.
Want to Skip the Docs?
Query.gg - The Official React Query Course
“This course is the best way to learn how to use React Query in real-world applications.”—Tanner Linsley
Check it out