Halaman ini sedang dimuat

Panduan pengguna Mekari Jurnal

Temukan artikel panduan sesuai kebutuhan Anda

Batasan Tarif API (API Rate Limiting)

Article author
Learning Center Mekari
  • Diperbarui

Batasan Tarif API

API Jurnal digunakan oleh banyak developer. Kami menerapkan batas tarif pada API kami, sehingga dapat memberikan Anda pengalaman yang konsisten. API membuat sistem menjadi lebih stabil, menawarkan waktu respons yang baik kepada pengguna, serta mencegah pengguna besar memengaruhi pengguna yang lebih kecil.

Pembatasan tarif diterapkan dalam 2 (dua) level, yaitu:

  • Batas tingkat Tingkat IP: Memungkinkan satu IP untuk membuat sejumlah permintaan tertentu dalam jangka waktu tertentu.
  • Tingkat Konsumen API: Memungkinkan konsumen (satu konsumen umumnya memetakan ke satu KUNCI API atau Token oAuth) untuk membuat sejumlah permintaan dalam jangka waktu tertentu.

Kami menerapkan batasan di:

  • Setiap menit
  • Setiap jam

Kami tidak dapat membuat lebih dari jumlah permintaan terbatas dalam satu menit atau satu jam.

Pembatasan tarif bekerja dengan cara berikut:

  • Ada sejumlah permintaan yang dapat dibuat dalam 1 menit dan 1 jam.
  • Setiap permintaan API yang dibuat akan dipotong dari saldo konsumen/IP.
  • Jika saldo mencapai 0, maka API akan merespon dengan 429 Response yang menandakan batas rate telah terlampaui. Berikut ini adalah isi tanggapannya

{"message":"API rate limit exceeded"}

  • Penghitung diatur ulang setiap menit dan jam dan panggilan API dapat dilanjutkan setelah waktu ini berhasil.

Batas tarif saat ini ditetapkan pada:

  • 40 permintaan per menit per alamat IP.
  • 2500 permintaan per jam per alamat IP.
  • 30 permintaan per menit per Konsumen API.
  • 1800 permintaan satu jam per Konsumen API.

Semua respons API akan menambahkan Header HTTP berikut:

  • x-ratelimit-limit-hour: Menunjukkan batas tarif yang berlaku per jam untuk panggilan API tersebut.
  • x-ratelimit-limit-minute: Menunjukkan batas tarif yang berlaku per menit untuk panggilan API tersebut.
  • x-ratelimit-remaining-hour: Jumlah sisa panggilan API yang dapat dilakukan pada jam ini, Jika menunjukkan 0, maka tidak ada lagi panggilan API yang dapat dilakukan untuk jam tersebut.
  • x-ratelimit-remaining-minute: Jumlah sisa panggilan API yang dapat dilakukan dalam menit ini, Jika menunjukkan 0, maka tidak ada lagi panggilan API yang dapat dilakukan untuk menit tersebut.

Saat aplikasi melebihi batas kecepatan untuk titik akhir API Twitter tertentu, API akan mengembalikan kode respons HTTP 429 "Terlalu Banyak Permintaan" (“Too Many Requests”), dan kesalahan berikut akan ditampilkan di response body:

{ "errors": [ { "code": 88, "message": "Rate limit exceeded" } ] }

Pemulihan dari Batas Tarif

Jika aplikasi Anda mendapat tarif terbatas, jeda selama satu menit atau satu jam tergantung pada nilai di header yang dijelaskan di atas. Jika Anda ingin meningkatkan batas tarif Anda, silakan kirim email ke connect@jurnal.id.

API Rate Limiting

Jurnal API is used by many developers. To provide a consistent experience, we apply rate limits on our API. This keeps our system stable, offers good response times to our users, and prevents large users from affecting smaller ones.

Rate limiting is applied at 2 (two) levels, specifically:

  • IP Level rate limit: This will allow a single IP to make a specific number of requests in a period of time.
  • API Consumer Level: This will allow a consumer(one consumer generally maps to one API-KEY or oAuth Token) to make a specific amount of requests in a period of time.

We apply limits at:

  • Every minute
  • Every hour

This means that we can not make more than the limited number of requests in a minute or an hour.

The rate limiting works in the following way:

  • There is a set number of requests that can be made in 1 minute and 1 hour.
  • Any API request made will deduct from the balance of the consumer/IP.
  • If the balance reaches 0, then the API will respond with a 429 Response that indicates the rate limit has been exceeded. Following will be the body of the response

{"message":"API rate limit exceeded"}

  • The counter is reset every minute and hour and the API calls can be resumed after this time successfully.

The rate limits are currently set at:

  • 40 requests a minute per IP address.
  • 2500 requests an hour per IP address.
  • 30 requests a minute per API Consumer.
  • 1800 requests an hour per API Consumer.

All the API responses will add the following HTTP Headers:

  • x-ratelimit-limit-hour: Indicates the applicable rate limit per hour for this API call.
  • x-ratelimit-limit-minute: Indicates the applicable rate limit per minute for this API call.
  • x-ratelimit-remaining-hour: The remaining number of API calls that can be made in this current hour, If it indicates 0, then no more API calls can be made for this hour.
  • x-ratelimit-remaining-minute: The remaining number of API calls that can be made in this current minute, If it indicates 0, then no more API calls can be made for this minute.

When an application exceeds the rate limit for a given Twitter API endpoint, the API will return an HTTP 429 “Too Many Requests” response code, and the following error will be returned in the response body:

{ "errors": [ { "code": 88, "message": "Rate limit exceeded" } ] }

Recovery from Rate Limit

In case your application gets rate limited, pause for a minute or an hour depending on the values headers described above. To enhance your rate limit please send an email to connect@jurnal.id.

Bagikan artikel ini

Punya saran dan komentar untuk artikel ini?

Bantu kami meningkatkan kualitas dari guidebook kami dengan mengisi form