API Overview
The Silos REST API — a Neon-shaped, resource-oriented interface for managing projects, databases, branches, roles, and running SQL.
The Silos REST API is a resource-oriented HTTP interface for managing everything in the platform programmatically: projects, databases, branches, compute endpoints, roles, operations, usage, and running SQL directly over HTTP.
The API is deliberately Neon-shaped. Resources, paths, and request shapes mirror Neon's API closely, so if you're migrating from Neon — or already have tooling built against that surface — the mental model carries over. See the resource pages for the exact Silos paths.
The API is stabilizing. The routes and shapes documented here reflect the platform's current interface, but field-level details and behavior are still being hardened ahead of general availability. Treat response shapes as the documented surface rather than a frozen contract, and check the roadmap for GA status.
Base URL
All endpoints are served under the /v1 prefix:
https://api.silos.sh/v1Authentication
Requests authenticate with an API key passed as a Bearer token. See Authentication for how to create and use keys.
curl https://api.silos.sh/v1/projects \
-H "Authorization: Bearer $SILOS_API_KEY"Resources
Authentication
API keys and the Bearer token scheme.
Projects
Top-level containers for databases and configuration.
Databases
Create, inspect, suspend, resume, and delete databases.
Branches
Copy-on-write forks and point-in-time restore.
Endpoints
Compute endpoints — start and suspend the compute that serves a database.
Roles
Database roles (users) and password resets.
Operations
Track asynchronous work like provisioning and restores.
Usage
Consumption and usage reporting per project.
SQL
Run SQL directly over HTTP.
Conventions
- JSON everywhere. Requests and responses use
application/json. Send aContent-Type: application/jsonheader on requests with a body. - IDs are prefixed. Resource IDs carry a type prefix —
proj_for projects,db_for databases,br_for branches — so they're self-describing. - Mutations are explicit. Creates use
POST, partial updates usePATCH, and deletes useDELETE. - Some actions are asynchronous. Provisioning, restores, and similar long-running work return an operation you can poll.
A quick tour
Create a database, list it, and run a query:
# Create a database in a project
curl -X POST https://api.silos.sh/v1/projects/proj_abc123/databases \
-H "Authorization: Bearer $SILOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "my-app", "region": "iad" }'
# List databases
curl https://api.silos.sh/v1/databases \
-H "Authorization: Bearer $SILOS_API_KEY"
# Run SQL over HTTP
curl -X POST https://api.silos.sh/v1/sql/db_abc123 \
-H "Authorization: Bearer $SILOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "select version();" }'Prefer a terminal-first workflow? The silos CLI wraps this same
API.