---
title: "Backend client"
description: "The imperative client returned by useBackendClient() and injected as $convex."
canonical_url: "https://nuxt-backend.dev/docs/reference/nuxt/client"
---
# Backend client

> The imperative client returned by useBackendClient() and injected as $convex.

Returned by `useBackendClient()` and injected as `useNuxtApp().$convex`. Its class is the base module's `ConvexVueClient`. Most app code should prefer the composables; reach for the client for imperative one-off calls.

```ts
class ConvexVueClient {
  query<Q extends FunctionReference<'query'>>(query: Q, ...args: OptionalRestArgs<Q>): Promise<FunctionReturnType<Q>>

  mutation<M extends FunctionReference<'mutation'>>(
    mutation: M, ...args: ArgsAndOptions<M, VueMutationOptions<FunctionArgs<M>>>
  ): Promise<FunctionReturnType<M>>

  action<A extends FunctionReference<'action'>>(action: A, ...args: OptionalRestArgs<A>): Promise<FunctionReturnType<A>>

  watchQuery<Q extends FunctionReference<'query'>>(query: Q, ...args: OptionalRestArgs<Q>): Watch<FunctionReturnType<Q>>

  connectionState(): ConnectionState
  subscribeToConnectionState(cb: (state: ConnectionState) => void): () => void

  setAuth(fetchToken: AuthTokenFetcher, onChange?: (isAuthenticated: boolean) => void): void
  clearAuth(): void

  close(): Promise<void>
}
```

<warning>

There is no server-side `$convex` injection. In Nitro routes and other server code, use the [server utilities](https://nuxt-backend.dev/docs/reference/nuxt/server-utilities) (`fetchQuery`, `fetchMutation`, …) instead.

</warning>


## Sitemap

See the full [sitemap](https://nuxt-backend.dev/sitemap.md) for all pages.
