Put V2 Type Curve Normalization (Preview)
PUT/v2/projects/:projectId/type-curves/:id/normalization
This endpoint is documented ahead of the Type Curve 2.0 switch-over. It does not respond until 2026-11-07, when Type Curve V1 stops responding.
Writes the normalization configuration for the given type curve, replacing any existing configuration. To set up a new type curve with normalization, create it with POST /v2/projects/{projectId}/type-curves, then call this endpoint.
All three phases are required, which is where this differs from PUT /{id}/fits. That endpoint can write one phase and leave the others unchanged; this one replaces the whole configuration. Send the full configuration, in the shape GET returns.
xAxis is the only field that cannot always be sent back as GET returns it. When customBasisKey is set, GET returns the basis's composite ratio as xAxis, and sending that ratio back is a 400. Omit xAxis when customBasisKey is set; otherwise xAxis is required.
customBasisKey cannot be combined with yAxis: eur_and_peak. A basis normalizes a single factor, so the second factor would be ignored.
Segment xStart values must increase strictly from one segment to the next. A segment ends where the next one begins, so an out-of-order or repeated value describes a segment that covers no x values.
Validation is all-or-nothing: any error in the body returns one 400, and nothing is written.
This endpoint writes the configuration only. It does not recompute the per-well normalization multipliers.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- 500
OK. The saved configuration, exactly as a following GET returns it. When customBasisKey is set, xAxis comes back as the basis's composite ratio.
Bad Request. There is something wrong with the request data. Nothing was written.
Unauthorized. Invalid or missing authentication.
Forbidden. Insufficient permissions to access the resource.
Not Found. The project or the type curve does not exist, or the type curve belongs to a different project. Those cases are deliberately indistinguishable.
Too Many Requests. The per-tenant request rate limit was exceeded.
Internal Server Error. Something went wrong on the server.