A project is a serverless PostgreSQL database with automatic scaling, backups, and connection pooling. Each project starts with a default main branch and neondb database.
Create a project
const project = await client.database.v1.projects.create({
name: 'litigation-docs-db',
description: 'Production database for litigation documents',
region: 'aws-us-east-1'
});
console.log(project);
// {
// id: "proj_abc123xyz",
// name: "litigation-docs-db",
// description: "Production database for litigation documents",
// region: "aws-us-east-1",
// pgVersion: 17,
// status: "active",
// defaultBranch: { id: "branch_main_456", name: "main" },
// createdAt: "2025-01-15T10:30:00Z"
// }
Parameters
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Project name (letters, numbers, hyphens, underscores only) |
description | string | No | Optional project description |
region | string | No | AWS region (defaults to aws-us-east-1) |
Response
| Field | Type | Description |
|---|
id | string | Project ID |
name | string | Project name |
description | string | Project description |
region | string | AWS region |
pgVersion | integer | PostgreSQL version (17) |
status | string | active, suspended, or deleted |
defaultBranch | object | Default branch info (id, name) |
createdAt | string | ISO 8601 timestamp |
List projects
const projects = await client.database.v1.projects.list();
for (const project of projects) {
console.log(`${project.name} (${project.region}) - ${project.status}`);
}
[
{
"id": "proj_abc123",
"name": "case-management-prod",
"description": "Production database",
"region": "aws-us-east-1",
"pgVersion": 17,
"status": "active",
"storageSizeBytes": 52428800,
"computeTimeSeconds": 3600,
"linkedDeployments": [
{
"id": "deploy_xyz",
"type": "thurgood",
"name": "Legal AI Assistant",
"envVarName": "DATABASE_URL"
}
],
"createdAt": "2025-01-10T08:00:00Z",
"updatedAt": "2025-01-15T12:00:00Z"
}
]
Get project details
const project = await client.database.v1.projects.get('proj_abc123');
console.log(`Storage: ${project.storageSizeBytes / 1024 / 1024} MB`);
console.log(`Compute: ${project.computeTimeSeconds / 3600} hours`);
console.log(`Branches: ${project.branches.length}`);
{
"id": "proj_abc123",
"name": "case-management-prod",
"description": "Production database",
"region": "aws-us-east-1",
"pgVersion": 17,
"status": "active",
"storageSizeBytes": 52428800,
"computeTimeSeconds": 3600,
"connectionHostname": "ep-***-123456.us-east-1.aws.neon.tech",
"branches": [
{
"id": "branch_main",
"name": "main",
"isDefault": true,
"status": "active",
"createdAt": "2025-01-10T08:00:00Z"
},
{
"id": "branch_staging",
"name": "staging",
"isDefault": false,
"parentBranchId": "branch_main",
"status": "active",
"createdAt": "2025-01-12T10:00:00Z"
}
],
"databases": [
{ "name": "neondb", "ownerName": "neondb_owner" }
],
"linkedDeployments": [],
"createdAt": "2025-01-10T08:00:00Z",
"updatedAt": "2025-01-15T12:00:00Z"
}
Delete a project
Deleting a project is permanent and irreversible. All data, branches, and backups will be destroyed.
await client.database.v1.projects.delete('proj_abc123');
// { success: true, message: "Database project 'case-management-prod' deleted" }
Regions reference
| Region | Location | Use case |
|---|
aws-us-east-1 | N. Virginia | US East coast, default |
aws-us-east-2 | Ohio | US Central |
aws-us-west-2 | Oregon | US West coast |
aws-eu-central-1 | Frankfurt | EU users, GDPR |
aws-eu-west-1 | Ireland | EU users |
aws-eu-west-2 | London | UK users |
aws-ap-southeast-1 | Singapore | Asia-Pacific |
aws-ap-southeast-2 | Sydney | Australia/NZ |
Choose a region close to your application servers for lowest latency. For compliance requirements (GDPR, data residency), select a region in the appropriate jurisdiction.
Project statuses
| Status | Description |
|---|
active | Project is running and accepting connections |
suspended | Project is paused (no compute charges, data retained) |
deleted | Project has been deleted (cannot be recovered) |