---
title: Batasan
source: https://se-hari.com/docs/batasan
updated: 2026-08-16T01:05:08.875506+00:00
---

> Semua batas keras yang berlaku: ukuran berkas, retensi rekaman, jumlah key dan webhook, panjang daftar.

Halaman ini mengumpulkan semua batas keras di satu tempat, supaya Anda bisa merancang untuk itu alih-alih menemukannya sebagai error.

## Retensi rekaman: 30 hari

Rekaman disimpan 30 hari lalu **dihapus otomatis**. Ini batas yang paling sering mengejutkan, dan yang paling tidak bisa dipulihkan: setelah lewat, berkasnya benar-benar tidak ada — bukan disembunyikan, bukan diarsipkan.

Meminta tautan unduh untuk rekaman yang sudah lewat menghasilkan [`410 gone`](/docs/error/gone). Kode 410, bukan 404, justru supaya jelas bahwa mencoba lagi nanti tidak akan membantu.

Dua cara merancang untuk ini:

1. **Buat notulen segera.** Isi notulen tersimpan permanen, jadi ringkasan dan action item rapat tetap ada meski rekamannya nanti hilang. Ini pencegahan termurah.
2. **Arsipkan ke penyimpanan Anda sendiri** untuk rekaman yang memang perlu disimpan lama. Ada [resep n8n](/docs/resep) yang menjadwalkannya otomatis.

```bash
# Lihat kapan tiap rekaman akan hangus
curl "https://se-hari.com/api/v1/recordings?limit=100" \
  -H "Authorization: Bearer $SEHARI_API_KEY" | jq '.data[] | {id, expires_at}'
```

## Tautan unduh berumur pendek

Tautan dari `POST /recordings/{id}/download-url` berlaku singkat dan sengaja demikian: ia memberi akses ke isi rekaman **tanpa API key** kepada siapa pun yang memegangnya.

Unduh segera setelah membuatnya. Jangan menyimpannya di database, jangan mengirimnya lewat email, dan jangan menaruhnya di log — semuanya sama dengan membagikan isi rapat kepada siapa saja yang kelak membaca catatan itu.

## Batas jumlah

| Sumber daya | Batas |
|---|---|
| API key aktif per akun | 10 |
| Endpoint webhook per akun | 5 |
| Baris per halaman daftar | 100 |
| Percobaan pengiriman webhook | 6 (mencakup ~8,5 jam) |
| Kegagalan beruntun sebelum webhook dinonaktifkan | 20 |
| Masa simpan kunci idempotensi | 24 jam |
| Retensi log request API | 30 hari |
| Retensi riwayat pengiriman webhook | 30 hari |

Key yang dicabut tidak dihitung terhadap batas 10 — ia tetap tersimpan sebagai jejak audit dan tetap tampil di dashboard dengan label "Dicabut".

## Unggah rekaman

Alur unggah berjalan tiga langkah: minta URL bertanda tangan, unggah berkasnya, konfirmasi. Batas ukuran diperiksa **pada langkah pertama**, sebelum satu byte pun dikirim — penting untuk koneksi Indonesia dengan bandwidth unggah terbatas, karena Anda tidak akan menunggu setengah jam hanya untuk ditolak di akhir.

Kalau berkas Anda terlalu besar, ekstrak audionya saja. Transkripsi hanya membaca audio; video tidak memberi manfaat apa pun.

```bash
# Biasanya memperkecil 10–20 kali lipat tanpa perubahan pada hasil transkripsi
ffmpeg -i rapat.mp4 -vn -acodec libmp3lame -ab 64k -ac 1 rapat.mp3
```

Berkas yang berhasil diunggah tapi ternyata tidak punya jalur audio akan gagal belakangan, saat pemrosesan, dengan [`422 unprocessable_entity`](/docs/error/unprocessable-entity).

## Zona waktu

Seluruh Se-Hari memakai **WIB (UTC+7)**. Tanggal dan jam pada pembuatan meeting dikirim dalam WIB apa adanya — jangan dikonversi.

Timestamp pada respons memakai ISO-8601 dengan offset eksplisit, jadi tidak ambigu. Yang perlu diperhatikan adalah **filter**: menyaring dengan tanggal UTC polos akan memotong tujuh jam pertama setiap hari tanpa memberi tahu Anda.

## Tidak ada sandbox

Tidak ada environment uji terpisah dan tidak ada key `sh_test_`. Setiap request berdampak nyata dan memotong kredit sungguhan.

Ini keputusan sadar: key uji yang ternyata berdampak nyata jauh lebih berbahaya daripada tidak punya key uji sama sekali. Untuk membatasi risiko saat mengembangkan, buat key khusus pengembangan dengan **batas kredit harian yang kecil** — 2 atau 3 kredit sudah cukup untuk mencoba-coba, dan kesalahan apa pun berhenti di angka itu.

## Yang tidak dibatasi

Beberapa hal yang sering ditanyakan, dan jawabannya "tidak ada batas khusus":

- Jumlah notulen atau meeting yang bisa Anda buat, selama kredit mencukupi
- Panjang rekaman, selama ukurannya di bawah batas unggah
- Jumlah event yang bisa didengarkan satu endpoint webhook
- Berapa lama notulen disimpan — permanen

## Selanjutnya

- [Kredit](/docs/kredit) — batas yang berkaitan dengan biaya
- [Rate limit](/docs/rate-limit) — batas frekuensi
- [Semua kode error](/docs/error)