64+ PostgreSQL Extensions on Supabase

Supabase is a managed Postgres platform with first-class extension support — enable pgvector, postgis, pg_cron and dozens more from the dashboard, the Supabase CLI, or with a single SQL command.

Last reviewed: May 29, 2026
64
Supported extensions
5
Pre-enabled
7
Vendor-specific
Supported
Custom extensions
64 extensions
1
timescaledb
22.7k+235 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
21.5k+511 30d

vector data type and ivfflat and hnsw access methods

Vector & AI·PostgreSQL·C
3
pg_cron
3.8k+30 30d

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
4
pg_graphql
3.3k+25 30d
Pre-enabled

Add in-database GraphQL support

Database Features·Apache-2.0·Rust
5
pg_partman
2.7k+30 30d

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
6
pg_repack
2.2k+13 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
7
plv8
2.0k+3 30d

PL/JavaScript (v8) trusted procedural language

Procedural Languages·PostgreSQL·C++
8
index_advisor
1.7k+1 30d

Query index advisor

Database Features·PostgreSQL·SQL
9
hypopg
1.7k+11 30d

Hypothetical indexes for PostgreSQL

Database Features·PostgreSQL·C
10
pgaudit
1.6k+17 30d

provides auditing functionality

Security & Audit·PostgreSQL·C
11
pgrouting
1.4k+11 30d

pgRouting Extension

Geospatial·GPL-2.0·C++
12
pg_jsonschema
1.2k+11 30d

PostgreSQL extension providing JSON Schema validation

Database Features·Apache-2.0·Rust
13
pgtap
1.1k+4 30d

Unit testing for PostgreSQL

Procedural Languages·PostgreSQL·C
14
wrappers
845+6 30d

Foreign data wrappers developed by Supabase

Foreign Data Wrappers·Apache-2.0·Rust
15
rum
829+3 30d

RUM index access method

Database Features·PostgreSQL·C
16
plpgsql_check
755+3 30d

extended check for plpgsql functions

Procedural Languages·MIT·C
17
pgroonga
727+5 30d

Use Groonga as index, fast full text search platform for all languages!

Full-text Search·PostgreSQL·C
18
pgsodium
6020 30d
Pre-enabled

Postgres extension for libsodium functions

Security & Audit·BSD-3-Clause·C
19
pgjwt
440+1 30d

JSON Web Token API for Postgresql

Utilities·MIT·SQL
20
pg_net
355+6 30d

Async HTTP Requests

Utilities·Apache-2.0·C
21
pg_hashids
3220 30d

Short unique id generator for PostgreSQL, using hashids

Functions·MIT·C
22
pljava
268+1 30d

PL/Java procedural language

Procedural Languages·BSD-3-Clause·Java
23

Provides HTTP client functions to issue GET, POST, and other requests directly from SQL.

Utilities·MIT·C
24

functions for verifying relation integrity

Administration·PostgreSQL·C
25

functions for autoincrementing fields

Functions·PostgreSQL·C
26

bloom access method - signature file based index

Database Features·PostgreSQL·C
27

support for indexing common datatypes in GIN

Functions·PostgreSQL·C
28

support for indexing common datatypes in GiST

Functions·PostgreSQL·C
29

data type for case-insensitive character strings

Data Types·PostgreSQL·C
30

data type for multidimensional cubes

Data Types·PostgreSQL·C
31

connect to other PostgreSQL databases from within a database

Foreign Data Wrappers·PostgreSQL·C
32

text search dictionary template for integers

Functions·PostgreSQL·C
33

text search dictionary template for extended synonym processing

Functions·PostgreSQL·C
34

calculate great-circle distances on the surface of the Earth

Geospatial·PostgreSQL·C
35

determine similarities and distance between strings

Full-text Search·PostgreSQL·C
36

data type for storing sets of (key, value) pairs

Data Types·PostgreSQL·C
37

functions for tracking who changed a table

Functions·PostgreSQL·C
38

functions, operators, and index support for 1-D arrays of integers

Functions·PostgreSQL·C
39

data types for international product numbering standards

Data Types·PostgreSQL·C
40

Large Object maintenance

Administration·PostgreSQL·C
41

data type for hierarchical tree-like structures

Data Types·PostgreSQL·C
42

functions for tracking last modification time

Functions·PostgreSQL·C
43

utilities in support of old_snapshot_threshold

Administration·PostgreSQL·C
44

examine the free space map (FSM)

Monitoring & Stats·PostgreSQL·C
45

prewarm relation data

Administration·PostgreSQL·C
46

track planning and execution statistics of all SQL statements executed

Monitoring & Stats·PostgreSQL·C
47

extension to perform surgery on a damaged relation

Administration·PostgreSQL·C
48

text similarity measurement and index searching based on trigrams

Full-text Search·PostgreSQL·C
49

functions to inspect contents of PostgreSQL Write-Ahead Log

Monitoring & Stats·PostgreSQL·C
50
Pre-enabled

cryptographic functions

Security & Audit·PostgreSQL·C
51

show row-level locking information

Monitoring & Stats·PostgreSQL·C
52

show tuple-level statistics

Monitoring & Stats·PostgreSQL·C
53
Pre-enabled

PL/pgSQL procedural language

Procedural Languages·PostgreSQL·C
54

PostGIS geometry and geography spatial types and functions

Geospatial·GPL-2.0·C
55

foreign-data wrapper for remote PostgreSQL servers

Foreign Data Wrappers·PostgreSQL·C
56

functions for implementing referential integrity (obsolete)

Functions·PostgreSQL·C
57

data type for representing line segments or floating-point intervals

Data Types·PostgreSQL·C
58

information about SSL certificates

Monitoring & Stats·PostgreSQL·C
59

functions that manipulate whole tables, including crosstab

Analytics & Columnar·PostgreSQL·C
60

Triggered change notifications

Functions·PostgreSQL·C
61

TABLESAMPLE method which accepts number of rows as a limit

Functions·PostgreSQL·C
62

TABLESAMPLE method which accepts time in milliseconds as a limit

Functions·PostgreSQL·C
63

text search dictionary that removes accents

Functions·PostgreSQL·C
64
Pre-enabled

generate universally unique identifiers (UUIDs)

Functions·PostgreSQL·C
Source: supabase.com

How to enable extensions on Supabase

Most Supabase extensions are one click away in the dashboard. You can also enable them with plain SQL if you prefer the keyboard or are scripting setup.

Dashboard

  1. Open your project at supabase.com/dashboard
  2. In the left sidebar, go to Database → Extensions
  3. Find the extension you want (e.g. pgvector) and click the toggle to enable it
  4. If the extension creates a schema or has options, the dashboard prompts you with sensible defaults

SQL

Run from the SQL editor or any psql session as the postgres user.

-- Enable pgvector
CREATE EXTENSION IF NOT EXISTS vector;

-- Verify it's installed
SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';

Infrastructure as Code

Supabase CLI manages extensions via migrations. Initialize a migration with the CREATE EXTENSION statement, then push it.

# In your project root with the Supabase CLI installed
supabase migration new enable_pgvector

# Edit the generated file, add:
#   create extension if not exists vector;

supabase db push

Supabase-specific extensions

Proprietary extensions that exist only on Supabase, not part of the open-source PostgreSQL ecosystem.

pg_net

Async HTTP requests from SQL — webhooks, external API calls from triggers, third-party service integrations. Supabase-original, widely used in the ecosystem.

Docs
pg_graphql

GraphQL API automatically generated from your Postgres schema. Powers Supabase's GraphQL endpoint, also installable standalone.

Docs
pgsodium

Modern symmetric and asymmetric cryptography backed by libsodium. Used for column-level encryption and Supabase Vault.

Docs
wrappers

Foreign data wrapper framework for connecting Postgres to Stripe, Firebase, BigQuery, ClickHouse, S3, and more — all queryable as SQL tables.

Docs
pgjwt

JSON Web Token signing and verification in SQL. Deprecated in Postgres 17 — Supabase now recommends using auth.jwt() helpers instead.

Docs
pg_jsonschema

JSON Schema validation as a Postgres check constraint. Useful for enforcing shape on jsonb columns.

Docs
pgroonga

Full-text search with multi-language support (CJK, Arabic, etc.) — stronger than the built-in tsvector for non-English content.

Docs

Notable absences

Extensions you might expect that aren't available on Supabase, with workarounds where they exist.

timescaledb

Why missing: timescaledb shipped on Supabase for years but is marked deprecated as of Postgres 17 — Timescale Inc. relicensed the extension under the Timescale License (TSL), which is incompatible with Supabase's open-source commitment. New projects can't enable it.

Alternative: For time-series workloads, use Postgres partitioning + pg_partman (also supported on Supabase), or run TimescaleDB self-hosted on a separate instance.

pg_repack

Why missing: pg_repack requires superuser-level operations that managed Postgres providers don't expose. Supabase doesn't ship it.

Alternative: Use VACUUM (FULL) during maintenance windows, or migrate hot tables to a fresh schema if bloat becomes critical.

Can you install custom extensions on Supabase?

Yes, with caveats

Supabase supports user-authored extensions through pg_tle (Trusted Language Extensions for PostgreSQL), the AWS-developed framework for safely installing extensions written in trusted procedural languages (PL/pgSQL, PL/v8, PL/Perl, SQL). You can author your own extension, package it, and install it without superuser access — the runtime sandboxing makes it safe on shared infrastructure. Native C extensions are NOT installable by customers; the allow-list of compiled extensions is managed by Supabase.

Learn more

Frequently Asked Questions

What schema does Supabase install extensions in?
Most extensions install under the `extensions` schema, which is on the default search path. A handful create their own — `postgis_tiger_geocoder` adds a `tiger` schema, and `pg_graphql` lives in `graphql`. To find an extension's home, query `SELECT extname, extnamespace::regnamespace FROM pg_extension;`
Why is timescaledb deprecated on Supabase?
Timescale Inc. relicensed timescaledb under the Timescale License (TSL), which adds usage restrictions incompatible with Supabase's open-source platform. Existing projects keep working; new projects on Postgres 17+ can't enable it. For time-series, use pg_partman with native partitioning, or run TimescaleDB self-hosted on a separate instance.
Does pg_cron work on the Supabase free tier?
No. pg_cron requires a long-running background worker, so it's gated to Pro plans and above. Enable it from the Database → Extensions page on a Pro project, then schedule jobs with `cron.schedule(name, cron_string, sql)`. For free-tier scheduling, trigger jobs from an external scheduler like GitHub Actions hitting a Postgres function.
Are Supabase's extension versions the same as upstream?
Usually within 1-2 minor versions. Supabase pins extension versions per Postgres major and refreshes them in scheduled platform releases. For high-velocity projects like pgvector, the lag is rarely more than a few months. Check what's installed with `SELECT extname, extversion FROM pg_extension;`
How do I check which PostgreSQL version Supabase is running?
Run `SELECT version();` from the SQL editor or psql. Supabase tracks Postgres major versions closely — new projects launch on the latest stable major. Existing projects can upgrade Postgres versions from the dashboard's Infrastructure Settings; the upgrade triggers a short maintenance window.

Manage your Supabase database with 1bench

1bench is a modern GUI client for PostgreSQL — connect to your Supabase instance, install extensions, write queries, and inspect schemas without leaving the IDE.

Try 1bench for PostgreSQL