Open your project in the Neon Console and click Connect on the Project Dashboard. In the Connect to your database widget, toggle Connection pooling on or off. The displayed connection string switches between the pooled hostname (with a -pooler suffix) and the direct hostname. Pooled connections support up to 10,000 client connections through PgBouncer in transaction mode. See Connection pooling for the full reference.

Toggle pooling from the Console

  1. Sign in to the Neon Console and select your project.
  2. On the Project Dashboard, click Connect.
  3. In the Connect to your database modal, choose a Branch, Compute, Database, and Role.
  4. Use the Connection pooling switch to flip between pooled and direct.

A pooled connection string has -pooler in the hostname:

postgresql://alex:AbC123dEf@ep-cool-darkness-a1b2c3d4-pooler.us-east-2.aws.neon.tech/dbname?sslmode=require&channel_binding=require

A direct connection string has no -pooler segment:

postgresql://alex:AbC123dEf@ep-cool-darkness-a1b2c3d4.us-east-2.aws.neon.tech/dbname?sslmode=require&channel_binding=require

The toggle does not turn the pooler off at the compute. It selects which hostname your app uses. Both endpoints are available as long as pooler_enabled is set on the compute.

Setpooler_enabledvia the API

To make the pooled hostname available (or remove it) for a compute, patch the endpoint:

curl -X PATCH \
  "https://console.neon.tech/api/v2/projects/$PROJECT_ID/endpoints/$ENDPOINT_ID" \
  -H "Authorization: Bearer $NEON_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{ "endpoint": { "pooler_enabled": true } }'

Set "pooler_enabled": false to disable it. See Manage computes with the Neon API and the Update compute reference.

When to use pooled vs direct

Use the pooled hostname for:

  • Serverless functions and edge runtimes
  • Connection-per-request web frameworks
  • Workloads with many short-lived connections

Use the direct hostname for:

  • pg_dump and pg_restore (uses session-level SET statements)
  • LISTEN / NOTIFY
  • Long-running transactions, schema migrations, and SQL-level PREPARE / DEALLOCATE
  • Session-level advisory locks and SET / RESET

Neon's PgBouncer runs in transaction mode, so anything that relies on persistent session state needs a direct connection. See the pooled vs direct table for the full list.

Quick check

If a connection string contains -pooler, you're using the pooled endpoint. If it doesn't, you're connecting directly.

Read the full pooling guide

See how Neon configures PgBouncer, per-user pool sizes, and how to avoid common errors.