Installation
Client types
Convex provides multiple client types for different use cases:- ConvexReactClient - For React applications with reactive subscriptions
- ConvexClient - For browser applications with WebSocket support
- ConvexHttpClient - For server-side code or non-reactive webapps using HTTP
ConvexHttpClient
A stateful HTTP client for executing queries, mutations, and actions. Appropriate for server-side code (like serverless functions) or non-reactive web applications.Creating a client
Constructor options
address- The URL of your Convex deploymentskipConvexDeploymentUrlCheck- Skip URL validation (useful for self-hosted backends)logger- Custom logger orfalseto disable loggingauth- JWT token for authenticationfetch- Custom fetch implementation
Executing queries
Executing mutations
Mutations are queued by default to ensure ordered execution:Executing actions
Authentication
Set an authentication token:ConvexClient
A WebSocket-based client for subscribing to queries and executing mutations and actions. Provides reactive updates but without React-specific features.Creating a client
Constructor options
disabled- Disable subscriptions (useful for server-side rendering)unsavedChangesWarning- Prompt users about unsaved changes
Subscribing to queries
Executing mutations and actions
One-time query execution
Authentication
Connection state
Closing the client
Type safety
All clients use generated TypeScript types for complete type safety:Error handling
Best practices
- Use
ConvexHttpClientfor server-side code and serverless functions - Use
ConvexClientfor non-React browser applications that need reactivity - Use
ConvexReactClient(see React documentation) for React applications - Always handle errors when executing mutations and actions
- Close clients when done to clean up resources
- Store deployment URLs in environment variables