openapi: 3.1.0
info:
title: ComboCurve REST v1 custom-columns v1 econ-models API
version: v1
description: 'ComboCurve REST API for oil & gas well forecasting, type curves, production data, reserves and economics. Base URL https://api.combocurve.com. Authentication requires two headers: a signed bearer token (Authorization) generated from a Service Account Key, and an x-api-key. Derived by API Evangelist from the official public ComboCurve Postman collection.'
contact:
name: ComboCurve API Support
url: https://forum.api.combocurve.com/
servers:
- url: https://api.combocurve.com
description: Production
security:
- apiKeyAuth: []
bearerAuth: []
tags:
- name: v1 econ-models
description: econ-models operations
paths:
/v1/econ-models:
head:
operationId: head-company-econ-models
summary: head-company-econ-models
tags:
- v1 econ-models
description: Returns metadata about the existing econ model documents.
parameters:
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
get:
operationId: get-company-econ-models
summary: get-company-econ-models
tags:
- v1 econ-models
description: Returns a list of econ model documents.
parameters:
- name: skip
in: query
required: false
schema:
type: integer
description: number of items to skip
- name: take
in: query
required: false
schema:
type: integer
description: max records to return
- name: sort
in: query
required: false
schema:
type: string
description: field to sort by, including + or - at the beginning for ascending or descending order, respectively
- name: cursor
in: query
required: false
schema:
type: string
description: used in pagination to get the next page
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
/v1/econ-models/{id}:
get:
operationId: get-company-econ-model-by-id
summary: get-company-econ-model-by-id
tags:
- v1 econ-models
description: Returns the econ model document that matches the given id.
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
/v1/econ-models/actual-forecast:
head:
operationId: head-company-actual-forecast
summary: head-company-actual-forecast
tags:
- v1 econ-models
description: Returns metadata about the existing actual or forecast documents.
parameters:
- name: skip
in: query
required: false
schema:
type: integer
description: number of items to skip
- name: take
in: query
required: false
schema:
type: integer
description: max records to return
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
get:
operationId: get-company-actual-forecast
summary: get-company-actual-forecast
tags:
- v1 econ-models
description: Returns a list of actual of forecast documents.
parameters:
- name: skip
in: query
required: false
schema:
type: integer
description: number of items to skip
- name: take
in: query
required: false
schema:
type: integer
description: max records to return
- name: sort
in: query
required: false
schema:
type: string
description: field to sort by, including + or - at the beginning for ascending or descending order, respectively
- name: cursor
in: query
required: false
schema:
type: string
description: used in pagination to get the next page
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
post:
operationId: post-company-actual-forecast
summary: post-company-actual-forecast
tags:
- v1 econ-models
description: Inserts a list of actual or forecast documents.
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
unique:
type: boolean
well:
type: string
scenario:
type: string
actualOrForecast:
type: object
properties:
ignoreHistoryProd:
type: boolean
replaceActualWithForecast:
type: object
properties:
oil:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
gas:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
water:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
responses:
'201':
description: Created
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
put:
operationId: put-company-actual-forecast
summary: put-company-actual-forecast
tags:
- v1 econ-models
description: Replace or create a list of actual or forecast documents.
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
unique:
type: boolean
well:
type: string
scenario:
type: string
actualOrForecast:
type: object
properties:
ignoreHistoryProd:
type: boolean
replaceActualWithForecast:
type: object
properties:
oil:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
gas:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
water:
type: object
properties:
asOfDate:
type: boolean
never:
type: boolean
date:
type: string
format: date
responses:
'201':
description: Created
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
/v1/econ-models/actual-forecast/{id}:
get:
operationId: get-company-actual-forecast-by-id
summary: get-company-actual-forecast-by-id
tags:
- v1 econ-models
description: Returns the actual forecast document that matches the given id.
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
delete:
operationId: delete-company-actual-forecast-by-id
summary: delete-company-actual-forecast-by-id
tags:
- v1 econ-models
description: Delete the assumptions document that matches the given id scoped to company level
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
/v1/econ-models/capex:
head:
operationId: head-company-capex
summary: head-company-capex
tags:
- v1 econ-models
description: Returns metadata about the existing capex documents.
parameters:
- name: skip
in: query
required: false
schema:
type: integer
description: number of items to skip
- name: take
in: query
required: false
schema:
type: integer
description: max records to return
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
get:
operationId: get-company-capex
summary: get-company-capex
tags:
- v1 econ-models
description: Returns a list of capex documents.
parameters:
- name: skip
in: query
required: false
schema:
type: integer
description: number of items to skip
- name: take
in: query
required: false
schema:
type: integer
description: max records to return
- name: sort
in: query
required: false
schema:
type: string
description: field to sort by, including + or - at the beginning for ascending or descending order, respectively
- name: cursor
in: query
required: false
schema:
type: string
description: used in pagination to get the next page
- name: createdAt
in: query
required: false
schema:
type: string
description: filter by createdAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example createdAt[gt]=2018-01-01T00:00:00Z
- name: name
in: query
required: false
schema:
type: string
description: filter by name
- name: well
in: query
required: false
schema:
type: string
description: filter by well
- name: unique
in: query
required: false
schema:
type: string
description: filter by unique
- name: updatedAt
in: query
required: false
schema:
type: string
description: filter by updatedAt - Operator values are [lt] = less than, [le] = less than or equal, [gt] = greater than, [ge] = greater than or equal, no operator = equal. Example updatedAt[gt]=2018-01-01T00:00:00Z
responses:
'200':
description: Successful response
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
post:
operationId: post-company-capex
summary: post-company-capex
tags:
- v1 econ-models
description: Inserts a list of capex documents.
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
unique:
type: boolean
otherCapex:
type: object
properties:
rows:
type: array
items:
type: object
properties:
category:
type: string
tangible:
type: number
intangible:
type: number
afterEconLimit:
type: boolean
escalationStart:
type: object
properties:
date:
type: string
format: date
applyToCriteria:
type: number
fpd:
type: number
asOfDate:
type: number
econLimit:
type: number
calculation:
type: string
escalationModel:
type: string
depreciationModel:
type: string
dealTerms:
type: number
description:
type: string
capexExpense:
type: string
fromHeaders:
type: string
refracDate:
type: number
completionEndDate:
type: number
completionStartDate:
type: number
dateRigRelease:
type: number
drillEndDate:
type: number
drillStartDate:
type: number
firstProdDate:
type: number
permitDate:
type: number
spudDate:
type: number
til:
type: number
customDateHeader0:
type: number
customDateHeader1:
type: number
customDateHeader2:
type: number
customDateHeader3:
type: number
customDateHeader4:
type: number
customDateHeader5:
type: number
customDateHeader6:
type: number
customDateHeader7:
type: number
customDateHeader8:
type: number
customDateHeader9:
type: number
customDateHeader10:
type: number
customDateHeader11:
type: number
customDateHeader12:
type: number
customDateHeader13:
type: number
customDateHeader14:
type: number
customDateHeader15:
type: number
customDateHeader16:
type: number
customDateHeader17:
type: number
customDateHeader18:
type: number
customDateHeader19:
type: number
firstProdDateDaily:
type: number
firstProdDateMonthly:
type: number
lastProdDateDaily:
type: number
lastProdDateMonthly:
type: number
fromSchedule:
type: string
padPreparationMobStart:
type: number
padPreparationMobEnd:
type: number
padPreparationStart:
type: number
padPreparationEnd:
type: number
padPreparationDemobStart:
type: number
padPreparationDemobEnd:
type: number
spudMobStart:
type: number
spudMobEnd:
type: number
spudStart:
type: number
spudEnd:
type: number
spudDemobStart:
type: number
spudDemobEnd:
type: number
drillMobStart:
type: number
drillMobEnd:
type: number
drillStart:
type: number
drillEnd:
type: number
drillDemobStart:
type: number
drillDemobEnd:
type: number
completionMobStart:
type: number
completionMobEnd:
type: number
completionStart:
type: number
completionEnd:
type: number
completionDemobStart:
type: number
completionDemobEnd:
type: number
offsetToAsOf:
type: number
offsetToDiscountDate:
type: number
offsetToFpd:
type: number
offsetToMajorSegment:
type: number
offsetToEconLimit:
type: number
oilRate:
type: number
gasRate:
type: number
waterRate:
type: number
totalFluidRate:
type: number
date:
type: string
format: date
scenario:
type: string
well:
type: string
drillingCost:
type: object
properties:
tangiblePct:
type: number
calculation:
type: string
escalationModel:
type: string
depreciationModel:
type: string
fixedCost:
type: number
dealTerms:
type: number
dollarPerFtOfVertical:
type: number
dollarPerFtOfHorizontal:
type: number
rows:
type: array
items:
type: object
properties:
pctOfTotalCost:
type: number
offsetToFpd:
type: number
offsetToAsOf:
type: number
offsetToDiscountDate:
type: number
offsetToFirstSegment:
type: number
scheduleStart:
type: number
scheduleEnd:
type: number
date:
type: string
format: date
completionCost:
type: object
properties:
tangiblePct:
type: number
calculation:
type: string
escalationModel:
type: string
depreciationModel:
type: string
fixedCost:
type: number
dealTerms:
type: number
dollarPerFtOfVertical:
type: number
dollarPerFtOfHorizontal:
type: array
items:
type: object
properties:
propLl:
type: number
unitCost:
type: number
rows:
type: array
items:
type: object
properties:
pctOfTotalCost:
type: number
offsetToFpd:
type: number
offsetToAsOf:
type: number
offsetToDiscountDate:
type: number
offsetToFirstSegment:
type: number
scheduleStart:
type: number
scheduleEnd:
type: number
date:
type: string
format: date
responses:
'201':
description: Created
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'429':
description: Too many requests - rate limit exceeded
put:
operationId: put-company-capex
summary: put-company-capex
tags:
- v1 econ-models
description: Replace or create a list of capex documents.
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
unique:
type: boolean
otherCapex:
type: object
# --- truncated at 32 KB (484 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/combocurve/refs/heads/main/openapi/combocurve-v1-econ-models-api-openapi.yml