- Introduction
- Installing
- Initializing
- TypeScript support
- Database
- delete
- from
- insert
- rpc
- schema
- select
- update
- upsert
- Using Filters
- containedBy
- contains
- eq
- filter
- gt
- gte
- ilike
- ilikeAllOf
- ilikeAnyOf
- in
- is
- like
- likeAllOf
- likeAnyOf
- lt
- lte
- match
- neq
- not
- or
- overlaps
- rangeAdjacent
- rangeGt
- rangeGte
- rangeLt
- rangeLte
- textSearch
- Using modifiers
- abortSignal
- csv
- explain
- geojson
- limit
- maxAffected
- maybeSingle
- order
- overrideTypes
- range
- retry
- returns
- rollback
- select
- setHeader
- single
- stripNulls
- throwOnError
- Overview
- dispose
- exchangeCodeForSession
- getClaims
- getSession
- getUser
- getUserIdentities
- initialize
- linkIdentity
- onAuthStateChange
- reauthenticate
- refreshSession
- registerPasskey
- resend
- resetPasswordForEmail
- setSession
- signInAnonymously
- signInWithIdToken
- signInWithOAuth
- signInWithOtp
- signInWithPasskey
- signInWithPassword
- signInWithSSO
- signInWithWeb3
- signOut
- signUp
- startAutoRefresh
- stopAutoRefresh
- unlinkIdentity
- updateUser
- verifyOtp
- Overview
- createProvider
- createUser
- deleteFactor
- deleteProvider
- deleteUser
- generateLink
- getProvider
- getUserById
- inviteUserByEmail
- listFactors
- listProviders
- listUsers
- signOut
- updateProvider
- updateUserById
- Auth MFA
- challenge
- challengeAndVerify
- enroll
- getAuthenticatorAssuranceLevel
- listFactors
- unenroll
- verify
- Auth Passkey
- delete
- list
- startAuthentication
- startRegistration
- update
- verifyAuthentication
- verifyRegistration
- OAuth Admin
- createClient
- deleteClient
- getClient
- listClients
- regenerateClientSecret
- updateClient
- OAuth Server
- approveAuthorization
- denyAuthorization
- getAuthorizationDetails
- listGrants
- revokeGrant
- Passkey admin
- deletePasskey
- listPasskeys
- Edge Functions
- corsHeaders
- invoke
- setAuth
- Realtime
- channel
- connect
- connectionState
- disconnect
- endpointURL
- getChannels
- getWebSocketConstructor
- httpSend
- isConnected
- isConnecting
- isDisconnecting
- isWebSocketSupported
- log
- on
- onHeartbeat
- presenceState
- push
- removeAllChannels
- removeChannel
- send
- sendHeartbeat
- setAuth
- subscribe
- teardown
- track
- unsubscribe
- untrack
- updateJoinPayload
- Storage
- Analytics Buckets
- createBucket
- deleteBucket
- from
- listBuckets
- File Buckets
- copy
- createBucket
- createSignedUploadUrl
- createSignedUrl
- createSignedUrls
- deleteBucket
- download
- emptyBucket
- exists
- from
- getBucket
- getPublicUrl
- info
- list
- listBuckets
- listV2
- move
- purgeBucketCache
- purgeCache
- remove
- update
- updateBucket
- upload
- uploadToSignedUrl
- Vector Buckets
- createBucket
- createIndex
- deleteBucket
- deleteIndex
- deleteVectors
- from
- getBucket
- getIndex
- getVectors
- index
- listBuckets
- listIndexes
- listVectors
- putVectors
- queryVectors
Perform a function call.
Parameters
fn
(Required)The function name to call
args
(Required)The arguments to pass to the function call
options
(Required)Named parameters
Examples
Example 1
// For cross-schema functions where type inference fails, use overrideTypes:
const { data } = await supabase
.schema('schema_b')
.rpc('function_a', {})
.overrideTypes<{ id: string; user_id: string }[]>()
Call a Postgres function without arguments
const { data, error } = await supabase.rpc('hello_world')
Call a Postgres function with arguments
const { data, error } = await supabase.rpc('echo', { say: '👋' })
Bulk processing
const { data, error } = await supabase.rpc('add_one_each', { arr: [1, 2, 3] })
Call a Postgres function with filters
const { data, error } = await supabase
.rpc('list_stored_countries')
.eq('id', 1)
.single()
Call a read-only Postgres function
const { data, error } = await supabase.rpc('hello_world', undefined, { get: true })