Partner API

Put RRS petrophysics inside your own software

For software companies and operators with their own platforms. Send well logs or reservoir inputs from your system and get interpreted results back from the same engine that runs the Reservoir Risk Solutions app. Your users stay in your product.

What you can call today

Two endpoints are live. Each partner key opens only the endpoints named in its agreement.

Volumetrics

POST /api/v1/volumetrics

Send area, thickness, porosity, water saturation, formation volume factor and recovery factor. Get back oil or gas in place and recoverable volume, each with its unit.

Inputs: Field or metric units, oil or gas, fractions not percentages

120 requests per minute per key

Formation evaluation

POST /api/v1/formation-evaluation/interpret

Send one well's log curves and zone tops. Get back, per zone: gross, net and net pay thickness, average porosity, water saturation and shale volume, plus the parameters that produced them. Depth-by-depth curves can be requested in the same call.

Inputs: Curves with declared roles and units, zones, optional interpretation parameters

30 requests per minute per key

A real request and response

This response was computed by the production engine when this page was built, not typed in. It is the same function the API calls.

Request
POST /api/v1/volumetrics
Authorization: Bearer <your key>
Content-Type: application/json

{
  "unit_system": "Field",
  "fluid_type": "Oil",
  "area": 640,
  "net_thickness": 50,
  "porosity": 0.22,
  "water_saturation": 0.3,
  "formation_volume_factor": 1.25,
  "recovery_factor": 0.25
}
Response
{
  "request_id": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b1a0c7e63",
  "engine_version": "2026.03.28.3",
  "output_version": "v1",
  "processed_at": "2026-09-26T14:00:00.000Z",
  "unit_system": "Field",
  "fluid_type": "Oil",
  "input_units": {
    "area": "acres",
    "net_thickness": "ft",
    "porosity": "fraction",
    "water_saturation": "fraction",
    "formation_volume_factor": "rb/STB",
    "recovery_factor": "fraction"
  },
  "in_place": {
    "value": 30.5851392,
    "unit": "MMSTB"
  },
  "recoverable": {
    "value": 7.6462848,
    "unit": "MMSTB"
  }
}

Built to be integrated, not guessed at

Units are declared, never inferred

Every request states its unit system, and every value in the response carries its unit. A metric number read as field units produces a plausible, wrong answer, so the API refuses to guess.

Bad input is rejected, not quietly computed

Percentages where fractions belong, text where numbers belong, unknown parameter names, duplicate curves: each comes back as a field-level error your developers can act on.

Every result can be traced and reproduced

Each response carries a request ID, the engine version that ran, the contract version, the time it ran, and for well interpretation a fingerprint of the exact inputs and every parameter used.

A versioned contract

The response format is versioned. Changes that would break an integration ship as a new version alongside the old one, so your code keeps working.

Your well data

  • Curves and inputs are used to compute the result and are not stored in our database.
  • We keep a usage record per call: which key, which endpoint, the result code, the time taken and the request size. That record is what billing is based on.
  • Nothing you send is used to train models or shared with other partners.

Access and security

  • One key per partner, sent once, over a channel you choose. We store only a fingerprint of it.
  • Keys are limited to the endpoints in your agreement, expire after a set term unless the agreement says otherwise, and can be replaced or revoked instantly.
  • Per-key rate limits, plus a limit per source before any key is checked.
  • Requests without a valid key are refused before any work is done.

More of the engine, by agreement

The app runs these calculations today. Exposing them to a partner's software is scoped and priced in each agreement, so you pay for what you use.

  • Multi-well batch interpretation
  • Monte Carlo volumetrics (P10, P50, P90)
  • Investment economics: cash flow, NPV, IRR
  • Rock typing and permeability
  • TOC and organic richness
  • 1D geomechanics
  • Multimineral solving
  • Tops and zone tables across wells

How access works

  1. 1

    Talk to us

    Tell us what your platform needs and which calculations.

  2. 2

    Sign an agreement

    Confidentiality, scope and terms, including which endpoints and for how long.

  3. 3

    Integrate with a test key

    Build against the live engine with a test key and the technical specification.

  4. 4

    Go live

    A live key for production traffic, under the terms in your agreement.

Building a platform for operators?

If your users need formation evaluation or volumetrics without leaving your product, we would like to hear what you are building.