Langsung ke konten
Search documentation titles, headings, and guides
API v1Updated 2026-10-16

API Peringkat

GET /api/rankings — pemakaian token publik per model dan pembuat, model yang sedang naik dan tercepat, data di balik halaman peringkat LLM.

GET /api/rankings adalah feed publik tanpa autentikasi di balik halaman peringkat LLM. Endpoint ini melaporkan jumlah token yang dilayani tiap model di zrouter dalam satu window bergulir, pangsa pasar tiap pembuat model, model yang sedang naik, dan model tercepat berdasarkan median kecepatan output. Respons hanya berisi agregat: tanpa harga, jumlah request atau user, maupun detail provider.

Endpoint#

GET/api/rankings
Auth: public

Peringkat pemakaian token untuk satu window bergulir. Di-cache 60 detik (Cache-Control: public, max-age=60).

Parameters

windowstringqueryoptionaldefault: week

Window bergulir yang berakhir sekarang: 24 jam terakhir (bucket per jam), 7 atau 30 hari (bucket harian), atau semua sejak hari pertama tercatat (bucket mingguan, mulai Senin).

Allowed values:dayweekmonthall
modalitystringqueryoptionaldefault: text

Saat ini hanya model teks yang diperingkat. Model gambar tidak termasuk.

Allowed values:text

Request Example

curl https://api.zrouter.dev/api/rankings?window=week

Responses

200Peringkat untuk window yang diminta (diringkas).
{
  "schema_version": 1,
  "generated_at": "2026-10-16T08:00:00Z",
  "window": "week",
  "modality": "text",
  "range": {
    "from": "2026-10-09T08:00:00Z",
    "to": "2026-10-16T08:00:00Z",
    "previous_from": "2026-10-02T08:00:00Z",
    "data_since": "2026-09-03"
  },
  "totals": { "tokens": 171534300000, "previous_tokens": 155000001000 },
  "leaderboard": [
    {
      "rank": 1,
      "public_name": "deepseek-v4.1-flash",
      "display_name": "DeepSeek V4.1 Flash",
      "author": "deepseek",
      "listed": true,
      "tokens": 111300000000,
      "previous_tokens": 101000000000,
      "change_pct": 10,
      "is_new": false
    }
  ],
  "other": { "tokens": 315000000 },
  "series": {
    "bucket": "day",
    "keys": ["deepseek-v4.1-flash"],
    "points": [
      { "start": "2026-10-08T17:00:00Z", "partial": true, "values": { "deepseek-v4.1-flash": 7950000000 }, "other": 22500000 }
    ]
  },
  "authors": [{ "author": "deepseek", "tokens": 111300000000, "share_bp": 6489 }],
  "trending": [
    { "public_name": "deepseek-v4.1-flash", "display_name": "DeepSeek V4.1 Flash", "author": "deepseek", "tokens": 111300000000, "change_pct": 10, "is_new": false }
  ],
  "fastest": [
    { "public_name": "deepseek-v4.1-flash", "display_name": "DeepSeek V4.1 Flash", "author": "deepseek", "tps_p50": 91.2, "ttft_p50_ms": 2365, "samples_bucket": "10k+" }
  ]
}
400`invalid_request`: nilai `window` atau `modality` tidak dikenal.
404`not_found`: peringkat tidak diaktifkan di deployment ini.
500`internal_error`: data pemakaian gagal dibaca; coba lagi nanti.

Field#

FieldArti
range.from / range.toBatas window (UTC, presisi menit). to adalah waktu snapshot diambil.
range.previous_fromAwal periode pembanding dengan panjang sama tepat sebelum from; null untuk all.
range.data_sinceHari pertama dengan pemakaian tercatat (tanggal kalender Asia/Jakarta).
totals.tokensSemua token teks dalam window: papan peringkat ditambah other.tokens.
leaderboard[].listedApakah model sedang ada di katalog publik. Model yang sudah pensiun tetap punya riwayat tetapi tidak di-listing.
leaderboard[].change_pctPersentase bulat vs periode sebelumnya; null bila is_new true atau untuk all.
other.tokensToken dari model yang tidak ditampilkan namanya.
seriesData grafik: per bucket, token model teratas (keys) dan sisanya di other. partial menandai bucket yang terpotong tepi window.
authors[].share_bpPangsa pasar dalam basis poin (1/100 persen). Jumlahnya selalu tepat 10000.
trendingModel yang terlihat dengan minimal 1 juta token dalam 7 hari terakhir yang baru atau tumbuh vs 7 hari sebelumnya; maksimal 10.
fastest[].tps_p50Median token output per detik dari request streaming yang sukses selama 7 hari, ujung ke ujung (termasuk waktu hingga token pertama).
fastest[].samples_bucketUkuran sampel kasar: 200+, 1k+, atau 10k+. Model butuh minimal 200 request streaming untuk muncul.

Cara token dihitung#

  • Token = input + output dari setiap request inferensi di zrouter, termasuk request gagal yang memakai token. Cache read tidak dihitung. Trafik health-check dikecualikan.
  • Hari mengikuti Asia/Jakarta (UTC+7). Bucket harian dan mingguan mulai pukul 00:00 WIB.
  • Total sama dengan halaman status. Window all sama dengan token sepanjang waktu di halaman status, dikurangi model gambar.
  • Segar dalam satu menit. Hasil dihitung paling banyak sekali per menit per window dan disajikan dari cache.