External API, Snowflake and Databricks updates in v48.0

External API, Snowflake and Databricks updates in v48.0

Released 2026-11-06. This release completes the Type Curve 2.0 move for the External API and the data shares. It also adds embedded lookup table (ELT) writes to the API and tightens several API behaviors.

External API

Type Curve 2.0

  • Type Curve V1 endpoints are removed. Every /v1/projects/{projectId}/type-curves and /lookup-tables route now returns 410 Gone. The message names the matching /v2 path. See the migration guide.
  • The V2 type curve endpoints are generally available for all customers and are no longer labelled pre-release.
  • Fits:
    <ul>
    
      <li><code>regressionType</code> is no longer part of V2 fits.</li>
    
      <li>A <code>linear</code> segment now takes a required <code>slopeValue</code>, in rate units per day. <code>slope</code> is only its sign, and writes ignore it.</li>
    
      <li><code>PUT /{id}/fits</code> deletes any phase you leave out of the body.</li>
    
    </ul>
    
  • Normalization: PUT replaces the whole configuration, so all three phases are required.
  • Query parameters on the V2 type curve endpoints:
    <ul>
    
      <li><code>take</code> defaults to 25. The maximum is 2500.</li>
    
      <li>To filter on several values of <code>id</code>, <code>name</code> or <code>well</code>, repeat the key (<code>?id=a&amp;id=b</code>, up to 100). A comma-separated list is not split.</li>
    
    </ul>
    
  • Scenarios: the forecast column of a scenario lookup-table assignment accepts a Type Curve V2 lookup table (/v2/projects/{projectId}/type-curves/lookup-tables) when your company's economics runs use Type Curve V2. A table of the other version fails the record.

Embedded lookup tables

  • You can now create (POST), replace by name (PUT) and delete (DELETE) embedded lookup tables, at both company and project level. Writes accept up to 50 tables per request.
    <ul>
    
      <li>A name must be unique across all types.</li>
    
      <li>A replace changes all rows, rules and options, and keeps <code>createdBy</code>, <code>copiedFrom</code> and <code>tags</code>. It cannot change the type.</li>
    
      <li>Deleting a table also removes its links from econ models.</li>
    
    </ul>
    
  • Risking and operations tables are supported for tenants that have those features enabled. Other tenants get an "invalid type" error for them.
  • Reads return lookup_by and the custom stream key, and a table read from the API can be written back unchanged.
  • The read limit is raised from 50 to 200 records per request.

Exports

  • POST /v1/exports is set to be deprecated. It returns Deprecation and Sunset headers. The sunset date is 2027-01-04. Migrate to /v2/exports, which lets you start an export job and poll its status.
  • Export files are kept for 7 days. An expired v2 forecast export now reports failed with an error message instead of staying running.

Scenarios, combos and qualifiers

  • Combos now return updatedAt. You can filter and sort on it, with the operators lt, le, gt and ge. With no operator, it matches the exact date.
  • Forecast create returns id next to forecastId.
  • You can rename the Default qualifier. Combo uniqueness checks follow the new name. You still can't create or rename a qualifier to Default.

Pagination

Pagination links on v2 requests now use the public API host instead of an internal one.

Snowflake and Databricks

New Type Curve 2.0 shared data, in both platforms:

  • TYPE_CURVE_FIT_SEGMENTS_V2_SV
  • TYPE_CURVE_NORMALIZATIONS_V2_SV
  • TYPE_CURVE_NORMALIZATION_SEGMENTS_V2_SV
  • TYPE_CURVE_NORMALIZATION_TARGETS_V2_SV
  • TYPE_CURVE_NORMALIZATION_WELLS_V2_SV

Each view keeps the latest row per key and adds the type curve and project names. Beyond that:

  • The fit segments view adds fit type and base phase.
  • The normalization segments view adds the x and y axis.
  • The normalization wells view adds CHOSEN_ID and DATASOURCE.

The earlier Type Curve 2.0 views (TYPE_CURVES_V2, the V2 wells and the V2 fits) are unchanged.