# External API, Snowflake and Databricks updates in v48.0

**URL:** <https://forum.api.combocurve.com/t/external-api-snowflake-and-databricks-updates-in-v48-0/488>\
**Category:** Uncategorized\
**Created:** [November 9, 2026, 10:19pm UTC](https://forum.api.combocurve.com/t/external-api-snowflake-and-databricks-updates-in-v48-0/488 "2026-11-09T22:19:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Danny\_Cooney](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.api.combocurve.com/danny_cooney/32/256_2.png) [@Danny\_Cooney](https://forum.api.combocurve.com/u/Danny_Cooney)\
**Post date:** [November 9, 2026, 10:19pm UTC](https://forum.api.combocurve.com/t/external-api-snowflake-and-databricks-updates-in-v48-0/488/1 "2026-11-09T22:19:53Z")

</div>

# 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](https://docs.api.combocurve.com/api/custom/v2/type-curves/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.
