ComboCurve v1 projects API

projects operations

Operations 223

HEAD /v1/projects head-projects #
GET /v1/projects get-projects #
POST /v1/projects post-projects #
DELETE /v1/projects/{id} delete-project-by-id #
GET /v1/projects/{id} get-project-by-id #
DELETE /v1/projects/{projectId}/company-wells delete-project-company-wells #
HEAD /v1/projects/{projectId}/company-wells head-project-company-wells #
GET /v1/projects/{projectId}/company-wells get-project-company-wells #
POST /v1/projects/{projectId}/company-wells post-project-company-wells #
PATCH /v1/projects/{projectId}/company-wells patch-project-company-wells #
GET /v1/projects/{projectId}/company-wells/{id} get-project-company-well-by-id #
DELETE /v1/projects/{projectId}/daily-productions delete-project-daily-productions #
HEAD /v1/projects/{projectId}/daily-productions head-projects-daily-productions #
GET /v1/projects/{projectId}/daily-productions get-projects-daily-productions #
POST /v1/projects/{projectId}/daily-productions post-projects-daily-productions #
PUT /v1/projects/{projectId}/daily-productions put-projects-daily-productions #
PATCH /v1/projects/{projectId}/daily-productions patch-projects-daily-productions #
HEAD /v1/projects/{projectId}/forecasts head-forecasts #
GET /v1/projects/{projectId}/forecasts get-forecasts #
POST /v1/projects/{projectId}/forecasts post-forecasts #
GET /v1/projects/{projectId}/forecasts/{id} get-forecast-by-id #
DELETE /v1/projects/{projectId}/forecasts/{id} delete-forecast-by-id #
PATCH /v1/projects/{projectId}/forecasts/{id} patch-forecast #
POST /v1/projects/{projectId}/forecasts/{id}/wells post-wells-to-forecast #
POST /v1/projects/{projectId}/forecasts/{forecastId}/parameters/{wellId}/{phase}/{series} post-projects-forecast-segment-parameters #
PUT /v1/projects/{projectId}/forecasts/{forecastId}/parameters/{wellId}/{phase}/{series} put-projects-forecast-segment-parameters #
DELETE /v1/projects/{projectId}/forecasts/{forecastId}/parameters/{wellId}/{phase}/{series} delete-projects-forecast-segment-parameters #
PUT /v1/projects/{projectId}/forecasts/{forecastId}/parameters put-version-two-projects-forecast-segment-parameters #
HEAD /v1/projects/{projectId}/forecasts/{forecastId}/aries head-aries-forecast #
GET /v1/projects/{projectId}/forecasts/{forecastId}/aries get-aries-forecast #
HEAD /v1/projects/{projectId}/forecasts/{forecastId}/outputs head-forecast-outputs #
GET /v1/projects/{projectId}/forecasts/{forecastId}/outputs get-forecast-outputs #
GET /v1/projects/{projectId}/forecasts/{forecastId}/outputs/{id} get-forecast-output-by-id #
HEAD /v1/projects/{projectId}/forecasts/{forecastId}/daily-volumes head-forecast-daily-volumes #
GET /v1/projects/{projectId}/forecasts/{forecastId}/daily-volumes get-forecast-daily-volumes #
HEAD /v1/projects/{projectId}/forecasts/{forecastId}/monthly-volumes head-forecast-monthly-volumes #
GET /v1/projects/{projectId}/forecasts/{forecastId}/monthly-volumes get-forecast-monthly-volumes #
POST /v1/projects/{projectId}/forecasts/{forecastId}/run post-forecast-run #
GET /v1/projects/{projectId}/forecasts/{forecastId}/run/{jobId} get-forecast-run-status #
DELETE /v1/projects/{projectId}/monthly-productions delete-project-monthly-productions #
HEAD /v1/projects/{projectId}/monthly-productions head-projects-monthly-productions #
GET /v1/projects/{projectId}/monthly-productions get-projects-monthly-productions #
POST /v1/projects/{projectId}/monthly-productions post-projects-monthly-productions #
PUT /v1/projects/{projectId}/monthly-productions put-projects-monthly-productions #
PATCH /v1/projects/{projectId}/monthly-productions patch-projects-monthly-productions #
HEAD /v1/projects/{projectId}/scenarios head-scenarios #
GET /v1/projects/{projectId}/scenarios get-scenarios #
POST /v1/projects/{projectId}/scenarios post-project-scenarios #
PUT /v1/projects/{projectId}/scenarios put-project-scenarios #
DELETE /v1/projects/{projectId}/scenarios delete-project-scenarios #
DELETE /v1/projects/{projectId}/scenarios/head delete-scenarios #
GET /v1/projects/{projectId}/scenarios/{id} get-scenario-by-id #
HEAD /v1/projects/{projectId}/scenarios/lookup-tables head-scenario-lookup-tables #
GET /v1/projects/{projectId}/scenarios/lookup-tables get-scenario-lookup-tables #
POST /v1/projects/{projectId}/scenarios/lookup-tables post-scenario-lookup-tables #
PUT /v1/projects/{projectId}/scenarios/lookup-tables put-scenario-lookup-tables #
GET /v1/projects/{projectId}/scenarios/lookup-tables/{id} get-scenario-lookup-table-by-id #
DELETE /v1/projects/{projectId}/scenarios/lookup-tables/{id} delete-scenario-lookup-table-by-id #
HEAD /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs head-econ-runs #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs get-econ-runs #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{id} get-econ-run-by-id #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/monthly-econ-results get-monthly-econ-result-by-id #
HEAD /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/monthly-exports head-monthly-exports #
POST /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/monthly-exports post-monthly-exports #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/monthly-exports/{id} get-monthly-export-by-id #
HEAD /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/one-liners head-one-liners #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/one-liners get-one-liners #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/one-liners/{id} get-one-liner-by-id #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/econ-runs/{econRunId}/one-liners/combo-names get-one-liners-combo-names #
HEAD /v1/projects/{projectId}/scenarios/{scenarioId}/combos head-scenario-combos-count #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/combos get-scenario-combos-read #
POST /v1/projects/{projectId}/scenarios/{scenarioId}/combos post-scenario-combos-upsert #
PUT /v1/projects/{projectId}/scenarios/{scenarioId}/combos put-scenario-combos-upsert #
DELETE /v1/projects/{projectId}/scenarios/{scenarioId}/combos delete-scenario-combos-delete #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/qualifiers get-qualifiers-read #
POST /v1/projects/{projectId}/scenarios/{scenarioId}/qualifiers post-qualifiers-upsert #
PUT /v1/projects/{projectId}/scenarios/{scenarioId}/qualifiers put-qualifiers-upsert #
DELETE /v1/projects/{projectId}/scenarios/{scenarioId}/qualifiers delete-qualifiers-delete #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/well-assignments get-scenario-wells-read #
POST /v1/projects/{projectId}/scenarios/{scenarioId}/well-assignments post-scenario-wells-upsert #
PUT /v1/projects/{projectId}/scenarios/{scenarioId}/well-assignments put-scenario-wells-upsert #
DELETE /v1/projects/{projectId}/scenarios/{scenarioId}/well-assignments delete-scenario-wells-delete #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/assignments/lookup-tables get-scenario-lookup-tables-assignments #
PUT /v1/projects/{projectId}/scenarios/{scenarioId}/assignments/lookup-tables put-scenario-lookup-tables-assignments #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/assignments/lookup-tables/{lookupTableId} get-scenario-lookup-tables-assignments-by-id #
DELETE /v1/projects/{projectId}/scenarios/{scenarioId}/assignments/lookup-tables/{lookupTableId} delete-scenario-lookup-tables-assignments #
GET /v1/projects/{projectId}/scenarios/{scenarioId}/assignments/econ-models get-scenario-econ-model-assignments #
HEAD /v1/projects/{projectId}/type-curves head-type-curves #
GET /v1/projects/{projectId}/type-curves get-type-curves #
POST /v1/projects/{projectId}/type-curves post-type-curves #
PUT /v1/projects/{projectId}/type-curves put-type-curves #
DELETE /v1/projects/{projectId}/type-curves delete-type-curves #
GET /v1/projects/{projectId}/type-curves/{id} get-type-curve-by-id #
GET /v1/projects/{projectId}/type-curves/{id}/fits/daily get-type-curve-daily-fits #
GET /v1/projects/{projectId}/type-curves/{id}/fits/monthly get-type-curve-monthly-fits #
GET /v1/projects/{projectId}/type-curves/{id}/representative-wells get-type-curve-representative-wells #
HEAD /v1/projects/{projectId}/type-curves/lookup-tables head-type-curve-lookup-tables #
GET /v1/projects/{projectId}/type-curves/lookup-tables get-type-curve-lookup-tables #
POST /v1/projects/{projectId}/type-curves/lookup-tables post-type-curve-lookup-tables #
PUT /v1/projects/{projectId}/type-curves/lookup-tables put-type-curve-lookup-tables #
GET /v1/projects/{projectId}/type-curves/lookup-tables/{id} get-type-curve-lookup-table-by-id #
DELETE /v1/projects/{projectId}/type-curves/lookup-tables/{id} delete-type-curve-lookup-table-by-id #
HEAD /v1/projects/{projectId}/wells head-project-wells #
GET /v1/projects/{projectId}/wells get-project-wells #
PATCH /v1/projects/{projectId}/wells patch-project-wells #
POST /v1/projects/{projectId}/wells post-projects-wells #
PUT /v1/projects/{projectId}/wells put-projects-wells #
DELETE /v1/projects/{projectId}/wells delete-project-wells #
GET /v1/projects/{projectId}/wells/{id} get-project-well-by-id #
PATCH /v1/projects/{projectId}/wells/{id} patch-project-well-by-id #
PUT /v1/projects/{projectId}/wells/{id} put-projects-wells-by-id #
DELETE /v1/projects/{projectId}/wells/{id} delete-project-well-by-id #
HEAD /v1/projects/{projectId}/econ-models head-econ-models #
GET /v1/projects/{projectId}/econ-models get-econ-models #
GET /v1/projects/{projectId}/econ-models/{id} get-econ-model-by-id #
HEAD /v1/projects/{projectId}/econ-models/{econName}/{econModelId}/assignments head-econ-models-assignments-count #
GET /v1/projects/{projectId}/econ-models/{econName}/{econModelId}/assignments get-econ-models-assignments-read #
POST /v1/projects/{projectId}/econ-models/{econName}/{econModelId}/assignments post-econ-model-assignment-upsert #
PUT /v1/projects/{projectId}/econ-models/{econName}/{econModelId}/assignments put-econ-model-assignment-upsert #
DELETE /v1/projects/{projectId}/econ-models/{econName}/{econModelId}/assignments delete-econ-model-assignment-delete #
HEAD /v1/projects/{projectId}/econ-models/actual-forecast head-actual-forecast #
GET /v1/projects/{projectId}/econ-models/actual-forecast get-actual-forecast #
POST /v1/projects/{projectId}/econ-models/actual-forecast post-actual-forecast #
PUT /v1/projects/{projectId}/econ-models/actual-forecast put-actual-forecast #
GET /v1/projects/{projectId}/econ-models/actual-forecast/{id} get-actual-forecast-by-id #
DELETE /v1/projects/{projectId}/econ-models/actual-forecast/{id} delete-actual-forecast-by-id #
HEAD /v1/projects/{projectId}/econ-models/general-options head-general-options #
GET /v1/projects/{projectId}/econ-models/general-options get-general-options #
POST /v1/projects/{projectId}/econ-models/general-options post-general-options #
PUT /v1/projects/{projectId}/econ-models/general-options put-general-options #
GET /v1/projects/{projectId}/econ-models/general-options/{id} get-general-options-by-id #
DELETE /v1/projects/{projectId}/econ-models/general-options/{id} delete-general-options-by-id #
HEAD /v1/projects/{projectId}/econ-models/reserves-categories head-reserves-categories #
GET /v1/projects/{projectId}/econ-models/reserves-categories get-reserves-categories #
POST /v1/projects/{projectId}/econ-models/reserves-categories post-reserves-categories #
PUT /v1/projects/{projectId}/econ-models/reserves-categories put-reserves-categories #
GET /v1/projects/{projectId}/econ-models/reserves-categories/{id} get-reserves-category-by-id #
DELETE /v1/projects/{projectId}/econ-models/reserves-categories/{id} delete-reserves-category-by-id #
HEAD /v1/projects/{projectId}/econ-models/escalations head-escalations #
GET /v1/projects/{projectId}/econ-models/escalations get-escalations #
POST /v1/projects/{projectId}/econ-models/escalations post-escalations #
PUT /v1/projects/{projectId}/econ-models/escalations put-escalations #
GET /v1/projects/{projectId}/econ-models/escalations/{id} get-escalation-by-id #
DELETE /v1/projects/{projectId}/econ-models/escalations/{id} delete-escalation-by-id #
HEAD /v1/projects/{projectId}/econ-models/differentials head-differentials #
GET /v1/projects/{projectId}/econ-models/differentials get-differentials #
POST /v1/projects/{projectId}/econ-models/differentials post-differentials #
PUT /v1/projects/{projectId}/econ-models/differentials put-differentials #
GET /v1/projects/{projectId}/econ-models/differentials/{id} get-differential-by-id #
DELETE /v1/projects/{projectId}/econ-models/differentials/{id} delete-differential-by-id #
HEAD /v1/projects/{projectId}/econ-models/pricing head-pricing #
GET /v1/projects/{projectId}/econ-models/pricing get-pricing #
POST /v1/projects/{projectId}/econ-models/pricing post-pricing #
PUT /v1/projects/{projectId}/econ-models/pricing put-pricing #
GET /v1/projects/{projectId}/econ-models/pricing/{id} get-pricing-by-id #
DELETE /v1/projects/{projectId}/econ-models/pricing/{id} delete-pricing-by-id #
HEAD /v1/projects/{projectId}/econ-models/ownership-reversions head-ownership-reversions #
GET /v1/projects/{projectId}/econ-models/ownership-reversions get-ownership-reversions #
POST /v1/projects/{projectId}/econ-models/ownership-reversions post-ownership-reversions #
PUT /v1/projects/{projectId}/econ-models/ownership-reversions put-ownership-reversions #
GET /v1/projects/{projectId}/econ-models/ownership-reversions/{id} get-ownership-reversion-by-id #
DELETE /v1/projects/{projectId}/econ-models/ownership-reversions/{id} delete-ownership-reversion-by-id #
HEAD /v1/projects/{projectId}/econ-models/production-taxes head-production-taxes #
GET /v1/projects/{projectId}/econ-models/production-taxes get-production-taxes #
POST /v1/projects/{projectId}/econ-models/production-taxes post-production-taxes #
PUT /v1/projects/{projectId}/econ-models/production-taxes put-production-taxes #
GET /v1/projects/{projectId}/econ-models/production-taxes/{id} get-production-taxes-by-id #
DELETE /v1/projects/{projectId}/econ-models/production-taxes/{id} delete-production-taxes-by-id #
HEAD /v1/projects/{projectId}/econ-models/riskings head-riskings #
GET /v1/projects/{projectId}/econ-models/riskings get-riskings #
POST /v1/projects/{projectId}/econ-models/riskings post-riskings #
PUT /v1/projects/{projectId}/econ-models/riskings put-riskings #
GET /v1/projects/{projectId}/econ-models/riskings/{id} get-risking-by-id #
DELETE /v1/projects/{projectId}/econ-models/riskings/{id} delete-riskings-by-id #
HEAD /v1/projects/{projectId}/econ-models/stream-properties head-stream-properties #
GET /v1/projects/{projectId}/econ-models/stream-properties get-stream-properties #
POST /v1/projects/{projectId}/econ-models/stream-properties post-stream-properties #
PUT /v1/projects/{projectId}/econ-models/stream-properties put-stream-properties #
GET /v1/projects/{projectId}/econ-models/stream-properties/{id} get-stream-properties-by-id #
DELETE /v1/projects/{projectId}/econ-models/stream-properties/{id} delete-stream-properties-by-id #
HEAD /v1/projects/{projectId}/econ-models/expenses head-expenses #
GET /v1/projects/{projectId}/econ-models/expenses get-expenses #
POST /v1/projects/{projectId}/econ-models/expenses post-expenses #
PUT /v1/projects/{projectId}/econ-models/expenses put-expenses #
GET /v1/projects/{projectId}/econ-models/expenses/{id} get-expenses-by-id #
DELETE /v1/projects/{projectId}/econ-models/expenses/{id} delete-expenses-by-id #
HEAD /v1/projects/{projectId}/econ-models/emissions head-emissions #
GET /v1/projects/{projectId}/econ-models/emissions get-emissions #
POST /v1/projects/{projectId}/econ-models/emissions post-emissions #
PUT /v1/projects/{projectId}/econ-models/emissions put-emissions #
GET /v1/projects/{projectId}/econ-models/emissions/{id} get-emission-by-id #
DELETE /v1/projects/{projectId}/econ-models/emissions/{id} delete-emission-by-id #
HEAD /v1/projects/{projectId}/econ-models/fluid-models head-fluid-models #
GET /v1/projects/{projectId}/econ-models/fluid-models get-fluid-models #
POST /v1/projects/{projectId}/econ-models/fluid-models post-fluid-models #
PUT /v1/projects/{projectId}/econ-models/fluid-models put-fluid-models #
GET /v1/projects/{projectId}/econ-models/fluid-models/{id} get-fluid-model-by-id #
DELETE /v1/projects/{projectId}/econ-models/fluid-models/{id} delete-fluid-model-by-id #
HEAD /v1/projects/{projectId}/econ-models/operations head-operations #
GET /v1/projects/{projectId}/econ-models/operations get-operations #
POST /v1/projects/{projectId}/econ-models/operations post-operations #
PUT /v1/projects/{projectId}/econ-models/operations put-operations #
GET /v1/projects/{projectId}/econ-models/operations/{id} get-operations-by-id #
DELETE /v1/projects/{projectId}/econ-models/operations/{id} delete-operations-by-id #
HEAD /v1/projects/{projectId}/econ-models/capex head-capex #
GET /v1/projects/{projectId}/econ-models/capex get-capex #
POST /v1/projects/{projectId}/econ-models/capex post-capex #
PUT /v1/projects/{projectId}/econ-models/capex put-capex #
GET /v1/projects/{projectId}/econ-models/capex/{id} get-capex-by-id #
DELETE /v1/projects/{projectId}/econ-models/capex/{id} delete-capex-by-id #
HEAD /v1/projects/{projectId}/econ-models/date-settings head-date-settings #
GET /v1/projects/{projectId}/econ-models/date-settings get-date-settings #
POST /v1/projects/{projectId}/econ-models/date-settings post-date-settings #
PUT /v1/projects/{projectId}/econ-models/date-settings put-date-settings #
GET /v1/projects/{projectId}/econ-models/date-settings/{id} get-date-settings-by-id #
DELETE /v1/projects/{projectId}/econ-models/date-settings/{id} delete-date-settings-by-id #
HEAD /v1/projects/{projectId}/econ-models/depreciation head-depreciation #
GET /v1/projects/{projectId}/econ-models/depreciation get-depreciation #
POST /v1/projects/{projectId}/econ-models/depreciation post-depreciation #
PUT /v1/projects/{projectId}/econ-models/depreciation put-depreciation #
GET /v1/projects/{projectId}/econ-models/depreciation/{id} get-depreciation-by-id #
DELETE /v1/projects/{projectId}/econ-models/depreciation/{id} delete-depreciation-by-id #
GET /v1/projects/{projectId}/custom-columns/{customColumn} get-project-custom-columns #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/combocurve-v1-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

combocurve-v1-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ComboCurve REST v1 custom-columns v1 projects 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 projects
  description: projects operations
paths:
  /v1/projects:
    head:
      operationId: head-projects
      summary: head-projects
      tags:
      - v1 projects
      description: Returns metadata about the existing project 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: 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-projects
      summary: get-projects
      tags:
      - v1 projects
      description: Returns a list of project 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: 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-projects
      summary: post-projects
      tags:
      - v1 projects
      description: Inserts a list of project documents.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
      responses:
        '201':
          description: Created
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '429':
          description: Too many requests - rate limit exceeded
  /v1/projects/{id}:
    delete:
      operationId: delete-project-by-id
      summary: delete-project-by-id
      tags:
      - v1 projects
      description: Delete the project 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
    get:
      operationId: get-project-by-id
      summary: get-project-by-id
      tags:
      - v1 projects
      description: Returns the project 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/projects/{projectId}/company-wells:
    delete:
      operationId: delete-project-company-wells
      summary: delete-project-company-wells
      tags:
      - v1 projects
      description: Remove the company wells documents that match the given filters from the projectId scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: chosenID
        in: query
        required: false
        schema:
          type: string
        description: filter by chosenID
      - name: dataSource
        in: query
        required: false
        schema:
          type: string
        description: filter by dataSource
      - name: id
        in: query
        required: false
        schema:
          type: string
        description: filter by id
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '429':
          description: Too many requests - rate limit exceeded
    head:
      operationId: head-project-company-wells
      summary: head-project-company-wells
      tags:
      - v1 projects
      description: Returns metadata about the existing company well documents in projectId scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - 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: api10
        in: query
        required: false
        schema:
          type: string
        description: filter by api10
      - name: api12
        in: query
        required: false
        schema:
          type: string
        description: filter by api12
      - name: county
        in: query
        required: false
        schema:
          type: string
        description: filter by county
      - name: state
        in: query
        required: false
        schema:
          type: string
        description: filter by state
      - name: wellName
        in: query
        required: false
        schema:
          type: string
        description: filter by wellName
      - name: chosenID
        in: query
        required: false
        schema:
          type: string
        description: filter by chosenID
      - name: inptID
        in: query
        required: false
        schema:
          type: string
        description: filter by inptID
      - name: api14
        in: query
        required: false
        schema:
          type: string
        description: filter by api14
      - 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: 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
      - name: dataSource
        in: query
        required: false
        schema:
          type: string
        description: filter by dataSource
      - name: currentOperator
        in: query
        required: false
        schema:
          type: string
        description: filter by dataSource
      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-project-company-wells
      summary: get-project-company-wells
      tags:
      - v1 projects
      description: Returns a list of company well documents in projectId scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - 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: api10
        in: query
        required: false
        schema:
          type: string
        description: filter by api10
      - name: api12
        in: query
        required: false
        schema:
          type: string
        description: filter by api12
      - name: county
        in: query
        required: false
        schema:
          type: string
        description: filter by county
      - name: state
        in: query
        required: false
        schema:
          type: string
        description: filter by state
      - name: wellName
        in: query
        required: false
        schema:
          type: string
        description: filter by wellName
      - name: chosenID
        in: query
        required: false
        schema:
          type: string
        description: filter by chosenID
      - name: inptID
        in: query
        required: false
        schema:
          type: string
        description: filter by inptID
      - name: api14
        in: query
        required: false
        schema:
          type: string
        description: filter by api14
      - 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: 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
      - name: dataSource
        in: query
        required: false
        schema:
          type: string
        description: filter by dataSource
      - name: currentOperator
        in: query
        required: false
        schema:
          type: string
        description: filter by dataSource
      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-project-company-wells
      summary: post-project-company-wells
      tags:
      - v1 projects
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  dataSource:
                    type: string
                  chosenID:
                    type: string
                  id:
                    type: string
                  projectCustomHeader:
                    type: string
                  projectCustomHeader1:
                    type: string
                  projectCustomHeader2:
                    type: string
                  projectCustomHeader3:
                    type: string
                  projectCustomHeader4:
                    type: string
                  projectCustomHeader5:
                    type: string
                  projectCustomHeader6:
                    type: string
                  projectCustomHeader7:
                    type: string
                  projectCustomHeader8:
                    type: string
                  projectCustomHeader9:
                    type: string
                  projectCustomHeader10:
                    type: string
                  projectCustomHeader11:
                    type: string
                  projectCustomHeader12:
                    type: string
                  projectCustomHeader13:
                    type: string
                  projectCustomHeader14:
                    type: string
                  projectCustomHeader15:
                    type: string
                  projectCustomHeader16:
                    type: string
                  projectCustomHeader17:
                    type: string
                  projectCustomHeader18:
                    type: string
                  projectCustomHeader19:
                    type: string
                  projectCustomHeader20:
                    type: string
                  projectCustomHeader21:
                    type: string
                  projectCustomHeader22:
                    type: string
                  projectCustomHeader23:
                    type: string
                  projectCustomHeader24:
                    type: string
                  projectCustomHeader25:
                    type: string
                  projectCustomHeader26:
                    type: string
                  projectCustomHeader27:
                    type: string
                  projectCustomHeader28:
                    type: string
                  projectCustomHeader29:
                    type: string
                  projectCustomHeader30:
                    type: string
                  projectCustomHeader31:
                    type: string
                  projectCustomHeader32:
                    type: string
                  projectCustomHeader33:
                    type: string
                  projectCustomHeader34:
                    type: string
                  projectCustomHeader35:
                    type: string
                  projectCustomHeader36:
                    type: string
                  projectCustomHeader37:
                    type: string
                  projectCustomHeader38:
                    type: string
                  projectCustomHeader39:
                    type: string
                  projectCustomHeader40:
                    type: string
                  projectCustomHeader41:
                    type: string
                  projectCustomHeader42:
                    type: string
                  projectCustomHeader43:
                    type: string
                  projectCustomHeader44:
                    type: string
                  projectCustomHeader45:
                    type: string
                  projectCustomHeader46:
                    type: string
                  projectCustomHeader47:
                    type: string
                  projectCustomHeader48:
                    type: string
                  projectCustomHeader49:
                    type: string
      responses:
        '201':
          description: Created
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '429':
          description: Too many requests - rate limit exceeded
    patch:
      operationId: patch-project-company-wells
      summary: patch-project-company-wells
      tags:
      - v1 projects
      description: Updates only the custom project headers for existing wells in the project
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  dataSource:
                    type: string
                  chosenID:
                    type: string
                  id:
                    type: string
                  projectCustomHeader:
                    type: string
                  projectCustomHeader1:
                    type: string
                  projectCustomHeader2:
                    type: string
                  projectCustomHeader3:
                    type: string
                  projectCustomHeader4:
                    type: string
                  projectCustomHeader5:
                    type: string
                  projectCustomHeader6:
                    type: string
                  projectCustomHeader7:
                    type: string
                  projectCustomHeader8:
                    type: string
                  projectCustomHeader9:
                    type: string
                  projectCustomHeader10:
                    type: string
                  projectCustomHeader11:
                    type: string
                  projectCustomHeader12:
                    type: string
                  projectCustomHeader13:
                    type: string
                  projectCustomHeader14:
                    type: string
                  projectCustomHeader15:
                    type: string
                  projectCustomHeader16:
                    type: string
                  projectCustomHeader17:
                    type: string
                  projectCustomHeader18:
                    type: string
                  projectCustomHeader19:
                    type: string
                  projectCustomHeader20:
                    type: string
                  projectCustomHeader21:
                    type: string
                  projectCustomHeader22:
                    type: string
                  projectCustomHeader23:
                    type: string
                  projectCustomHeader24:
                    type: string
                  projectCustomHeader25:
                    type: string
                  projectCustomHeader26:
                    type: string
                  projectCustomHeader27:
                    type: string
                  projectCustomHeader28:
                    type: string
                  projectCustomHeader29:
                    type: string
                  projectCustomHeader30:
                    type: string
                  projectCustomHeader31:
                    type: string
                  projectCustomHeader32:
                    type: string
                  projectCustomHeader33:
                    type: string
                  projectCustomHeader34:
                    type: string
                  projectCustomHeader35:
                    type: string
                  projectCustomHeader36:
                    type: string
                  projectCustomHeader37:
                    type: string
                  projectCustomHeader38:
                    type: string
                  projectCustomHeader39:
                    type: string
                  projectCustomHeader40:
                    type: string
                  projectCustomHeader41:
                    type: string
                  projectCustomHeader42:
                    type: string
                  projectCustomHeader43:
                    type: string
                  projectCustomHeader44:
                    type: string
                  projectCustomHeader45:
                    type: string
                  projectCustomHeader46:
                    type: string
                  projectCustomHeader47:
                    type: string
                  projectCustomHeader48:
                    type: string
                  projectCustomHeader49:
                    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/projects/{projectId}/company-wells/{id}:
    get:
      operationId: get-project-company-well-by-id
      summary: get-project-company-well-by-id
      tags:
      - v1 projects
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - 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/projects/{projectId}/daily-productions:
    delete:
      operationId: delete-project-daily-productions
      summary: delete-project-daily-productions
      tags:
      - v1 projects
      description: Delete the daily productions documents that match the given filters.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: well
        in: query
        required: false
        schema:
          type: string
        description: (Required) filter by well ID
      - name: startDate
        in: query
        required: false
        schema:
          type: string
        description: filter by startDate
      - name: endDate
        in: query
        required: false
        schema:
          type: string
        description: filter by endDate
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '429':
          description: Too many requests - rate limit exceeded
    head:
      operationId: head-projects-daily-productions
      summary: head-projects-daily-productions
      tags:
      - v1 projects
      description: Returns metadata about the existing daily production documents in the specified project's scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - 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: well
        in: query
        required: false
        schema:
          type: string
        description: filter by well
      - 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-projects-daily-productions
      summary: get-projects-daily-productions
      tags:
      - v1 projects
      description: Returns a list of daily production documents in the specified project's scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: skip
        in: query
        required: false
        schema:
          type: integer
        description: number of items to skip
      - 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: 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: well
        in: query
        required: false
        schema:
          type: string
        description: filter by well
      - 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-projects-daily-productions
      summary: post-projects-daily-productions
      tags:
      - v1 projects
      description: Upserts a list of daily production documents in projectId scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  date:
                    type: string
                    format: date
                  bottomHolePressure:
                    type: number
                  casingHeadPressure:
                    type: number
                  choke:
                    type: number
                  chosenID:
                    type: string
                  co2Injection:
                    type: number
                  customNumber0:
                    type: number
                  customNumber1:
                    type: number
                  customNumber2:
                    type: number
                  customNumber3:
                    type: number
                  customNumber4:
                    type: number
                  customNumber5:
                    type: number
                  customNumber6:
                    type: number
                  customNumber7:
                    type: number
                  customNumber8:
                    type: number
                  customNumber9:
                    type: number
                  customNumber10:
                    type: number
                  customNumber11:
                    type: number
                  customNumber12:
                    type: number
                  customNumber13:
                    type: number
                  customNumber14:
                    type: number
                  customNumber15:
                    type: number
                  customNumber16:
                    type: number
                  customNumber17:
                    type: number
                  customNumber18:
                    type: number
                  customNumber19:
                    type: number
                  dataSource:
                    type: string
                  flowlinePressure:
                    type: number
                  gas:
                    type: number
                  gasInjection:
                    type: number
                  gasLiftInjectionPressure:
                    type: number
                  hoursOn:
                    type: number
                  ngl:
                    type: number
                  oil:
                    type: number
                  operationalTag:
                    type: string
                  steamInjection:
                    type: number
                  tubingHeadPressure:
                    type: number
                  vesselSeparatorPressure:
                    type: number
                  water:
                    type: number
                  waterInjection:
                    type: number
                  well:
                    type: string
      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-projects-daily-productions
      summary: put-projects-daily-productions
      tags:
      - v1 projects
      description: Upserts a list of daily production documents in projectId scope.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required:

# --- truncated at 32 KB (1147 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/combocurve/refs/heads/main/openapi/combocurve-v1-projects-api-openapi.yml