Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
182 changes: 126 additions & 56 deletions content/pages/platforms.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,59 @@
---
title: 'Embedded Postgres for Platforms'
subtitle: Provision dedicated Postgres databases for your users — instantly, affordably, and at scale
updatedOn: '2025-06-17T09:00:00.000Z'
subtitle: Provision dedicated Postgres databases for your users, instantly, affordably, and at scale
summary: >-
How platforms embed Lakebase Postgres for their users: one-second
provisioning, scale-to-zero economics, API-first fleet management, claimable
databases for frictionless onboarding, and the path from database fleets to
full Neon backends.
enableTableOfContents: true
updatedOn: '2026-08-16T23:10:00.000Z'
image: '/images/social-previews/platforms.jpg'
---

Neon makes it easy to embed Postgres into your platform with one-second provisioning, autoscaling, and scale-to-zero—so each user gets an isolated database without the overhead. Databases are provisioned via API and fully integrated into your product, with no Neon signup or setup required.
![Databases deployed across a fleet, with active databases lit up in green and idle ones dimmed as they scale to zero](/images/pages/platforms/databases-deployed.png)

![Partners](/images/pages/platforms/partners.jpg)
<Admonition type="note" title="Summary">
Neon is perfect for platforms that need to offer every user their own Postgres database. You provision via API, integrate the database into your product, and your users never have to create a Neon account unless you want them to.

<CTA title="" description="Our Solutions Engineers have helped platforms like yours embed Postgres at scale. Tell us about your use case—we’ll help you design the right approach." buttonText="Meet with us" buttonUrl="/contact-sales" />
- **Instant** - Databases provision in about a second and resume from scale-to-zero in around 500ms
- **Isolated** - Every user gets a dedicated Neon project with its own connection string
- **Practically free at idle** - Inactive databases suspend automatically, so you pay for what is used, not for what sits waiting
- **API-first** - Provision, set quotas, track usage, and transfer ownership programmatically across tens or hundreds of thousands of projects
- **Claimable when you need it** - Spin up a database with no signup, then let the user claim it into their own Neon account later

## Uniquely built to scale Postgres fleets
This page covers the embedded Postgres model for SaaS and developer platforms. If you are building an agent product that provisions Neon for end users, see also [Neon for AI Agent Platforms](/use-cases/ai-agents).
</Admonition>

Neon is the best Postgres provider for deploying one-database-per-user fleets at scale. **You don’t need a DevOps team to manage a large Neon fleet** – the Neon API lets you track usage, enforce limits, and scale programmatically. With pay-per-use pricing and automatic scale-to-zero, [you’ll spend a fraction of what you'd pay on AWS](/cost-fleets). What you get:
## Built to scale Postgres fleets

- Dedicated connection strings for every user or project - every user gets their own secure, isolated Postgres [project](/docs/manage/projects)
- High connection capacity - pooled endpoints support up to 10,000 connections
- Full Postgres compatibility - no proprietary query layer
- Custom branching and PITR - instant copies and rollbacks, no manual backups
- All of this is available across multiple regions, with autoscaling and high availability
Neon is the Postgres layer platforms use when every user, workspace, or generated app needs its own database. What you get:

<QuoteBlock
quote="We’ve been able to automate virtually all database management tasks via the Neon API. We manage 300,000+ projects with minimal engineering overhead."
author={{
name: 'Himanshu Bandoth',
company: 'Software Engineer at Retool',
}}
/>
- Dedicated connection strings for every user or project, each in its own secure, isolated Neon [project](/docs/manage/projects)
- High connection capacity, with pooled endpoints that support up to 10,000 connections
- Full Postgres compatibility, with no proprietary query layer
- Branching and instant restore for copies and rollbacks, without manual backups
- Multi-region placement, autoscaling, and high availability on the same model

## With instant provisioning and scale-to-zero
With pay-per-use pricing and automatic scale-to-zero, [you spend a fraction of what you'd pay on AWS for the same fleet](/cost-fleets).

Neon databases provision in less than a second and automatically suspend when idle, with no compute cost until the next query. **You can offer every user their own Postgres database without incurring the cost of idle infrastructure.** This is what makes Neon ideal for platforms: dedicated Postgres per user, but with shared-infrastructure economics.
<QuoteBlock quote="We’ve been able to manage 300K+ Postgres databases via the Neon API. It saved us a tremendous amount of time and engineering effort." author="himanshu-bhandoh" role="Software Engineer at Retool" link="/blog/how-retool-uses-retool-and-the-neon-api-to-manage-300k-postgres-databases" />

## Instant provisioning and scale-to-zero

Neon databases provision in less than a second and automatically suspend when idle, with no compute cost until the next query. That is what makes dedicated Postgres per user viable: isolation without the cost of idle infrastructure.

- Provisioning time: ~1 second
- Suspend latency: configurable (default is 5 min)
- Suspend latency: configurable (default is 5 minutes)
- Resume latency (cold start): ~500ms

![Architecture](/images/pages/platforms/architecture.jpg)
[Read about the benefits of database-per-user architectures](/docs/use-cases/database-per-user#database-per-user)

[Read about the benefits of database-per-user architectures for scalability](/docs/use-cases/database-per-user#database-per-user)
<QuoteBlock quote="We were getting ready to hire dedicated engineers just to manage and scale Zite Database. With Neon, we didn’t need to do that. We were able to give every end user their own database, including on the free plan" author={{ name: 'Dominic Whyte', company: 'Co-founder at Zite' }} link="/blog/how-zite-provisions-isolated-postgres-databases-for-every-user" />

## API-first management
## API-first fleet management

Neons API is purpose-built to help platforms manage large fleets of Postgres databases with minimal engineering effort. **We’ve continuously improved our API in collaboration with 20+ partners, each pushing the boundaries of scale and automation**. Via the Neon API, you can:
Neon's API is built for platforms that manage large fleets of Postgres databases with minimal engineering effort. It has been shaped in collaboration with partners running at the edge of scale and automation. Via the Neon API, you can:

- Provision new databases instantly
- Set per-project resource limits to support free, pro, and enterprise plans
Expand All @@ -51,52 +62,111 @@ Neon’s API is purpose-built to help platforms manage large fleets of Postgres
- Monitor usage across thousands of projects
- Update quotas and configurations without downtime

…and more

<MegaLink tag="Case Study" title="Retool uses the Neon API to manage over 300,000 databases with just one engineer — handling everything from provisioning to quota enforcement." url="/blog/how-retool-uses-retool-and-the-neon-api-to-manage-300k-postgres-databases" />
<MegaLink tag="Case Study" title="Retool uses the Neon API to manage over 300,000 databases with just one engineer, handling everything from provisioning to quota enforcement." url="/blog/how-retool-uses-retool-and-the-neon-api-to-manage-300k-postgres-databases" />

## Built-in quotas and billing controls

Neon allows you to easily **define usage limits per project to manage cost and enforce pricing tiers**. As users upgrade or change plans, you can dynamically update limits via API, without downtime or user impact.
Platforms that ship free, pro, and enterprise tiers need hard caps per user, not just observability. Neon exposes those caps on the project itself through the `quota` object on [Create project](/docs/reference/api/projects/create-project) and [Update project](/docs/reference/api/projects/update-project). Set them when you provision a tenant, then raise or lower them when the user changes plan, without downtime.

| Quota | Scope | What it caps |
| --- | --- | --- |
| `active_time_seconds` | Project, per billing period | How long computes can stay active, excluding idle scale-to-zero time |
| `compute_time_seconds` | Project, per billing period | CPU-seconds across all computes in the project, weighted by compute size |
| `written_data_bytes` | Project, per billing period | Total data written across all branches |
| `data_transfer_bytes` | Project, per billing period | Egress through the Neon proxy |
| `logical_size_bytes` | Branch, lifetime of the branch | Maximum size of any one branch. Only that branch's compute is suspended when hit |

You can also size each endpoint from the same API surface, as project defaults, on branch create, or when creating or updating an endpoint.

| Setting | What it controls |
| --- | --- |
| `autoscaling_limit_min_cu` | Minimum compute size when the endpoint wakes |
| `autoscaling_limit_max_cu` | Hard ceiling for autoscaling under load |
| `suspend_timeout_seconds` | How long an idle endpoint stays warm before scale-to-zero |

- Set maximum allowed storage
- Cap CPU usage
- Limit egress by plan
- Track and cap monthly data written
- Customize suspend timeouts for different tiers
Together, quotas and endpoint settings let you encode your pricing tiers in API calls:

…and more
- Give free-tier users tight active-time, compute-time, write, and egress ceilings
- Raise the same fields when a user upgrades, or set a quota to `0` to remove the limit
- Force a suspend for abuse or unpaid accounts by dropping a quota to a near-zero threshold
- Pair monthly quotas with per-endpoint autoscaling and suspend timeouts so each tier gets a different compute envelope

<MegaLink tag="Case Study" title="Koyeb’s Database Instance Types sets an example of how to use Neon’s quota controls to define compute, storage, write, and data transfer limits per plan." url="https://www.koyeb.com/docs/databases#database-instance-types" />
[Configure consumption limits](/docs/guides/consumption-limits) covers setting quotas on create or update, querying current usage against them, and resetting a suspended project.

<MegaLink tag="Case Study" title="Koyeb’s Database Instance Types show how to use Neon’s quota controls to define compute, storage, write, and data transfer limits per plan." url="https://www.koyeb.com/docs/databases#database-instance-types" />

## Tracking usage at scale

Neon also provides rich consumption APIs for observability at scale:
Platforms that bill their own users, or that need to watch a large fleet, get invoice-aligned consumption data from the Neon API. The v2 consumption endpoints return the same line items Neon bills on, at hourly, daily, or monthly granularity, without waking suspended computes when you poll.

| Endpoint | Path | What it returns | Plan availability |
| --- | --- | --- | --- |
| Project metrics | `GET /consumption_history/v2/projects` | Usage-based metrics per project, cursor-paginated across the org | Launch, Scale, Agent, Enterprise |
| Branch metrics (beta) | `GET /consumption_history/v2/branches` | The same usage-based metrics broken down by branch across one or more projects | Launch, Scale, Agent, Enterprise |

Project metrics cover the full billing surface. Branch metrics omit snapshot storage and extra-branch counts, and are meant for attributing compute and storage to CI branches, previews, or development environments inside a project.

| Endpoint | Description | Availability |
| ---------------------------------------------------- | ------------------------------------------------------------------ | --------------------------------------------------------- |
| Account-level cumulative metrics | Granular project-level metrics | Single project metrics |
| Aggregate metrics across all projects in the account | Usage metrics per project at hourly, daily, or monthly granularity | Detailed metrics and quota info for an individual project |
| Scale and Business plans | Scale and Business plans | All plans |
| Metric | What it measures | Useful for |
| --- | --- | --- |
| `compute_unit_seconds` | CPU time weighted by compute size | Passing through compute cost per user or project |
| `root_branch_bytes_month` | Storage on root branches | Primary database storage per tenant |
| `child_branch_bytes_month` | Delta storage on child branches | Preview, CI, and developer branch cost |
| `instant_restore_bytes_month` | Point-in-time history storage | History-window cost per project |
| `snapshot_storage_bytes_month` | Snapshot storage (project endpoint only) | Backup and snapshot line items |
| `public_network_transfer_bytes` | Egress over the public internet | Data-transfer quotas and billing |
| `private_network_transfer_bytes` | Egress over private networks | PrivateLink and similar paths |
| `extra_branches_month` | Child branches beyond plan allowance (project endpoint only) | Enforcing or billing for branch headroom |

You can use these to:

- Monitor total usage across all projects for a billing period
- Break down metrics by project or time range (hourly, daily, monthly)
- Power usage-based billing or internal dashboards
- Monitor total usage across all projects for a billing period, then page through the fleet with cursor-based pagination
- Filter to specific projects or branches when you only need a subset of the fleet
- Break metrics down by hour, day, or month (hourly for the last 7 days, daily for the last 60 days, monthly for the last year)
- Power usage-based billing, free-tier enforcement, and internal dashboards from the same numbers that appear on a Neon invoice
- Poll on your own schedule. Consumption data refreshes about every 15 minutes, and polling does not wake idle computes

[Learn how to query consumption metrics via the API](/docs/guides/consumption-metrics), including request parameters, pagination, and a worked usage-dashboard example.

## Claimable databases for frictionless onboarding

Not every platform wants users to sign up anywhere before they get a database. The [claimable database flow](/docs/guides/platform-integration-overview#claimable-database-flow) is the flavor of this use case for plugins, CLIs, and platforms that want instant Postgres with deferred ownership.

How it works: your users get a Neon connection string immediately, with no signup - if they do not claim it, the database expires after 72 hours. When they are ready, they claim ownership into their own Neon account, and the connection string stays valid.

That pattern fits:

- Framework plugins and CLI tools
- Demo environments and trial experiences
- Educational platforms handing out databases to students
- Development tools that need instant database access
- SaaS products that want deferred account creation

### Example: Netlify DB

Via [Netlify DB](/blog/netlify-db-powered-by-neon) developers and agents can provision a production-ready Postgres database from a Netlify project in one click or one CLI command, with no external signup. If they wish, they claim the database into a Neon account.

<video autoPlay playsInline muted loop width="704" height="400" style={{ marginLeft: 0, marginRight: 'auto', width: '100%', height: 'auto' }}>
<source src="https://cdn.neonapi.io/public/videos/pages/blog/netlify-db-powered-by-neon/netlify-db-clip-449bd1a2.mp4" type="video/mp4" />
</video>

_Netlify DB provisioning a Postgres database from a Netlify project, powered by Neon's claimable database flow. [Read the launch post](/blog/netlify-db-powered-by-neon)._

<Admonition type="info" title="Implement claimable databases">
- [Platform integration overview: claimable database flow](/docs/guides/platform-integration-overview#claimable-database-flow) - when this path fits vs embedded Postgres, OAuth, or the Agent plan
- [Claimable database integration guide](/docs/workflows/claimable-database-integration) - create a project, issue a transfer request, and hand off ownership
- [Claimable Postgres](/docs/reference/claimable-postgres) - reference for the neon.new instant-database flow
</Admonition>

<QuoteBlock quote="Our users were asking for preview environments that already had their data in place. Neon’s branching was exactly what we needed: it lets us copy databases very quickly so teams can validate changes end to end immediately" author={{ name: 'Marcus Kohlberg', company: 'Founder at Encore' }} link="/blog/where-agents-meet-infrastructure-encore-leap-and-neon" />

## From database fleets to full backends

[Learn how to query consumption metrics via the API](/docs/guides/consumption-metrics)
Around each database, Neon also offers [Managed Better Auth](/docs/auth/overview), [Neon Object Storage](/docs/storage/overview), [Neon Functions](/docs/compute/functions/overview), the [Neon Data API](/docs/data-api/get-started), and the [Neon AI Gateway](/docs/ai-gateway/overview). Those primitives share the same branch and project boundaries as the database, so a fleet of user environments can grow from "a Postgres per user" into "a backend per user" without changing the provisioning model you already run.

<QuoteBlock
quote="Neon’s serverless philosophy is aligned with our vision (no infrastructure to manage, no servers to provision, no database cluster to maintain) making them the obvious partner to power our serverless Postgres offering."
author={{
name: 'Edouard Bonlieu',
company: 'co-founder and CPO at Koyeb',
}}
/>
You can adopt only the pieces each product needs. The fleet controls, quotas, and claim flows above keep applying either way.

## Built for your platform, not ours

**We’re not trying to own your user experience — we’re here to power it.** You can integrate Neon invisibly behind the scenes, whether you want to use our [OAuth integration](/docs/guides/oauth-integration) or manage Neon projects directly via API. **You decide how the database shows up in your UI, we take care of the rest.**
We are not trying to own your user experience. We are here to power it. You can integrate Neon behind the scenes, whether you manage projects directly via API, use the [claimable database flow](/docs/guides/platform-integration-overview#claimable-database-flow), or connect existing Neon accounts through [OAuth](/docs/guides/oauth-integration). You decide how the database shows up in your UI. We take care of the rest.

<CTA title="Let us help you launch" description="We’re happy to support proof-of-concepts, provide technical guidance, and share best practices from other platforms." theme="column" buttonText="Talk to us" buttonUrl="/contact-sales" linkText="Explore the API" linkUrl="/docs/reference/api" />
<CTA title="Pick the integration path that fits" description="Our team can also help with a proof of concept." buttonText="Claimable database flow" buttonUrl="/docs/guides/platform-integration-overview#claimable-database-flow" secondaryButtonText="Talk to us" secondaryButtonUrl="/contact-sales" />
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/social-previews/platforms.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/constants/seo-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ export default {
description: 'Offer Postgres to your users',
pathname: LINKS.platforms,
type: 'article',
imagePath: '/images/social-previews/platforms.jpg',
},
security: {
title: 'Security — Neon',
Expand Down
Loading