se-hari.com se-hari.com

unsupported_media_type — Content-Type tidak didukung

HTTP 415. Endpoint ini mengharapkan `Content-Type` tertentu dan menerima yang lain. Untuk seluruh endpoint JSON, nilainya harus `application/json`.

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

unsupported_media_type adalah kode error HTTP 415 pada Se-Hari API. Endpoint ini mengharapkan Content-Type tertentu dan menerima yang lain. Untuk seluruh endpoint JSON, nilainya harus application/json.

#Bentuk responsnya

Semua error Se-Hari memakai amplop yang sama. Yang perlu dicabang di kode Anda adalah code, bukan message — teks pesan bisa kami perbaiki sewaktu-waktu, sedangkan code adalah kontrak publik yang hanya berubah lewat versi API baru.

json
{
  "error": {
    "code": "unsupported_media_type",
    "message": "Contoh pesan untuk unsupported_media_type.",
    "docs_url": "https://se-hari.com/docs/error/unsupported-media-type",
    "request_id": "req_a1b2c3d4e5f6",
    "details": {}
  }
}

#Kapan ini muncul

Kode ini menandai ketidakcocokan antara apa yang Anda katakan sedang dikirim dan apa yang endpoint bisa terima. Perhatikan bahwa kami mempercayai header Anda: mengirim JSON dengan Content-Type: text/plain akan ditolak meski isinya sempurna, karena header itulah yang menentukan cara body dibaca.

#Kenapa ini terjadi

  • Header Content-Type tidak dikirim sama sekali pada request dengan body
  • HTTP client default ke application/x-www-form-urlencoded
  • Berkas audio dengan format yang tidak didukung pada alur unggah

#Cara memperbaikinya

Tambahkan -H "Content-Type: application/json" pada curl, atau setel json: true di klien Anda. Untuk unggah rekaman, pakai Content-Type yang kami sebutkan di respons presign — bukan tebakan Anda sendiri.

#Yang memicu error

bash
curl -X POST "https://se-hari.com/api/v1/notes" \
  -H "Authorization: Bearer $SEHARI_API_KEY" \
  -d '{"recording_id":"c0ffee00-1111-2222-3333-444455556666"}'

#Yang seharusnya

bash
curl -X POST "https://se-hari.com/api/v1/notes" \
  -H "Authorization: Bearer $SEHARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"recording_id":"c0ffee00-1111-2222-3333-444455556666"}'

#Aman diulang?

Percuma tanpa perubahan. Perbaiki header Content-Type lalu kirim ulang. Aman diulang tanpa risiko duplikasi.

#Jangan tertukar dengan

Bedakan dari malformed_json: kode itu berarti Content-Type Anda sudah benar tapi isinya bukan JSON yang sah. Kode ini berarti kami bahkan tidak mencoba mem-parse-nya, karena Anda menyatakan mengirim sesuatu yang tidak kami terima di endpoint tersebut.

#Mencegahnya terulang

Setel Content-Type secara eksplisit pada setiap request yang punya body. Banyak HTTP client memakai application/x-www-form-urlencoded sebagai bawaan, dan bawaan itu diam-diam benar untuk kebanyakan situs web sehingga jarang diperhatikan. Pada alur unggah rekaman, pakai nilai content_type yang kami kembalikan di respons presign — nilai itu bagian dari tanda tangan URL, jadi menggantinya akan membuat unggahan ditolak penyimpanan.

#Menangani ini di kode

Cabangkan pada error.code, dan bedakan kegagalan yang layak diulang dari yang tidak. Mengulang kegagalan yang tidak akan pernah berhasil hanya menghabiskan kuota rate limit — dan menyembunyikan kegagalan yang sebenarnya butuh perhatian Anda.

javascript
const res = await fetch('https://se-hari.com/api/v1/me', {
	headers: { Authorization: `Bearer ${process.env.SEHARI_API_KEY}` }
});

if (!res.ok) {
	const { error } = await res.json();

	if (error.code === 'unsupported_media_type') {
		// Tambahkan `-H "Content-Type: application/json"` pada curl, atau setel `json: true` di…
		console.error(error.message, error.details);
	}

	// request_id adalah satu-satunya cara kami menemukan request ini di log.
	console.error(`request_id: ${error.request_id}`);
}

#Selanjutnya

Pertanyaan umum

Apa arti error unsupported_media_type di Se-Hari API?

HTTP 415. Endpoint ini mengharapkan `Content-Type` tertentu dan menerima yang lain. Untuk seluruh endpoint JSON, nilainya harus `application/json`.

Apakah aman mengulang request yang gagal dengan unsupported_media_type?

Percuma tanpa perubahan. Perbaiki header `Content-Type` lalu kirim ulang. Aman diulang tanpa risiko duplikasi.

Bagaimana cara memperbaiki unsupported_media_type?

Tambahkan `-H "Content-Type: application/json"` pada curl, atau setel `json: true` di klien Anda. Untuk unggah rekaman, pakai `Content-Type` yang kami sebutkan di respons presign — bukan tebakan Anda sendiri.

Siap mencoba?

Buat API key gratis di dashboard — tidak ada biaya berlangganan, kredit terpakai hanya saat Anda benar-benar memproses rekaman atau membuat meeting.

Buat API Key