Menu dokumentasi
Pelacakan
Lacak resi.
Lacak resi
https://api.ongkirhub.com/v1/tracking/{awb} Resi yang dibuat lewat OngkirHub di mode kunci ini dilacak tanpa parameter tambahan; datanya diperbarui berkala. Resi dari luar OngkirHub butuh parameter courier dan hanya didukung untuk kurir dengan tracking.anyResi di GET /v1/couriers (JNE, J&T Express, AnterAja). JNE juga butuh verification.
Akses (scope): tracking:read.
Butuh kunci API (bearerAuth)
Parameter path
| Field | Keterangan |
|---|---|
awb string, wajib | Nomor resi. |
Parameter query
| Field | Keterangan |
|---|---|
courier string | Kode kurir, untuk resi dari luar OngkirHub.
Nilai:
|
verification string | 5 digit terakhir nomor HP penerima (wajib untuk resi JNE dari luar OngkirHub). |
Contoh permintaan
curl -X GET "https://api.ongkirhub.com/v1/tracking/CGK0123456789012" \
-H "Authorization: Bearer ohk_test_xxx" Respons
-
Status dan riwayat pelacakan.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
Field respons 200 Field Keterangan awbstring, wajibNomor resi.
courierobject, wajib-
courier.codestring | null, wajib-
Nilai:
jnejntjtcsicepatspxlionpospaxelgosendanterajacourier.namestring | null, wajibNama kurir.
shipmentIdstring | null, wajibID pengiriman OngkirHub jika resi dibuat lewat OngkirHub.
shipmentStatusstring | null, wajib-
Nilai:
quotedsubmittingbookedawb_readypicked_upin_transitout_for_deliverydeliveredfailedunknownproblemreturnedcancel_requestedcancelledexpiredshipmentStatusLabelstring | null, wajibLabel status OngkirHub.
stagestring, wajibTahap perjalanan.
Nilai:
manifestedpicked_upin_transitout_for_deliverydeliveredproblemreturnedcancelledunknownstageLabelstring, wajibLabel tahap.
deliveredboolean, wajibPaket sudah diterima.
originstring | null, wajibAsal.
destinationstring | null, wajibTujuan.
courierStatusstring | null, wajibStatus menurut kurir.
shippedAtstring (date-time) | null, wajibTanggal kirim.
deliveredAtstring (date-time) | null, wajibTanggal diterima.
lastCheckedAtstring (date-time) | null, wajibTerakhir dicek ke kurir.
eventsarray<TrackingEvent>, wajibRiwayat, terbaru dulu.
{ "awb": "CGK0123456789012", "courier": { "code": "jne", "name": "JNE" }, "shipmentId": "OH0HZ3K7Q2M4XB", "shipmentStatus": "in_transit", "shipmentStatusLabel": "Dalam perjalanan", "stage": "in_transit", "stageLabel": "Dalam perjalanan", "delivered": false, "origin": "JAKARTA", "destination": "BANDUNG", "courierStatus": "ON PROCESS", "shippedAt": "2026-10-11T04:05:00.000Z", "deliveredAt": null, "lastCheckedAt": "2026-10-11T09:00:00.000Z", "events": [ { "at": "2026-10-11T08:40:00.000Z", "rawDate": "2026-10-11 15:40:00", "description": "SHIPMENT FORWARDED TO DESTINATION [BANDUNG]" }, { "at": "2026-10-11T04:05:00.000Z", "rawDate": "2026-10-11 11:05:00", "description": "SHIPMENT RECEIVED BY JNE COUNTER OFFICER AT [JAKARTA]" } ] } -
-
Kunci API tidak dikirim, tidak valid, atau sudah dicabut.
-
X-Request-Id - ID permintaan untuk dukungan.
{ "error": { "code": "unauthenticated", "message": "Kunci API tidak valid, sudah dicabut, atau tidak dikirim. Kirim header Authorization: Bearer <kunci API>.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
-
Kunci API tidak punya akses (scope) untuk endpoint ini.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
{ "error": { "code": "forbidden", "message": "Kunci API ini tidak punya akses ke endpoint ini. Tambahkan akses yang dibutuhkan di menu Developer.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12", "details": { "requiredScope": "shipments:write" } } } -
-
Resi tidak ditemukan.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
{ "error": { "code": "tracking_not_found", "message": "Nomor resi tidak ditemukan. Pastikan nomor resi dan kurirnya sudah benar.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
-
Parameter belum valid, kurir belum didukung, atau verifikasi dibutuhkan.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
Butuh verifikasi
{ "error": { "code": "tracking_verification_required", "message": "Masukkan 5 digit terakhir nomor HP penerima untuk melacak resi ini.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } }Kurir belum didukung
{ "error": { "code": "tracking_unsupported_courier", "message": "Resi dari kurir ini belum bisa dilacak di OngkirHub.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
-
Batas permintaan terlampaui.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
-
Retry-After - Detik sampai boleh mencoba lagi.
{ "error": { "code": "rate_limited", "message": "Terlalu banyak permintaan. Tunggu sebentar, lalu coba lagi.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12", "details": { "retryAfterSec": 21 } } } -
-
Kesalahan di sistem OngkirHub. Aman dicoba ulang dengan Idempotency-Key yang sama.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
{ "error": { "code": "internal_error", "message": "Terjadi kesalahan di sistem kami. Coba lagi sebentar lagi.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
-
Layanan pengiriman sedang gangguan atau pembuatan resi sedang dijeda. Coba lagi nanti.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
Layanan pengiriman gangguan
{ "error": { "code": "service_unavailable", "message": "Layanan pengiriman sedang gangguan. Coba lagi beberapa saat lagi.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } }Pembuatan resi dijeda
{ "error": { "code": "booking_disabled", "message": "Pembuatan resi sedang dijeda sementara. Cek ongkir dan cek resi tetap bisa dipakai.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
-
Layanan pengiriman lambat merespons. Coba lagi.
-
X-Request-Id - ID permintaan untuk dukungan.
-
RateLimit-Limit - Batas permintaan per jendela waktu.
-
RateLimit-Remaining - Sisa permintaan di jendela waktu ini.
-
RateLimit-Reset - Detik sampai jendela waktu berikutnya.
{ "error": { "code": "service_timeout", "message": "Layanan pengiriman sedang lambat. Coba lagi sebentar lagi.", "request_id": "req_5f0c2a9e7b1d4c3a8e6f0b12" } } -
Skema objek
Objek yang dipakai di halaman ini, dijelaskan sekali di sini.
TrackingEvent
| Field | Keterangan |
|---|---|
at string (date-time) | null, wajib | Waktu kejadian (UTC). Null jika tanggal dari kurir tidak terbaca. |
rawDate string | null, wajib | Tanggal seperti yang dikirim kurir. |
description string, wajib | Keterangan dari kurir. |