--- id: initializing title: "Initializing" slug: initializing custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml --- import Tabs from '@theme/Tabs'; import TabsPanel from '@theme/TabsPanel'; You can initialize a new Supabase client using the `createClient()` method. The Supabase client is your entrypoint to the rest of the Supabase functionality and is the easiest way to interact with everything we offer within the Supabase ecosystem. ## Parameters ## Examples ### createClient() ```js import { createClient } from '@supabase/supabase-js' // Create a single supabase client for interacting with your database const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key') ``` ### With additional parameters ```js import { createClient } from '@supabase/supabase-js' const options = { schema: 'public', headers: { 'x-my-custom-header': 'my-app-name' }, autoRefreshToken: true, persistSession: true, detectSessionInUrl: true } const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key", options) ``` ### API schemas ```js import { createClient } from '@supabase/supabase-js' // Provide a custom schema. Defaults to "public". const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', { schema: 'other_schema' }) ``` By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard. Go to `Settings > API > Schema` and add the schema which you want to expose to the API. Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema. ### Custom `fetch` implementation ```js import { createClient } from '@supabase/supabase-js' const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', { fetch: fetch.bind(globalThis) }) ``` `supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests, but an alternative `fetch` implementation can be provided as an option. This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers).