VyDB API

REST API berbasis Google Spreadsheet untuk menyimpan dan mengelola data JSON.

Base URL
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.

HTTP Header
X-API-Key: your_api_key_here
Content-Type: application/json
Cara mendapatkan API Key: Buat database baru di Dashboard VyDB, lalu salin API Key yang muncul.

Endpoints

VyDB menyediakan 4 endpoint utama untuk operasi CRUD.

POST /api/insert

Menambahkan data baru ke database.

Request Body
JSON
{
  "data": {
    "name": "John Doe",
    "email": "john@example.com",
    "age": 25
  }
}
Response 200 OK
JSON
{
  "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"
  }
}
GET /api/get

Mengambil data dari database. Bisa difilter dengan query parameter.

Query Parameters
ParameterTipeKeterangan
keystringFilter berdasarkan field tertentu (contoh: name=John)
idstringAmbil data spesifik berdasarkan ID
Contoh Request
URL
GET /api/get?name=John&age=25
GET /api/get              ← Ambil semua data
GET /api/get?id=1234567890  ← Ambil berdasarkan ID
Response 200 OK
JSON
{
  "success": true,
  "count": 2,
  "data": [
    {
      "id": "1234567890",
      "name": "John Doe",
      "email": "john@example.com",
      "age": 25
    }
  ]
}
PATCH /api/update

Memperbarui data yang sudah ada berdasarkan ID.

Request Body
JSON
{
  "id": "1234567890",
  "data": {
    "name": "John Updated",
    "age": 26
  }
}
Response 200 OK
JSON
{
  "success": true,
  "message": "Data updated successfully"
}
DELETE /api/delete

Menghapus data dari database berdasarkan ID.

Request Body
JSON
{
  "id": "1234567890"
}
Response 200 OK
JSON
{
  "success": true,
  "message": "Data deleted successfully"
}

Contoh Kode

Contoh implementasi menggunakan berbagai bahasa pemrograman.

JavaScript (Fetch)
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());
Node.js (axios)
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);
Python (requests)
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 (cURL)
<?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);
?>
cURL
# 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
Format error response: {"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.

Tidak perlu API Key. Sheet API dapat diakses tanpa autentikasi. Bisa juga digunakan langsung dari form di halaman Sheet.
POST /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.

JSON — Contoh 1: Data Produk
{
  "_sheet": "produk",
  "nama": "Kaos Hitam",
  "harga": "75000",
  "stok": "50",
  "kategori": "fashion"
}
JSON — Contoh 2: Laporan Bug
{
  "_sheet": "laporan_bug",
  "judul": "Login gagal di mobile",
  "severity": "high",
  "status": "open",
  "pelapor": "user123"
}
JSON — Contoh 3: Upload Kode/Script
{
  "_sheet": "scripts",
  "nama": "Caliph",
  "judul": "ShortUrl Class",
  "nama_file": "shorturl.js",
  "kategori": "tool",
  "kode": "class ShortUrl { ... }"
}
Response 200 OK
JSON
{
  "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
JavaScript
// 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
GET /script/data/:sheet

Ambil semua data dari sheet tertentu sebagai array of objects.

URL Parameter
ParameterTipeDeskripsi
sheetstringNama sheet tab yang ingin dibaca
Contoh Request
HTTP
GET /script/data/produk
Response 200 OK
JSON
{
  "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": "..." }
  ]
}
GET /script/sheets

Tampilkan daftar semua sheet tab yang tersedia di spreadsheet.

Response 200 OK
JSON
{
  "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.