Postgres 18 is generally available

Postgres 18 is now generally available on Neon. The preview limitations have been lifted, and Postgres 18 is fully supported for production workloads. To get started, create a new project and select 18 as the Postgres version.

To learn more about the new features and improvements in Postgres 18:

For Neon's Postgres version support policy, see Postgres version support.

Manage organization spending limits via the API

Last week we introduced organization spending limits in the Neon Console. From the Billing page, org admins can set a monthly cap, and Neon emails admins when spend reaches 80% and 100% of that limit.

This week the same functionality is available through the Neon API so you can manage your spend limit programmatically.

  • View monthly spend limit

    curl "https://console.neon.tech/api/v2/organizations/${ORG_ID}/billing/spending_limit" \
      -H "Authorization: Bearer ${NEON_API_KEY}" \
      -H "Accept: application/json"
  • Set monthly spend limit

    curl -X PUT "https://console.neon.tech/api/v2/organizations/${ORG_ID}/billing/spending_limit" \
      -H "Authorization: Bearer ${NEON_API_KEY}" \
      -H "Content-Type: application/json" \
      -d '{"spending_limit_cents":10000}'
  • Delete monthly spend limit

    curl -X DELETE "https://console.neon.tech/api/v2/organizations/${ORG_ID}/billing/spending_limit" \
      -H "Authorization: Bearer ${NEON_API_KEY}" \
      -H "Accept: application/json"

For details, see Spending limits and the April 24 changelog.

New NAT gateway IPs and VPC endpoint services in US East (N. Virginia)

We've expanded infrastructure capacity in the AWS US East (N. Virginia) region (us-east-1) with new NAT gateway IP addresses and new VPC endpoint service addresses for Private Networking.

Update your IP allowlists

If you have IP allowlists on external systems that Neon connects to, update those allowlists to include the new NAT gateway addresses. Connections may be affected intermittently if traffic routes through non-allowlisted NAT gateways.

If you use Private Networking in us-east-1, you can now use the additional VPC endpoint service addresses for enhanced capacity and reliability. See the Regions documentation for the complete list of NAT gateway IPs and the Private Networking guide for VPC endpoint service addresses by region.

Load test at Grafana k6 and Neon branches

Neon branching gives you an isolated copy of your database with production-like data and separate compute, so you can run Grafana k6 against your application without hammering production or relying on an undersized staging database. Create a branch from your production branch, point your app at the branch connection string, exercise realistic concurrency with k6, then tune queries and indexes on the branch and validate improvements before you ship changes.

The guide Simulate production load using Neon branching and k6 walks through the full flow. It uses a branch named load-test-branch in the examples; with the Neon CLI, a minimal create from your real data branch looks like this:

neon branches create \
  --name load-test-branch \
  --parent main \
  --project-id "$NEON_PROJECT_ID"

Use the new branch’s connection URI in DATABASE_URL, then run your app and k6 against that database.

The guide’s load-test.js centers on options: stages ramp virtual users up and down, and thresholds fail the run if latency or errors cross the line. A tiny export default is still required so k6 knows what each virtual user does. The full guide adds category mix, check, and sleep for realism:

const http = require('k6/http');

export const options = {
  stages: [
    { duration: '10s', target: 20 },
    { duration: '30s', target: 50 },
    { duration: '10s', target: 0 },
  ],
  thresholds: {
    http_req_duration: ['p(95)<50'],
    http_req_failed: ['rate<0.01'],
  },
};

export default function () {
  http.get('http://localhost:3000/api/products?category=Electronics');
}
plv8 Postgres extension deprecation

The plv8 extension (JavaScript in Postgres via V8) is deprecated on Neon. CREATE EXTENSION plv8 is now rejected with a deprecation message. If you still rely on plv8, migrate functions to plpgsql or application code and remove the extension; see The plv8 extension and Supported Postgres extensions.

Neon API pooler_mode and pgbouncer_settings deprecation

pooler_mode and pgbouncer_settings on compute endpoints in the Neon Management API are deprecated, with sunset after June 20, 2026. The pooler_mode option was maintained for legacy setups only. Neon supports connection pooling via a pooled connection URI from the Connect modal. Custom pgbouncer_settings configurations must be requested through Neon support. For Neon's default PgBouncer settings, see Neon PgBouncer configuration. If you pass pooler_mode or pgbouncer_settings on Neon API create or update requests, those values are now ignored.