PySCnomics menyediakan server REST API berbasis FastAPI yang memungkinkan komputasi keekonomian PSC dilakukan secara headless, tanpa antarmuka web grafis.
pyscnomics --api 1 --port 9999
Parameter --api 1 mengaktifkan mode server, dan --port menentukan port yang digunakan. Server berjalan di atas Uvicorn sebagai ASGI server.
Dokumentasi API interaktif otomatis dihasilkan di http://localhost:9999/docs dan http://localhost:9999/redoc.
Request body menggunakan format JSON yang memetakan struktur data PySCnomics:
{
"project": {
"name": "Contoh",
"start_date": "2025-01-01",
"end_date": "2035-12-31",
"contract_type": "PSC Cost Recovery (CR)",
"lifting": { "..." },
"costs": { "..." },
"contract_params": { "..." }
}
}
Menjalankan perhitungan keekonomian penuh untuk satu proyek.
Request:
{
"project": "<Project object>"
}
Response:
{
"npv": 123.45,
"irr": 0.1876,
"pot": 5.2,
"pi": 1.8,
"cashflow": { "..." },
"summary": { "..." }
}
Analisis sensitivitas, variasi independen setiap parameter.
Request:
{
"project": "<Project object>",
"parameters": ["oil_price", "capex", "opex"],
"variations": [-0.2, -0.1, 0.0, 0.1, 0.2]
}
Simulasi Monte Carlo dengan distribusi probabilitas.
Request:
{
"project": "<Project object>",
"distributions": {
"oil_price": {"type": "normal", "mean": 80, "std": 10},
"capex": {"type": "triangular", "min": 400, "mode": 500, "max": 650}
},
"iterations": 10000
}
Optimisasi sekuensial (bounded scalar optimization).
Request:
{
"project": "<Project object>",
"objective": "npv",
"bounds": {"gas_price": [6, 12], "capex": [400, 600]},
"pop_size": 50,
"generations": 100
}
Pengecekan status server.
Response: {"status": "ok", "version": "1.5.0"}