Difference between revisions of "PVT API"
| Line 35: | Line 35: | ||
The request body is a JSON object containing PVT calculator attributes plus two optional unit-control keys: | The request body is a JSON object containing PVT calculator attributes plus two optional unit-control keys: | ||
| − | |||
| − | |||
| − | |||
"unit_system": "RU", | "unit_system": "RU", | ||
"defaultFluidType": "OIL", | "defaultFluidType": "OIL", | ||
| Line 49: | Line 46: | ||
"sgGas": 0.75, | "sgGas": 0.75, | ||
"sgWater": 1.0 | "sgWater": 1.0 | ||
| − | |||
On success the endpoint returns HTTP 200 with: | On success the endpoint returns HTTP 200 with: | ||
Revision as of 17:09, 14 July 2026
PVT API
The PVT calculator models reservoir fluid properties (oil, gas, water) over a pressure range using various correlations, and returns property curves (plots), single‑point reservoir‑condition values (solution), and a stepped property table (results).
Endpoints
All endpoints require the Authorization: Bearer <api_key> header and are subject to rate limiting. The response envelope is always { "success": <bool>, "data": <payload> }
| Method | Path | Purpose |
|---|---|---|
| POST | /pvt-calculator/calc | Synchronous — compute and return the result in the same request |
| POST | /pvt-calculator/calc-async | Asynchronous — enqueue a job, return a {token} |
| GET | /pvt-calculator/{token}/status | Job status and progress |
| GET | /pvt-calculator/{token}/output-data | Job result (same shape as the sync data) |
| GET | /pvt-calculator/{token}/input-data | The input the job was created with |
| POST | /pvt-calculator/{token}/start | Reset and re-run the job |
| POST | /pvt-calculator/{token}/stop | Stop a running job |
| DELETE | /pvt-calculator/{token} | Delete the job |
Use /calc (synchronous) for normal interactive requests — a single PVT model computes in well under a second and the result comes back in the HTTP response.
Use /calc-async only for batch/heavy workloads where you would rather not hold an open HTTP connection. The async path enqueues an api_task row that is picked up by the CalcDaemon worker; you then poll status and fetch output-data. The async job runs the same calculatePvt() code as the sync endpoint, so the result is identical for identical input.
Synchronous request — POST /pvt-calculator/calc
The request body is a JSON object containing PVT calculator attributes plus two optional unit-control keys:
"unit_system": "RU", "defaultFluidType": "OIL", "maximumPressure": 300, "reservoirPressure": 300, "temperature": 90, "pBubbleInitial": 200, "rsbInitial": 60, "isRsbUsedForPb": true, "sgOil": 0.85, "sgGas": 0.75, "sgWater": 1.0
On success the endpoint returns HTTP 200 with:
{
"success": true,
"data": {
"plots": {},
"solution": {},
"results": {}
}
}
Where data carries:
- plots — property curves
- solution — single-point reservoir-condition values
- results — stepped property table
