Skip to main content

Initializing

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#

  • supabaseUrlrequiredstring

    The unique Supabase URL which is supplied when you create a new project in your project dashboard.

  • supabaseKeyrequiredstring

    The unique Supabase Key which is supplied when you create a new project in your project dashboard.

  • optionsoptionalSupabaseClientOptions

    No description provided.

Examples#

createClient()#

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#

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#

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 others database schemas within the Dashboard. Go to Settings > API > Schema and add the schema which you want to expose to on 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#

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 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).