# Creating branches with the Neon API

## The trap
Agents guess the API base URL (it is `console.neon.tech/api/v2`, not `api.neon.tech`) and forget that branches created via API have no auto-deletion, unlike Console branches. A preview-environment pipeline that never deletes branches becomes a storage leak.

## The rule
Base URL: `https://console.neon.tech/api/v2`. Authenticate with a Neon API key as a Bearer token in the Authorization header (create one in the Console under API keys).

Create a branch (compute is not created unless you include endpoints):
```
POST /projects/[project-id]/branches
{
  "endpoints": [{ "type": "read_write" }],
  "branch": { "parent_id": "[parent-branch-id]" }
}
```
Omit the body entirely to branch from the project's default branch.

Delete a branch:
```
DELETE /projects/[project-id]/branches/[branch-id]
```

## Checklist
- Find the project ID on the Console Settings page, not in the URL.
- Branch operations return an operations list; poll the operation status for `finished` before using the branch's connection string.
- Every pipeline that creates branches needs a matching delete step (PR close, pipeline cleanup).
- Creating a schema-only branch via API is supported; check the API reference for the current parameter.