Authentication
User sign-in flows, session management, MFA, passkeys, identity linking, and admin operations.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| admin | ||||||||
|
Admin Create Provider
Create a new custom OIDC/OAuth provider. Requires admin/service role.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Admin Create User
Create a new user with specified attributes without sending a confirmation. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Delete MFA Factor
Delete a specific MFA factor from a user's account. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Admin Delete Provider
Delete a custom provider. Requires admin/service role.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Admin Delete User
Permanently delete a user by their ID. Requires admin/service role.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Generate Link
Generate an action link (confirmation, magic link, recovery) for a user. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Admin Get Provider
Get details of a specific custom provider by identifier. Requires admin/service role.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Admin Get User
Fetch a single user's profile and metadata by their ID. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Invite User
Send an invite to a new user. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin List MFA Factors
List all MFA factors enrolled for a specific user. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Admin List Providers
List all custom providers with optional type filter. Requires admin/service role.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Admin List Users
Retrieve a paginated list of all users in the project. Requires admin/service role.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Sign Out
Revoke a user's session server-side by their access token. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Admin Update Provider
Update an existing custom provider. Requires admin/service role.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Admin Update User
Update a user's attributes (email, password, metadata, role, etc.) by their ID. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| identities | ||||||||
|
Link Identity
Link an additional OAuth or ID-token identity to the current user's account.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
List Identities
List all external identities linked to the current user's account.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Unlink Identity
Remove a linked identity from the current user's account.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| mfa | ||||||||
|
MFA Challenge
Create a challenge for an enrolled MFA factor to begin the verification flow.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA Challenge and Verify
Create a challenge and verify a code in a single call for convenience.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA Enroll
Enroll a new MFA factor (TOTP or phone) for the current user.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA Get Authenticator Assurance Level
Return the current and next authenticator assurance levels (AAL1/AAL2) for the session.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA List Factors
List all MFA factors enrolled for the current user.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA Unenroll
Remove an enrolled MFA factor from the current user's account.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
MFA Verify
Verify a code against an active MFA challenge to complete second-factor authentication.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| oauth_admin | ||||||||
|
Admin Create OAuth Client
Register a new OAuth client application. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Delete OAuth Client
Remove a registered OAuth client. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Get OAuth Client
Retrieve details of a specific OAuth client by its client ID. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin List OAuth Clients
List all registered OAuth clients for the project. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Regenerate OAuth Client Secret
Regenerate the client secret for a registered OAuth client. Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Admin Update OAuth Client
Update a registered OAuth client's settings (name, redirect URIs, etc.). Requires admin/service role.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| oauth_server | ||||||||
|
OAuth Approve Authorization
Approve a pending OAuth authorization request on behalf of the current user.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
OAuth Deny Authorization
Deny a pending OAuth authorization request on behalf of the current user.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
OAuth Get Authorization Details
Fetch the details of a pending OAuth authorization request.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
OAuth List Grants
List all active OAuth grants the current user has approved.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
OAuth Revoke Grant
Revoke a specific OAuth grant that the current user previously approved.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
| passkey_admin | ||||||||
|
Admin Delete Passkey
Delete a specific passkey for a user. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Admin List Passkeys
List all passkeys registered for a specific user. Requires admin/service role.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
| passkey | ||||||||
|
Register Passkey
Register a new WebAuthn passkey for the currently authenticated user.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with Passkey
Authenticate using a WebAuthn passkey registered on the device.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| session | ||||||||
|
Auto Refresh Token
Automatically refresh the access token in the background before it expires. Exposes controls to start and stop the refresh loop and configure whether it is enabled.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get Claims
Verify and return the token claims for the current session using the server's public key set, which is typically cached for performance.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get Session
Return the current active session, refreshing the access token if needed.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get User
Fetch the authenticated user's profile from the server, verifying the token.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Refresh Session
Force an immediate refresh of the current session using the refresh token.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Set Session
Manually set the current session from a known access token and refresh token.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign Out
Revoke the current user session and clear stored credentials.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Subscribe to Auth Events
Subscribe to authentication state change events (sign-in, sign-out, token refresh, etc.).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Update User
Update the current user's attributes such as email, password, or metadata.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| sign_in | ||||||||
|
Exchange Code for Session
Exchange a PKCE authorization code for a user session.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Reauthenticate
Send a reauthentication nonce to verify the user before sensitive operations such as a password change.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Resend Confirmation
Resend a signup confirmation or OTP email/SMS to a user.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Reset Password
Send a password-reset link to a user's email address.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In Anonymously
Create an anonymous (guest) session without user credentials.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with ID Token
Authenticate using a provider-issued ID token (e.g. from Apple or Google).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with OAuth
Initiate a third-party OAuth sign-in flow (Google, GitHub, etc.).
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with OTP
Send a one-time password (email or SMS) or magic link and authenticate with it.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with Password
Authenticate an existing user with email or phone and password.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with SSO
Initiate a SAML SSO sign-in by supplying a domain or provider ID. The user is redirected to the identity provider to authenticate.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Sign In with Web3
Authenticate using a Web3 wallet (Solana or Ethereum) via a signed message.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Sign Up
Register a new user with email or phone and password.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Verify OTP
Verify a one-time password or token hash to complete sign-in or email confirmation.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
Client Initialization
Cross-cutting SupabaseClient configuration — third-party auth integration, custom HTTP client, pluggable session storage, schema selection, and observability.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| authentication_integration | ||||||||
|
Third-Party Auth
Provide an async token callback at construction time to use an external auth provider; the SDK disables its own auth client and injects the returned JWT into all downstream requests.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Cross-Client Token Synchronization
The client listens for auth state change events and automatically propagates the current JWT to all sub-clients (database, realtime, storage, functions) so requests stay authenticated without manual intervention.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
OAuth Flow Type Selection
Choose between implicit and PKCE OAuth flows at construction time; PKCE is recommended for scenarios where the implicit flow is less secure.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
OAuth Redirect Detection Customization
Configure whether and how the client detects an incoming OAuth redirect; accepts a boolean or a custom predicate so apps using multiple OAuth providers can disambiguate callbacks.
|
⬜ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
| session_management | ||||||||
|
Pluggable Session Storage
Supply a custom storage backend at construction time to control where the user session is persisted; enables use of platform-native secure storage instead of the default.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Session Persistence Toggle
Disable automatic session persistence so the session exists only in memory for the lifetime of the client instance.
|
⬜ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
| request_configuration | ||||||||
|
Custom HTTP Client
Supply a custom HTTP client implementation at construction time; the SDK wraps it with automatic API key and authorization header injection and propagates it to all sub-clients.
|
⬜ | ✅ | ⬜ | 🔶 | ⬜ | ⬜ | ⬜ | 29% |
|
Global Request Headers
Attach extra HTTP headers to every request made by all sub-clients at construction time.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
| observability | ||||||||
|
Distributed Trace Context Propagation
Inject standard trace context headers into outgoing requests so server-side spans can be correlated with client-side traces in a distributed tracing system.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
Database (PostgREST)
Query builder over PostgREST — select, insert, update, delete, RPC, filters, and modifiers.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| mutate | ||||||||
|
Delete Rows
Delete rows from a table or view that match a filter.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Insert Rows
Insert one or more rows into a table or view.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Select After Mutation
Chain a column selection onto an insert, update, upsert, or delete to return the affected rows in the response.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Update Rows
Update rows in a table or view that match a filter.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Upsert Rows
Insert rows, or update them on conflict based on specified conflict columns.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| query | ||||||||
|
Query Table or View
Scope a query to a specific table or view. The entry point for all table-level operations.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Call Function (RPC)
Invoke a database function via the PostgREST RPC interface.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Schema Selection
Target a non-default database schema for the query or function call.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Select Rows
Read rows from a table or view with column selection.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| using_filters | ||||||||
|
Filter Contained By
For jsonb, array, and range columns — match only rows where every element in the column is contained by the given value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Contains
For jsonb, array, and range columns — match only rows where the column contains every element in the given value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Equal
Match only rows where a column equals a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Greater Than
Match only rows where a column is greater than a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Greater Than or Equal
Match only rows where a column is greater than or equal to a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Like (case-insensitive)
Match only rows where a column matches a pattern case-insensitively (SQL ILIKE).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter ILike All Patterns
Match only rows where a column matches all of the given patterns case-insensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter ILike Any Pattern
Match only rows where a column matches any of the given patterns case-insensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter In
Match only rows where a column's value is in a given set.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Is
Match only rows where a column IS a value (null, true, or false).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Is Distinct From
Match only rows where a column IS DISTINCT FROM a value (null-safe inequality).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Like (case-sensitive)
Match only rows where a column matches a pattern case-sensitively (SQL LIKE).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Like All Patterns
Match only rows where a column matches all of the given patterns case-sensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Like Any Pattern
Match only rows where a column matches any of the given patterns case-sensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Less Than
Match only rows where a column is less than a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Less Than or Equal
Match only rows where a column is less than or equal to a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Match Object
Match rows where each key/value pair in an object equals the corresponding column value. Shorthand for multiple equality filters.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Not Equal
Match only rows where a column does not equal a value.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Not
Negate a filter so only rows that do not satisfy it are returned.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Not In
Match only rows where a column's value is not in a given set.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Filter Or
Match rows that satisfy at least one of multiple filters.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Overlaps
For array and range columns — match only rows where the column and value share at least one element.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Range Adjacent
For range columns — match only rows where the column is mutually exclusive to the given range with no gap between them.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Range Greater Than
For range columns — match only rows where every element in the column is greater than any element in the given range.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Range Greater Than or Equal
For range columns — match only rows where every element in the column is contained in or greater than any element in the given range.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Range Less Than
For range columns — match only rows where every element in the column is less than any element in the given range.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Range Less Than or Equal
For range columns — match only rows where every element in the column is contained in or less than any element in the given range.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Raw
Apply a raw filter expression. Escape hatch for filter combinations not covered by the specific filter operations.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Regex Match
Match only rows where a column matches a regex pattern case-sensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Regex Match (case-insensitive)
Match only rows where a column matches a regex pattern case-insensitively.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Filter Full-Text Search
For text and tsvector columns — match only rows where a column matches a full-text search query.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| using_modifiers | ||||||||
|
Dry Run
Execute the query against the database but discard any changes, returning what would have been affected.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Explain Query Plan
Return the database query execution plan instead of the result data.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Return as CSV
Return the query result as a CSV string instead of a structured object.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Return as GeoJSON
Return the query result as a GeoJSON object.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Limit Results
Limit the number of rows returned by the query.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Limit Affected Rows
Set the maximum number of rows that a mutation (update or delete) is allowed to affect.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Expect At Most One Row
Return a single row if one exists, or null if no rows match. Errors if multiple rows are returned.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Order Results
Sort the query result by one or more columns.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Range
Return a slice of results by specifying a zero-based start and end offset.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Expect Single Row
Assert that the query returns exactly one row and unwrap it from the array. Errors if zero or multiple rows are returned.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Strip Null Fields
Omit null-valued properties from response objects using the nulls=stripped Accept header variant; requires PostgREST 11.2+.
|
⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 14% |
|
Request Cancellation
Cancel an in-flight request at any point; merges cleanly with any client-level timeout.
|
⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 14% |
|
Embed Related Rows
Select columns from related tables within a single query using PostgREST's spread notation; supports inner joins, left joins, aliasing, and nested relationships.
|
⬜ | ✅ | ⬜ | 🔶 | ⬜ | ⬜ | ⬜ | 29% |
| configuration | ||||||||
|
Automatic Retry with Backoff
Automatically retry idempotent requests on transient failures using exponential backoff; configurable per-client and overridable per-request.
|
⬜ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Request Timeout
Set a global request timeout in milliseconds at construction time; in-flight requests are cancelled once the deadline is reached.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
Edge Functions
Invoke Supabase Edge Functions from the client with support for streaming, region routing, and flexible request configuration.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| invocation | ||||||||
|
Invoke Function
Call a deployed Edge Function by name with an optional request body.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Set Auth Token
Update the authorization token sent with all subsequent function invocations.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
HTTP Method Override
Invoke a function using a non-default HTTP method (GET, PUT, PATCH, DELETE) for RESTful Edge Function designs.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Streaming Response (SSE)
Receive a streaming response from a function; when the function returns text/event-stream the raw Response object is passed through for caller-controlled reading.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Region Selection
Route an invocation to a specific geographic deployment region set at client construction time or overridden per individual call.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Invocation Timeout
Cancel a function invocation after a specified timeout; composable with a caller-supplied cancellation signal.
|
⬜ | ⬜ | ⬜ | 🔶 | ⬜ | ⬜ | ⬜ | 14% |
|
Request Cancellation
Cancel an in-flight function invocation at any point before a response is received.
|
⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 14% |
Realtime
Websocket client and channel subscriptions: Postgres changes, broadcast, and presence.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| channel | ||||||||
|
Broadcast via HTTP
Send a broadcast message to channel subscribers via the REST API instead of the websocket connection.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Send Message
Send a message to other subscribers of the channel.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Subscribe
Register the channel with the server and start receiving events.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Unsubscribe
Leave the channel and stop receiving events.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| client | ||||||||
|
Create or Reuse Channel
Create a new channel or return an existing one for the given topic.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Connect
Open the websocket connection to the Realtime server.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Connection State
Return the current state of the websocket connection.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Disconnect
Close the websocket connection to the Realtime server.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get Channels
Return all active channels for this client.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Listen to Heartbeats
Register a callback that receives lifecycle events for internal heartbeat messages.
|
✅ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Remove All Channels
Unsubscribe from and tear down all channels.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Remove Channel
Unsubscribe from and tear down a single channel.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Set Auth Token
Update the access token used for channel subscription authorization and row-level security.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
| presence | ||||||||
|
Get Presence State
Return the current presence state for all tracked clients on this channel.
|
✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 29% |
|
Track Presence
Broadcast a presence payload so other subscribers can see this client as online.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Untrack Presence
Remove this client's presence state, making it appear offline to other subscribers.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Custom Presence Key
Set a stable identifier for the current client's presence entries so multiple connections from the same user share one logical key via the presence.key channel option.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
| subscriptions | ||||||||
|
Subscribe to Broadcast
Listen for broadcast messages sent by other clients on this channel.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Subscribe to Postgres Changes
Listen for Postgres database change events (insert, update, delete) streamed over this channel.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Subscribe to Presence Events
Listen for presence events on this channel — when peers join, leave, or sync their presence state.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Postgres Changes Row Filter
Apply a PostgREST-style filter expression (e.g. id=eq.200) to a Postgres changes subscription to receive events only for matching rows.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Private Channel (RLS)
Mark a channel as private to enforce Row Level Security on Postgres change events and restrict broadcast and presence access to authorized users.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Broadcast Self-Delivery
Opt in to receiving broadcast messages that the current client sends on the same channel via the broadcast.self channel option.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Broadcast Acknowledgment
Require server confirmation of receipt for each broadcast message before the send resolves via the broadcast.ack channel option.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Broadcast Message Replay
Replay historical broadcast messages from a point in time on a private channel via the broadcast.replay option (requires a since timestamp; supports an optional message limit).
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
| configuration | ||||||||
|
Custom WebSocket Transport
Inject a custom WebSocket constructor at client construction time for runtimes without a native global WebSocket, such as Node.js (<22), Cloudflare Workers, or Deno.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Configurable Reconnect Backoff
Provide a custom function mapping reconnect attempt count to delay milliseconds, replacing the default stepped backoff strategy.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Heartbeat Interval Configuration
Configure the WebSocket heartbeat interval in milliseconds; used to detect stale connections and trigger reconnection.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Dynamic Access Token Callback
Supply an async callback at construction time that returns the current JWT; called on connect and each heartbeat to keep WebSocket authorization fresh without manual intervention.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Deferred Socket Disconnect
Delay WebSocket disconnection after all channels are removed instead of closing immediately, reducing reconnection overhead for short-lived channel patterns.
|
⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 14% |
|
Custom Logger
Provide a custom logging function and log level filter at construction time to route Realtime client diagnostics to an application logger.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Binary Message Protocol
Select protocol version 2.0.0 for binary-serialized messages over the WebSocket connection.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
Storage
Object storage — upload, download, list, and manage files in buckets; server-side image transformation; Iceberg analytics buckets.
| Feature | JavaScript | Flutter | Python | Swift | C# | Go | Kotlin | Parity |
|---|---|---|---|---|---|---|---|---|
| file_buckets | ||||||||
|
Access Bucket
Scope subsequent file operations to a specific bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Copy File
Copy an existing file to a new path within the same bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Create File Bucket
Create a new file storage bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Create Signed Upload URL
Create a signed URL that allows an unauthenticated client to upload a file to the bucket.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Create Signed URL
Create a time-limited signed URL for sharing a file.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Create Signed URLs (batch)
Create time-limited signed URLs for multiple files in a single request.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Delete File Bucket
Delete an existing file bucket. The bucket must be empty before deletion.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Download File
Download a file from a private bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Empty Bucket
Delete all objects inside a bucket without deleting the bucket itself.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Check File Exists
Check whether a file exists at a given path.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get File Info
Retrieve the metadata of an existing file.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get Bucket
Retrieve the details of a specific storage bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Get Public URL
Get the public URL for a file in a public bucket.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
List File Buckets
List all file storage buckets in the project.
|
✅ | 🔶 | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
List Files
List files and folders within a path of the bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
List Files (paginated)
List files and folders within a bucket with cursor-based pagination support.
|
✅ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Move File
Move an existing file to a new path within the same bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Delete Files
Delete one or more files from the bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Update Bucket
Update a storage bucket's settings (public access, file size limits, etc.).
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Update File
Replace an existing file at the specified path with a new one.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Upload File
Upload a file to an existing bucket.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Upload with Signed URL
Upload a file using a pre-signed upload URL, without requiring standard authentication.
|
✅ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 43% |
|
Download File as Stream
Download a file and return its content as a stream for memory-efficient handling of large files.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Download with Image Transform
Apply server-side image transformations inline during download without creating a separate file.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Copy File to Another Bucket
Copy a file to a path in a different bucket using the destinationBucket option.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Move File to Another Bucket
Move a file to a path in a different bucket using the destinationBucket option.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
Upload with Custom Metadata
Attach arbitrary JSON metadata, a custom cache-control header, and an explicit content-type to a file at upload time.
|
⬜ | ✅ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 29% |
|
URL Cache Invalidation Nonce
Append a cache-busting nonce to public and signed URLs to bypass CDN caching for a specific file version.
|
⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | 14% |
| vector_buckets | ||||||||
|
Access Vector Index
Scope subsequent vector operations to a specific index within a bucket.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Create Vector Index
Create a new vector index in a bucket.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Delete Vector Index
Delete a vector index from a bucket.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Delete Vectors
Delete vectors by key from an index.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Get Vector Index
Retrieve metadata for a specific vector index.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Get Vectors
Retrieve vectors by key from an index.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
List Vector Indexes
List all vector indexes in a bucket.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
List Vectors
List vectors in an index with pagination.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Put Vectors
Insert or update vectors in an index.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Query Vectors (similarity search)
Search for similar vectors in an index using a query vector.
|
✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 14% |
|
Create Vector Bucket
Create a new bucket dedicated to holding S3 Vectors indexes.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
List Vector Buckets
List all vector buckets with prefix filtering and cursor-based pagination.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Delete Vector Bucket
Delete an empty vector bucket and all its indexes.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Parallel Vector Scan
Distribute a full-index vector scan across multiple workers using segmentCount and segmentIndex parameters to parallelize large-scale retrieval.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
| analytics | ||||||||
|
Create Analytics Bucket
Create a bucket backed by Apache Iceberg table format for structured analytical data storage.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
List Analytics Buckets
List analytics buckets with optional pagination and sort options.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Delete Analytics Bucket
Delete an empty analytics bucket.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Iceberg Namespace Management
Create, list, and drop namespaces within an analytics bucket via the Iceberg REST Catalog API.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |
|
Iceberg Table Management
Create, list, load, update, rename, and drop Iceberg tables within a namespace, including schema and partition spec definition.
|
⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | 0% |