VyDB API
REST API berbasis Google Spreadsheet untuk menyimpan dan mengelola data JSON.
https://vbase.zone.id/api
Pengenalan
VyDB adalah layanan database API yang menggunakan Google Spreadsheet sebagai penyimpanan data. Anda dapat menyimpan, membaca, memperbarui, dan menghapus data melalui REST API standar dari bahasa pemrograman apa pun.
Mudah Digunakan
Cukup 4 endpoint untuk operasi CRUD lengkap.
Aman dengan API Key
Setiap database terisolasi dengan API Key unik.
JSON Native
Request dan response dalam format JSON standar.
Autentikasi
Semua request memerlukan API Key yang dikirim melalui header X-API-Key.
API Key didapat saat membuat database baru di Dashboard.
X-API-Key: your_api_key_here
Content-Type: application/json
Endpoints
VyDB menyediakan 4 endpoint utama untuk operasi CRUD.
/api/insert
Menambahkan data baru ke database.
Request Body
{
"data": {
"name": "John Doe",
"email": "john@example.com",
"age": 25
}
}
Response 200 OK
{
"success": true,
"message": "Data inserted successfully",
"data": {
"id": "1234567890",
"name": "John Doe",
"email": "john@example.com",
"age": 25,
"created_at": "2024-01-01T00:00:00.000Z"
}
}
/api/get
Mengambil data dari database. Bisa difilter dengan query parameter.
Query Parameters
keystringFilter berdasarkan field tertentu (contoh: name=John)
idstringAmbil data spesifik berdasarkan ID
Contoh Request
GET /api/get?name=John&age=25
GET /api/get ← Ambil semua data
GET /api/get?id=1234567890 ← Ambil berdasarkan ID
Response 200 OK
{
"success": true,
"count": 2,
"data": [
{
"id": "1234567890",
"name": "John Doe",
"email": "john@example.com",
"age": 25
}
]
}
/api/update
Memperbarui data yang sudah ada berdasarkan ID.
Request Body
{
"id": "1234567890",
"data": {
"name": "John Updated",
"age": 26
}
}
Response 200 OK
{
"success": true,
"message": "Data updated successfully"
}
/api/delete
Menghapus data dari database berdasarkan ID.
Request Body
{
"id": "1234567890"
}
Response 200 OK
{
"success": true,
"message": "Data deleted successfully"
}
Contoh Kode
Contoh implementasi menggunakan berbagai bahasa pemrograman.
const apiKey = 'your_api_key_here';
const baseUrl = 'https://vbase.zone.id/api';
// Insert data
const insert = await fetch(`${baseUrl}/insert`, {
method: 'POST',
headers: {
'X-API-Key': apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: { name: 'John Doe', email: 'john@example.com' }
})
});
console.log(await insert.json());
// Get data
const get = await fetch(`${baseUrl}/get?name=John`, {
headers: { 'X-API-Key': apiKey }
});
console.log(await get.json());
const axios = require('axios');
const api = axios.create({
baseURL: 'https://vbase.zone.id/api',
headers: { 'X-API-Key': 'your_api_key_here' }
});
// Insert data
const insert = await api.post('/insert', {
data: { name: 'John Doe', email: 'john@example.com' }
});
console.log(insert.data);
// Get data
const get = await api.get('/get', { params: { name: 'John' } });
console.log(get.data);
import requests
api_key = 'your_api_key_here'
base_url = 'https://vbase.zone.id/api'
headers = {'X-API-Key': api_key, 'Content-Type': 'application/json'}
# Insert data
response = requests.post(f'{base_url}/insert',
headers=headers,
json={'data': {'name': 'John Doe', 'email': 'john@example.com'}})
print(response.json())
# Get data
response = requests.get(f'{base_url}/get',
headers=headers,
params={'name': 'John'})
print(response.json())
<?php
$apiKey = 'your_api_key_here';
$baseUrl = 'https://vbase.zone.id/api';
function vydb_request($url, $method = 'GET', $data = null, $apiKey = '') {
$ch = curl_init($url);
$headers = ['X-API-Key: ' . $apiKey, 'Content-Type: application/json'];
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $data ? json_encode($data) : null,
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Insert data
$result = vydb_request("$baseUrl/insert", 'POST',
['data' => ['name' => 'John Doe', 'email' => 'john@example.com']], $apiKey);
print_r($result);
// Get data
$result = vydb_request("$baseUrl/get?name=John", 'GET', null, $apiKey);
print_r($result);
?>
# Insert data
curl -X POST 'https://vbase.zone.id/api/insert' \
-H 'X-API-Key: your_api_key_here' \
-H 'Content-Type: application/json' \
-d '{"data":{"name":"John Doe","email":"john@example.com"}}'
# Get all data
curl 'https://vbase.zone.id/api/get' \
-H 'X-API-Key: your_api_key_here'
# Get with filter
curl 'https://vbase.zone.id/api/get?name=John' \
-H 'X-API-Key: your_api_key_here'
# Update data
curl -X PATCH 'https://vbase.zone.id/api/update' \
-H 'X-API-Key: your_api_key_here' \
-H 'Content-Type: application/json' \
-d '{"id":"1234567890","data":{"name":"John Updated"}}'
# Delete data
curl -X DELETE 'https://vbase.zone.id/api/delete' \
-H 'X-API-Key: your_api_key_here' \
-H 'Content-Type: application/json' \
-d '{"id":"1234567890"}'
Error Codes
Semua error dikembalikan dalam format JSON dengan status HTTP yang sesuai.
| Status | Kode | Keterangan |
|---|---|---|
| 200 | OK |
Request berhasil |
| 400 | Bad Request |
Data tidak valid atau format salah |
| 401 | Unauthorized |
API Key tidak valid atau tidak disertakan |
| 404 | Not Found |
Data atau resource tidak ditemukan |
| 500 | Server Error |
Terjadi kesalahan di server |
{"success": false, "message": "Error description here"}
Sheet API — Multi-Format
Sheet API memungkinkan kamu menyimpan data dalam format apapun ke Google Sheets tanpa setup manual. Kirim JSON dengan field bebas + nama sheet, sistem otomatis membuat tab sheet baru beserta kolomnya. Tidak perlu mendefinisikan skema terlebih dahulu.
Auto-Create Sheet
Sheet tab dibuat otomatis jika belum ada. Kolom mengikuti field yang kamu kirim.
Multi-Format
Setiap sheet bisa punya struktur berbeda. Satu spreadsheet, banyak format data.
Kolom Dinamis
Kirim field baru kapanpun, kolom baru otomatis ditambahkan ke sheet yang ada.
/script/upload
Simpan data ke sheet manapun. Sheet + kolom otomatis dibuat jika belum ada.
Request Body
Field _sheet menentukan nama tab sheet. Semua field lainnya bebas — tidak ada skema tetap.
{
"_sheet": "produk",
"nama": "Kaos Hitam",
"harga": "75000",
"stok": "50",
"kategori": "fashion"
}
{
"_sheet": "laporan_bug",
"judul": "Login gagal di mobile",
"severity": "high",
"status": "open",
"pelapor": "user123"
}
{
"_sheet": "scripts",
"nama": "Caliph",
"judul": "ShortUrl Class",
"nama_file": "shorturl.js",
"kategori": "tool",
"kode": "class ShortUrl { ... }"
}
Response 200 OK
{
"success": true,
"sheet": "produk",
"data": {
"id": "1773622712961",
"nama": "Kaos Hitam",
"harga": "75000",
"stok": "50",
"kategori": "fashion",
"created_at": "2026-03-16T00:58:32.961Z"
}
}
Contoh — JavaScript fetch
// Format bebas — field apapun, sheet apapun
const res = await fetch('/script/upload', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
_sheet: 'data_saya', // nama tab di Google Sheets
nama: 'Caliph',
nilai: 95,
catatan: 'mantap',
// ... field bebas lainnya
})
});
const json = await res.json();
console.log(json.data.id); // ID auto-generated
/script/data/:sheet
Ambil semua data dari sheet tertentu sebagai array of objects.
URL Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
sheet | string | Nama sheet tab yang ingin dibaca |
Contoh Request
GET /script/data/produk
Response 200 OK
{
"success": true,
"sheet": "produk",
"total": 2,
"data": [
{ "id": "1773...", "nama": "Kaos Hitam", "harga": "75000", "created_at": "..." },
{ "id": "1773...", "nama": "Celana Jeans", "harga": "150000", "created_at": "..." }
]
}
/script/sheets
Tampilkan daftar semua sheet tab yang tersedia di spreadsheet.
Response 200 OK
{
"success": true,
"total": 7,
"sheets": ["users", "scripts", "produk", "laporan_bug", "data_saya", "..."]
}
API Tester
Coba endpoint VyDB langsung dari browser. Masukkan API Key dan request body, lalu klik Send.