# Can I use SupaHost as a standalone Postgres database?

> Partly. Every project is a full Postgres 17 database, but direct Postgres connections are only available on Business and Enterprise through an SSH tunnel. Here's what works on each plan.

Source: https://supahost.app/kb/standalone-postgres · Updated 2026-11-11

Yes, with one big condition: direct Postgres connections (the kind `psql`, ORMs and Postgres drivers make) are only available on the Business and Enterprise plans, through an SSH tunnel. On Builder and Pro you reach the database over HTTP, through the Data API, Studio's SQL editor or the MCP server. If your app needs plain Postgres wire access from many servers, SupaHost is a weaker fit than a dedicated Postgres host.

## What you get

Each SupaHost project has its own Postgres 17 database (named `p_<project>`) on your instance's Postgres server, plus Auth, Storage, Realtime and the Data API around it. You don't have to use those extras. Many people only use tables, SQL functions, extensions and pg_cron.

## How you can reach the database

| Way in | Plans | Good for |
|---|---|---|
| Data API (supabase-js, HTTP) | all | apps, serverless, edge |
| Studio SQL editor | all | ad-hoc SQL, schema changes |
| MCP `execute_sql` / `apply_migration` | all | AI agents, migrations |
| SSH tunnel to `127.0.0.1:5432` | Business, Enterprise | psql, pg_dump, ORMs, BI tools |
| One-click `pg_dump` export | all | backups you keep, moving off |

Port 5432 isn't exposed to the internet on any plan, and there's no connection pooler.

## Example: psql on Business

```bash
ssh -N -L 6543:127.0.0.1:5432 supahost@acme.supahost.space &
psql "postgresql://postgres:<password>@127.0.0.1:6543/p_app_one" -c "select version();"
```

Add your SSH key under Dashboard → your project → **Connect** → **SSH & CLI**, and copy the connection string from **Connect → Database → Show connection string**.

## Example: plain SQL over HTTP on any plan

Wrap the query in a function and call it through the Data API:

```sql
create function public.monthly_revenue(month date)
returns numeric language sql stable as $$
  select coalesce(sum(total), 0) from public.invoices
  where date_trunc('month', issued_at) = date_trunc('month', month)
$$;
```

```ts
const { data } = await supabase.rpc('monthly_revenue', { month: '2026-10-01' })
```

## FAQ

### Can I get a Postgres connection string on Builder or Pro?

No. A connection string is only usable through the SSH tunnel, which is a Business and Enterprise feature. On other plans use the Data API, Studio or MCP.

### Can I connect a BI tool like Metabase?

On Business, yes, if the tool runs somewhere that can hold an SSH tunnel (many BI tools have an SSH tunnel option). On other plans, export data or query through the Data API.

### Is the database shared with other customers?

No. The Postgres server runs on your own instance's VM. Projects on the same instance share that server, but each has its own database.

## Related

- [Connecting to your database](/docs/database/connecting)
- [SSH access and direct Postgres](/docs/platform/ssh)
- [Connecting directly to Postgres (psql, pg_dump, ORMs)](/kb/direct-postgres-connection)
