Neon Platform API
The Neon Platform API allows you to manage Neon projects, branches, databases, and resources programmatically. You can use the REST API directly or through official SDKs.
Options
| Method | Package/URL | Best For |
|---|---|---|
| REST API | https://console.neon.tech/api/v2/ |
Any language, direct HTTP calls |
| TypeScript SDK | @neondatabase/api-client |
Node.js, TypeScript projects |
| Python SDK | neon-api |
Python scripts and applications |
| CLI | neonctl |
Terminal-based management |
Documentation
# REST API documentation
curl -H "Accept: text/markdown" https://neon.com/docs/reference/api-reference
# TypeScript SDK
curl -H "Accept: text/markdown" https://neon.com/docs/reference/typescript-sdk
# Python SDK
curl -H "Accept: text/markdown" https://neon.com/docs/reference/python-sdk
# CLI
curl -H "Accept: text/markdown" https://neon.com/docs/reference/neon-cli
For the interactive API reference: https://api-docs.neon.tech/reference/getting-started-with-neon-api
Sub-Resources
For detailed information, reference the appropriate sub-resource:
REST API Details
| Topic | Resource |
|---|---|
| Guidelines, Auth, Rate Limits | neon-rest-api/guidelines.md |
| Projects | neon-rest-api/projects.md |
| Branches, Databases, Roles | neon-rest-api/branches.md |
| Compute Endpoints | neon-rest-api/endpoints.md |
| API Keys | neon-rest-api/keys.md |
| Operations | neon-rest-api/operations.md |
| Organizations | neon-rest-api/organizations.md |
SDKs
| Language | Resource |
|---|---|
| TypeScript | neon-typescript-sdk.md |
| Python | neon-python-sdk.md |
Quick Start
Authentication
All API requests require a Neon API key:
Authorization: Bearer $NEON_API_KEY
API Key Types
| Type | Scope | Best For |
|---|---|---|
| Personal | All projects user has access to | Individual use, scripting |
| Organization | Entire organization | CI/CD, org-wide automation |
| Project-scoped | Single project only | Project-specific integrations |
Rate Limits
- 700 requests per minute (~11 per second)
- Bursts up to 40 requests per second per route
- Handle
429 Too Many Requestswith retry/backoff
Common Operations Quick Reference
| Operation | REST API | TypeScript SDK | Python SDK |
|---|---|---|---|
| List Projects | GET /projects |
listProjects({}) |
projects() |
| Create Project | POST /projects |
createProject({...}) |
project_create(...) |
| Get Connection URI | GET /projects/{id}/connection_uri |
getConnectionUri({...}) |
connection_uri(...) |
| Create Branch | POST /projects/{id}/branches |
createProjectBranch(...) |
branch_create(...) |
| Start Endpoint | POST /projects/{id}/endpoints/{id}/start |
startProjectEndpoint(...) |
endpoint_start(...) |
Error Handling
| Status | Meaning | Action |
|---|---|---|
| 401 | Unauthorized | Check API key |
| 404 | Not Found | Verify resource ID |
| 429 | Rate Limited | Implement retry with backoff |
| 500 | Server Error | Retry or contact support |