Developers

Satu REST API untuk seluruh lifecycle

Semua yang bisa dilakukan aplikasi web bisa dilakukan skrip dan CI Anda. Satu base URL, satu bearer token, dengan batas akses persis seperti seorang manusia.

☰ Di halaman ini

Base URL dan autentikasi

Semua endpoint berada di bawah https://api.oprex.id/api/v1 dan diautentikasi dengan API key yang Anda buat di workspace.

# buat kunci di https://member.oprex.id/panel/settings/api-keys
curl https://api.oprex.id/api/v1/bugs \
  -H "Authorization: Bearer oprex_pk_…"

Kunci membawa scope dan, bila perlu, batas sumber daya. Kunci ber-scope read saja tidak bisa menjalankan metode tulis apa pun — ini dipaksakan terpusat pada metode HTTP, jadi berlaku untuk seluruh endpoint yang ada sekarang maupun nanti. Kunci yang dibatasi ke satu group atau project hanya bisa menyentuh group atau project itu; tanpa batas, cakupannya seluruh tenant.

Batas laju. Setiap kunci punya jatah permintaan per menit (bawaan 120). Melampauinya menghasilkan 429 dengan header Retry-After dan X-RateLimit-Limit. Mundur sejenak, jangan langsung mengulang.

Bentuk respons

Daftar menjawab { "data": [...] }; objek tunggal menjawab { "data": {...} }. Kesalahan menjawab { "error": { "code", "message" } } dengan status HTTP yang bermakna. Pesannya ditulis untuk dibaca manusia — kalau ada yang tidak, itu bug yang layak dilaporkan.

{ "data": [ { "id": "bug_9tK…", "seq": 42, "title": "Checkout retries create duplicate orders",
             "severity": "critical", "status": "confirmed", "projectId": "prj_2mA…" } ] }

Sumber daya

Tiap keluarga mendukung operasi list, baca, buat, dan ubah yang biasa — kecuali objeknya memang tidak bisa diubah. Parameter query menyaring berdasarkan project, status, severity, penanggung jawab, dan teks bebas bila masuk akal.

Lifecycle

ResourceIsinya
/specificationsSpecification — desain sebuah fitur; induk wajib setiap requirement
/requirementsRequirement — apa yang harus ada, di bawah satu specification, berversi dan berpemilik
/testsTest plan, test case, dan test run
/coverageMatriks cakupan requirement × test
/release-plansRilis yang direncanakan beserta isinya
/releasesRilis yang sudah keluar dan entri changelog

Cacat & pekerjaan

ResourceIsinya
/bugsBug dengan severity, status, dan environment
/bug-relationsKaitan antar bug, termasuk lintas project
/ticketsTiket helpdesk dan kategorinya
/milestonesMilestone lintas project
/todosTugas pribadi dan tugas yang ditugaskan

Pengetahuan

ResourceIsinya
/memoriesDokumen Memory panjang untuk manusia dan agen
/notesCatatan pendek yang menempel pada objek apa pun
/kbArtikel knowledge base
/commentsDiskusi berutas pada objek apa pun

Platform

ResourceIsinya
/platform/groupsGroup — namespace bersarang
/platform/projectsProject di dalam sebuah group
/platform/contextTenant, peran, group, dan project Anda
/platform/entitlementPaket saat ini, batas efektif, dan pemakaian
/api-keysKelola API key lewat program

Kontrol akses juga berlaku di API

API key bertindak atas nama orang yang membuatnya. Kalau kontrol akses per project aktif di tenant Anda, kunci itu melihat persis apa yang orang tersebut lihat — termasuk pada angka agregat. Project yang tidak boleh Anda baca tidak akan bocor keberadaannya lewat sebuah statistik.

OAuth 2.1

Untuk perkakas yang menyambung atas nama seorang pengguna alih-alih menyimpan kunci statis, Oprex adalah authorization server OAuth 2.1-nya sendiri, dengan PKCE dan pendaftaran klien dinamis. Token yang terbit lewat jalur itu berperilaku persis seperti API key — scope sama, penegakan sama — sehingga seluruh endpoint di halaman ini bekerja tanpa perubahan.

Ambil kunci dan coba

Buat workspace, buka Settings → API Keys, dan permintaan pertama tinggal sekali salin-tempel.

Buat API key Atau sambungkan lewat MCP