@extends('master') @section('content')

API Documentation

arrow_back Kembali
{{-- Authentication --}}
lock Authentication

Semua API endpoint memerlukan API key yang valid. Sertakan key pada header Authorization:

Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
info API key bisa didapatkan dari halaman API Management (Super Admin only).
{{-- Base URL --}}
link Base URL
{{ url('/api/v1') }}
{{-- Response Format --}}
data_object Response Format

Semua response menggunakan format JSON envelope yang konsisten:

Success Response:
{
    "success": true,
    "message": "Data retrieved successfully",
    "data": [...],
    "meta": {
        "current_page": 1,
        "per_page": 25,
        "total": 150,
        "last_page": 6
    }
}
Error Response:
{
    "success": false,
    "message": "Deskripsi error",
    "error_code": "ERROR_CODE"
}
{{-- Endpoints --}}
api Endpoints
Method Endpoint Scope Deskripsi
Stock
GET /stock/master stock:read Data master stok (semua item)
GET /stock/{lab} stock:read Stok per sub-lab (mikro/cpo/ci)
Items
GET /items items:read Katalog item reference (paginated)
GET /items/{item_code} items:read Detail item berdasarkan kode
Transactions
GET /transactions/received/{lab} transactions:read History penerimaan per lab
GET /transactions/expense/{lab} transactions:read History pengeluaran per lab
Verification
GET /verification/{lab} verification:read Status verifikasi terbaru
GET /verification/{lab}/history verification:read History verifikasi
Expiry
GET /expiry-alerts expiry:read Item mendekati kedaluwarsa (?days=90)
Destruction
GET /destruction/requests destruction:read Daftar request pemusnahan
GET /destruction/requests/{poolingreq} destruction:read Detail request pemusnahan
Settings
GET /minmax/{lab} settings:read Setting min/max per lab
Staging
GET /staging/{lab} staging:read Daftar staging/pooling
GET /staging/{lab}/{pooling_number} staging:read Detail item dalam pooling
Parameter {lab}: Nilai yang valid: mikro, cpo, ci
{{-- Query Parameters --}}
tune Query Parameters

Semua list endpoint mendukung query parameters berikut:

Parameter Default Keterangan
per_page 25 Jumlah item per halaman (max: 100)
page 1 Nomor halaman
search - Pencarian berdasarkan item_code atau item_description
sort created_at Field untuk sorting
order desc Arah sorting: asc atau desc
{{-- Error Codes --}}
error Error Codes
HTTP Code Error Code Keterangan
401 MISSING_API_KEY Header Authorization tidak ada
401 INVALID_API_KEY API key tidak ditemukan
401 INACTIVE_API_KEY API key nonaktif
401 REVOKED_API_KEY API key telah dicabut
401 EXPIRED_API_KEY API key sudah kedaluwarsa
403 INSUFFICIENT_SCOPE Key tidak memiliki scope yang diperlukan
429 RATE_LIMIT_EXCEEDED Batas rate limit tercapai
{{-- Rate Limiting --}}
speed Rate Limiting

Setiap API key memiliki rate limit per menit. Info rate limit tersedia di response headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
Retry-After: 45  (hanya saat limit tercapai)
{{-- Sidebar: Scopes --}}
security Available Scopes
    @foreach($availableScopes as $scope => $description)
  • {{ $scope }}
    {{ $description }}
  • @endforeach
terminal Contoh cURL
curl -X GET \
  {{ url('/api/v1/stock/master') }} \
  -H "Authorization: Bearer sk_your_key_here" \
  -H "Accept: application/json"
@endsection