SQL Database API

REST API for PostgreSQL database operations.

Base URL

https://api.cloud.tenzro.com/data

Endpoints

Create Database

POST /data/databases
Content-Type: application/json
X-Project-ID: proj_xyz
{
"name": "myapp",
"description": "Main application database"
}
# Response
{
"data_db_id": "data_abc123",
"name": "myapp",
"status": "ready",
"created_at": "2024-01-15T00:00:00Z"
}

Execute Query

POST /data/databases/{data_db_id}/query
Content-Type: application/json
{
"sql": "SELECT * FROM users WHERE status = $1 LIMIT $2",
"params": ["active", 10]
}
# Response
{
"rows": [
{ "id": 1, "name": "John", "status": "active" },
{ "id": 2, "name": "Jane", "status": "active" }
],
"rowCount": 2,
"fields": [
{ "name": "id", "type": "int4" },
{ "name": "name", "type": "varchar" },
{ "name": "status", "type": "varchar" }
]
}

Execute Statement

POST /data/databases/{data_db_id}/execute
Content-Type: application/json
{
"sql": "INSERT INTO users (name, email) VALUES ($1, $2)",
"params": ["John", "john@example.com"]
}
# Response
{
"rowCount": 1,
"command": "INSERT"
}

Transaction

POST /data/databases/{data_db_id}/transaction
Content-Type: application/json
{
"statements": [
{
"sql": "UPDATE accounts SET balance = balance - $1 WHERE id = $2",
"params": [100, "account_1"]
},
{
"sql": "UPDATE accounts SET balance = balance + $1 WHERE id = $2",
"params": [100, "account_2"]
}
]
}
# Response
{
"success": true,
"results": [
{ "rowCount": 1 },
{ "rowCount": 1 }
]
}

Schema Operations

# Create table
POST /data/databases/{data_db_id}/execute
{
"sql": "CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(100), created_at TIMESTAMP DEFAULT NOW())"
}
# List tables
GET /data/databases/{data_db_id}/tables
# Response
{
"tables": [
{ "name": "users", "rowCount": 150 },
{ "name": "orders", "rowCount": 500 }
]
}
# Describe table
GET /data/databases/{data_db_id}/tables/users
# Response
{
"name": "users",
"columns": [
{ "name": "id", "type": "integer", "nullable": false },
{ "name": "name", "type": "character varying(100)", "nullable": true }
]
}

Delete Database

DELETE /data/databases/{data_db_id}
# Response
{
"success": true,
"deleted_at": "2024-01-15T12:00:00Z"
}

Error Responses

{
"error": {
"code": "syntax_error",
"message": "syntax error at or near 'SELEC'",
"position": 1,
"status": 400
}
}