API reference
Silos
Serverless PostgreSQL: projects and databases.
- Operations
- 5
- Base path
https://os.one.ml/api/v1/silos- Scopes
silos:readsilos:write- API keys
- 5 tested with an API key
- SDK
genesis.call('silos_listProjects', …)· helpers undergenesis.silos- MCP
- 5 tools
Operations
| Operation | Endpoint | API key |
|---|---|---|
| List persisted projects in the verified organization | GET/projects | Tested with an API key |
| Create project metadata without allocating a database | POST/projects | Tested with an API key |
| Open an owned project and its persisted database metadata | GET/projects/{project_id} | Tested with an API key |
| List database metadata under an existing owned Silos parent | GET/projects/{project_id}/databases | Tested with an API key |
| Read database metadata under an existing owned Silos parent | GET/projects/{project_id}/databases/{database_id} | Tested with an API key |
Projects
List persisted projects in the verified organization
GET/v1/silos/projects
Responses
- 200Persisted organization-owned project metadata
Response fields
projectsobject[]requiredprojects[].[].idstring (uuid)requiredprojects[].[].namestringrequiredprojects[].[].slugstringrequiredprojects[].[].regionstringrequiredprojects[].[].databaseCountintegerrequiredmin 0
projects[].[].createdAtstring (date-time)requiredprojects[].[].updatedAtstring (date-time)required
- 401Verified One account identity required
- 403Silos scope required
- 503Silos unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/silos/projects" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('silos_listProjects'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "silos_listProjects",
"arguments": {}
}
}Create project metadata without allocating a database
POST/v1/silos/projects
Request body application/json
namestringrequiredmin length 1 · max length 255
slugstringrequiredmin length 3 · max length 63 · pattern ^[a-z0-9][a-z0-9-]+[a-z0-9]$
Responses
- 201Persisted organization-owned project metadata
Response fields
projectobjectrequiredproject.idstring (uuid)requiredproject.namestringrequiredproject.slugstringrequiredproject.regionstringrequiredproject.databaseCountintegerrequiredmin 0
project.createdAtstring (date-time)requiredproject.updatedAtstring (date-time)required
- 400Invalid project name or slug
- 401Verified One account identity required
- 403Silos scope required
- 409Slug already exists in this organization. List to reconcile; no automatic replay.
- 422Invalid request fields
- 503Silos unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/silos/projects" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"slug": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('silos_createProject', {
body: {
name: 'string',
slug: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "silos_createProject",
"arguments": {
"body": {
"name": "string",
"slug": "string"
}
}
}
}Open an owned project and its persisted database metadata
GET/v1/silos/projects/{project_id}
Parameters
project_idpath · string (uuid)required
Responses
- 200Persisted organization-owned project metadata
Response fields
projectobjectrequiredproject.idstring (uuid)requiredproject.namestringrequiredproject.slugstringrequiredproject.regionstringrequiredproject.databaseCountintegerrequiredmin 0
project.createdAtstring (date-time)requiredproject.updatedAtstring (date-time)requireddatabasesobject[]requireddatabases[].[].idstring (uuid)requireddatabases[].[].namestringrequireddatabases[].[].statestringrequireddatabases[].[].regionstringrequireddatabases[].[].createdAtstring (date-time)required
- 401Verified One account identity required
- 403Silos scope required
- 404Project absent or belongs to another organization
- 503Silos unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/silos/projects/$PROJECT_ID" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('silos_getProject', {
project_id: '<project_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "silos_getProject",
"arguments": {
"project_id": "<project_id>"
}
}
}Databases
List database metadata under an existing owned Silos parent
GET/v1/silos/projects/{project_id}/databases
Parameters
project_idpath · string (uuid)requiredExisting resource UUID; the service verifies organization and parent ownership.
Responses
- 200Operational metadata only; no credentials, endpoints or allocation.
Response fields
projectobjectrequiredproject.idstring (uuid)requiredproject.namestringrequiredproject.slugstringrequiredproject.regionstringrequiredproject.databaseCountintegerrequiredmin 0
project.createdAtstring (date-time)requiredproject.updatedAtstring (date-time)requireddatabasesobject[]requireddatabases[].[].idstring (uuid)requireddatabases[].[].projectIdstring (uuid)requiredExisting internal Silos parent UUID; distinct from the globally selected Genesis project ID.
databases[].[].namestringrequireddatabases[].[].statestringrequireddatabases[].[].regionstringrequireddatabases[].[].computeSizestringrequireddatabases[].[].storageBytesinteger | null (int64)requireddatabases[].[].defaultBranchIdstring | null (uuid)requireddatabases[].[].pgVersionstringrequireddatabases[].[].createdAtstring (date-time)requireddatabases[].[].updatedAtstring (date-time)required
- 401Verified One account identity required
- 403Silos read permission required
- 404Parent or database absent, deleted, foreign, or outside requested parent
- 503Silos unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/silos/projects/$PROJECT_ID/databases" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('silos_listDatabases', {
project_id: '<project_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "silos_listDatabases",
"arguments": {
"project_id": "<project_id>"
}
}
}Read database metadata under an existing owned Silos parent
GET/v1/silos/projects/{project_id}/databases/{database_id}
Parameters
project_idpath · string (uuid)requiredExisting resource UUID; the service verifies organization and parent ownership.
database_idpath · string (uuid)requiredExisting resource UUID; the service verifies organization and parent ownership.
Responses
- 200Operational metadata only; no credentials, endpoints or allocation.
Response fields
projectobjectrequiredproject.idstring (uuid)requiredproject.namestringrequiredproject.slugstringrequiredproject.regionstringrequiredproject.databaseCountintegerrequiredmin 0
project.createdAtstring (date-time)requiredproject.updatedAtstring (date-time)requireddatabaseobjectrequireddatabase.idstring (uuid)requireddatabase.projectIdstring (uuid)requiredExisting internal Silos parent UUID; distinct from the globally selected Genesis project ID.
database.namestringrequireddatabase.statestringrequireddatabase.regionstringrequireddatabase.computeSizestringrequireddatabase.storageBytesinteger | null (int64)requireddatabase.defaultBranchIdstring | null (uuid)requireddatabase.pgVersionstringrequireddatabase.createdAtstring (date-time)requireddatabase.updatedAtstring (date-time)required
- 401Verified One account identity required
- 403Silos read permission required
- 404Parent or database absent, deleted, foreign, or outside requested parent
- 503Silos unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/silos/projects/$PROJECT_ID/databases/$DATABASE_ID" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('silos_getDatabase', {
project_id: '<project_id>',
database_id: '<database_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "silos_getDatabase",
"arguments": {
"project_id": "<project_id>",
"database_id": "<database_id>"
}
}
}One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support