---
title: Changelog
source: https://se-hari.com/docs/changelog
updated: 2026-08-16T01:05:08.977436+00:00
---

> Riwayat perubahan Se-Hari API, kebijakan versi, dan apa yang kami anggap perubahan yang merusak.

Halaman ini mencatat perubahan pada Se-Hari API dan menjelaskan apa yang boleh Anda andalkan.

## Kebijakan versi

Versi ada di path: `https://se-hari.com/api/v1`. Selama path itu tidak berubah, hal-hal berikut **tidak akan** berubah:

- Arti sebuah `code` error
- Bentuk field yang sudah ada di respons
- Nama dan arti parameter yang sudah ada
- Perilaku endpoint yang sudah ada

Yang **bisa** berubah kapan saja tanpa menaikkan versi:

- **Field baru di respons.** Klien Anda harus mengabaikan field yang tidak dikenalnya, bukan gagal. Ini asumsi paling dasar dalam memakai API mana pun.
- **Endpoint baru.**
- **Kode error baru.** Tangani kode yang tidak dikenal sebagai kegagalan generik, jangan asumsikan daftarnya tetap.
- **Teks `message`.** Ia untuk manusia dan akan kami perbaiki. Cabangkan pada `code`.
- **Nilai enum baru** pada field yang memang bisa bertambah, seperti status pemrosesan.

Perubahan yang merusak salah satu jaminan di atas akan hadir sebagai `/api/v2`, dan `/api/v1` tetap berjalan.

## Menulis klien yang tahan perubahan

```javascript
// BENAR — field tak dikenal diabaikan, kode tak dikenal ditangani generik
const { data } = await res.json();
const judul = data.title;

if (!res.ok) {
	const { error } = await res.json();
	switch (error.code) {
		case 'insufficient_credits':
			return tanganiKreditHabis(error.details);
		case 'rate_limited':
			return tungguLaluUlangi(res.headers.get('retry-after'));
		default:
			// Kode baru mendarat di sini alih-alih membuat aplikasi berhenti.
			throw new Error(`${error.code}: ${error.message}`);
	}
}
```

Dua kebiasaan yang membuat klien rapuh, dan keduanya umum:

1. **Validasi ketat atas respons**, menolak field yang tidak ada di skema Anda. Setiap field baru yang kami tambahkan akan mematahkan aplikasi Anda.
2. **Mencocokkan teks pesan error**. Perbaikan kalimat sekecil apa pun akan mengubah perilaku aplikasi Anda tanpa peringatan.

## Kalau sesuatu harus dihentikan

Kami berusaha tidak menghapus apa pun dari v1. Kalau suatu saat memang harus, urutannya seperti ini:

1. **Diumumkan** di halaman ini dan lewat email ke pemilik API key aktif, beserta alasan dan penggantinya.
2. **Ditandai** di spesifikasi OpenAPI dengan `deprecated: true`, sehingga alat yang membaca spesifikasi bisa memperingatkan Anda otomatis.
3. **Tetap berjalan** selama masa transisi yang diumumkan.
4. **Menjawab `410 gone`** setelah masa itu lewat — bukan 404, supaya jelas bahwa endpointnya pernah ada dan sengaja dihentikan.

Endpoint yang sudah dihentikan tetap punya halaman dokumentasinya, dengan penjelasan penggantinya. Menghapus halamannya berarti menghapus satu-satunya petunjuk yang tersisa bagi orang yang menemukan pemanggilannya di kode lama.

Preseden ini bukan hipotetis: endpoint event dan registrasi Se-Hari sudah melewati alur yang sama dan kini menjawab 410.

## Riwayat

### v1.0.0 — Agustus 2026

Rilis pertama Se-Hari API publik.

- **Notulen** — buat dari rekaman, unggah berkas, ambil ringkasan dan transkrip, kelola action item, bagikan lewat tautan publik
- **Meeting** — buat dan batalkan meeting Zoom berlisensi, ambil rekamannya
- **Rekaman** — daftar dan tautan unduh bertanda tangan
- **Kredit** — saldo, estimasi biaya, riwayat pemakaian
- **Webhook** — 7 jenis event dengan tanda tangan HMAC dan retry berjenjang
- **MCP server** — 11 tool untuk asisten AI, remote maupun lewat paket npm
- **Community node n8n** — 20 operasi, node trigger yang mendaftarkan webhook sendiri, 15 resep siap impor
- **Spesifikasi OpenAPI 3.1** di `/api/v1/openapi.json`

## Cara mengikuti perubahan

Halaman ini adalah sumber resminya. Perubahan yang berdampak juga diumumkan lewat email ke pemilik API key aktif.

Untuk deteksi otomatis, bandingkan `/api/v1/openapi.json` secara berkala — spesifikasinya di-generate dari sumber yang sama dengan validasi runtime, jadi ia tidak pernah tertinggal dari perilaku sebenarnya.

```bash
curl -s "https://se-hari.com/api/v1/openapi.json" | jq -S . > openapi-baru.json
diff openapi-lama.json openapi-baru.json
```

## Melaporkan masalah

Kalau Anda menemukan perilaku yang tidak sesuai dokumentasi ini, kirimkan `request_id` dari respons yang bermasalah. Tanpa itu kami tidak bisa menemukan kembali request Anda di log, dan laporan berubah menjadi tebak-tebakan.

## Selanjutnya

- [Referensi API](/docs/api) — kontrak lengkap tiap endpoint
- [Menangani error](/docs/error) — daftar kode dan artinya