Docs
API Reference

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/v1

Authentication

Requests authenticate with an API key passed as a Bearer token. See Authentication for how to create and use keys.

Terminal
curl https://api.silos.sh/v1/projects \
  -H "Authorization: Bearer $SILOS_API_KEY"

Resources

Conventions

  • JSON everywhere. Requests and responses use application/json. Send a Content-Type: application/json header 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 use PATCH, and deletes use DELETE.
  • 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:

Terminal
# 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.

On this page