ComboCurve Forecasts API

The Forecasts API from ComboCurve — 3 operation(s) for forecasts.

Operations 7

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 #

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:combocurve-forecasts-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

combocurve-forecasts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ComboCurve REST Forecasts API
  version: 1.0.0
servers:
- url: https://api.combocurve.com
security:
- api-key: []
  service-account-key: []
tags:
- name: Forecasts
paths:
  /v1/projects/{projectId}/forecasts:
    head:
      description: Returns metadata about the existing forecast documents scoped to projectId project.
      operationId: head-forecasts
      parameters:
      - in: path
        name: projectId
        required: true
        description: ''
        schema:
          type: string
      - $ref: '#/components/parameters/skipParam'
      - $ref: '#/components/parameters/takeParam'
      - name: createdAt
        in: query
        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
        x-allow-parameter-operator: true
        schema:
          type: string
          format: date
      - name: name
        in: query
        description: filter by name
        x-example: f1
        schema:
          type: string
      - name: runDate
        in: query
        description: filter by runDate
        x-allow-parameter-operator: true
        schema:
          type: string
          format: date
      - name: type
        in: query
        description: filter by type
        x-example: deterministic
        schema:
          type: string
      - name: updatedAt
        in: query
        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
        x-allow-parameter-operator: true
        schema:
          type: string
          format: date
      responses:
        '200':
          description: OK
          headers:
            Link:
              description: Indicates a typed relationship with another resource, where the relation type is defined by RFC 5988. We include the relationships next, prev, first and last, which can be used to move between pages of the list of results.
              schema:
                type: string
            X-Query-Count:
              description: The number of records in this resource. When filters are provided only matching records are counted.
              schema:
                type: integer
        '400':
          description: Bad Request. There is something wrong with the request data.
      tags:
      - Forecasts
      summary: Head forecasts
      x-summary-source: derived
    get:
      description: Returns a list of forecast documents scoped to projectId project.
      operationId: get-forecasts
      parameters:
      - in: path
        name: projectId
        required: true
        description: ''
        schema:
          type: string
      - $ref: '#/components/parameters/skipParam'
      - $ref: '#/components/parameters/takeParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/cursorParam'
      - name: createdAt
        in: query
        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
        x-allow-parameter-operator: true
        schema:
          type: string
          format: date
      - name: name
        in: query
        description: filter by name
        x-example: default1
        schema:
          type: string
      - name: runDate
        in: query
        description: filter by runDate, can be used for incremental pull
        schema:
          type: string
          format: date
      - name: type
        in: query
        description: filter by type
        x-example: probabilistic
        schema:
          type: string
      - name: tag
        in: query
        description: filter by tag
        x-example: tagName
        x-allow-multiple: true
        schema:
          type: string
      - name: updatedAt
        in: query
        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
        x-allow-parameter-operator: true
        schema:
          type: string
          format: date
      responses:
        '200':
          description: OK
          headers:
            Link:
              description: Indicates a typed relationship with another resource, where the relation type is defined by RFC 5988. We include the relationships next, prev, first and last, which can be used to move between pages of the list of results.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastList'
              example:
              - createdAt: '2020-01-21T16:58:08.986Z'
                id: 5e5981b9e23dae0012624d72
                name: Test forecast
                runDate: '2020-06-08T19:14:22.012Z'
                running: false
                type: probabilistic
                updatedAt: '2020-01-21T17:58:08.986Z'
        '400':
          description: Bad Request. There is something wrong with the request data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                name: ValidationError
                message: The field 'id' is required.
                details:
                  location: In body of request at position [0]
      tags:
      - Forecasts
      x-google-quota:
        metricCosts:
          read-request-rate: 1
      summary: Get forecasts
      x-summary-source: derived
    post:
      description: Inserts a list of forecasts documents in projectId scope.
      operationId: post-forecasts
      parameters:
      - in: path
        name: projectId
        required: true
        description: The project's id.
        schema:
          type: string
      responses:
        '207':
          description: Multi-Status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastsMultiStatusResponse'
              example:
                generalErrors:
                - name: ValidationError
                  message: The field 'name' is required.
                  location: In body of request at position [0]
                - name: ValidationError
                  message: The field 'unique' is required.
                  location: In body of request at position [2]
                results:
                - status: Success
                  code: 200
                  name: test
                - status: Success
                  code: 200
                  name: test1
                failedCount: 2
                successCount: 2
      tags:
      - Forecasts
      x-google-quota:
        metricCosts:
          write-request-rate: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForecastInputList'
        description: Forecasts to insert. See ForecastInputList.
      summary: Post forecasts
      x-summary-source: derived
  /v1/projects/{projectId}/forecasts/{id}:
    get:
      description: Returns the forecast document that matches the given id scoped to projectId project.
      operationId: get-forecast-by-id
      parameters:
      - in: path
        name: projectId
        required: true
        description: ''
        schema:
          type: string
      - in: path
        name: id
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forecast'
              example:
                createdAt: '2020-01-21T16:58:08.986Z'
                id: 5e5981b9e23dae0012624d72
                name: Test forecast
                runDate: '2020-06-08T19:14:22.012Z'
                running: false
                type: probabilistic
                updatedAt: '2020-01-21T17:58:08.986Z'
        '400':
          description: Bad Request. There is something wrong with the request data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                name: ValidationError
                message: The field 'id' is required.
                details:
                  location: In body of request at position [0]
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                name: ValidationError
                message: The field 'id' is required.
                details:
                  location: In body of request at position [0]
      tags:
      - Forecasts
      summary: Get forecast by id
      x-summary-source: derived
    delete:
      description: Delete the Forecast that matches the given id scoped to projectId project.
      operationId: delete-forecast-by-id
      parameters:
      - in: path
        name: projectId
        required: true
        description: ''
        schema:
          type: string
      - in: path
        name: id
        required: true
        description: ''
        schema:
          type: string
      - name: deleteTypeCurves
        in: query
        description: deletes all type-curves associated with the forecastId
        schema:
          type: boolean
      responses:
        '204':
          description: OK
          headers:
            X-Delete-Count:
              description: The number of records that match the given filters and were deleted.
              schema:
                type: integer
        '400':
          description: Bad Request. There is something wrong with the request data.
      tags:
      - Forecasts
      x-google-quota:
        metricCosts:
          read-request-rate: 1
      summary: Delete forecast by id
      x-summary-source: derived
    patch:
      description: Updates Forecast.
      operationId: patch-forecast
      parameters:
      - in: path
        name: projectId
        required: true
        description: The project's id.
        schema:
          type: string
      - in: path
        name: id
        required: true
        description: The forecast's id.
        schema:
          type: string
      responses:
        '200':
          description: Patch Status
          content:
            application/json:
              schema:
                $ref: '#definitions/ForecastsStatus'
              example:
                status: Success
                code: 200
                name: test
        '400':
          description: Bad Request. There is something wrong with the request data.
          content:
            application/json:
              schema:
                $ref: '#definitions/ForecastsStatus'
              example:
                status: Success
                code: 200
                name: test
      tags:
      - Forecasts
      x-google-quota:
        metricCosts:
          write-request-rate: 1
      x-is-patch: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForecastPatchInput'
        description: Forecast information to replace. See ForecastPatchInput.
      summary: Patch forecast
      x-summary-source: derived
  /v1/projects/{projectId}/forecasts/{id}/wells:
    post:
      description: Inserts a list of well into a forecast.
      operationId: post-wells-to-forecast
      parameters:
      - in: path
        name: projectId
        required: true
        description: ''
        schema:
          type: string
      - in: path
        name: id
        required: true
        description: ''
        schema:
          type: string
      responses:
        '207':
          description: Multi-Status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WellMultiStatusResponse'
              example:
                generalErrors:
                - name: ValidationError
                  message: The field 'id' is required.
                  location: In body of request at position [0]
                - name: ValidationError
                  message: The field 'dataSource' is required.
                  location: In body of request at position [2]
                results:
                - status: Success
                  code: 200
                  id: 62b1c13e2750169012ee4515
                  chosenID: abc1234567890
                  dataSource: di
                  createdAt: '2023-01-01T00:00:00.000Z'
                  updatedAt: '2023-01-01T00:00:00.000Z'
                - status: Success
                  code: 200
                  id: 62b1c13e4857169000ee4613
                  chosenID: 1234567891
                  dataSource: internal
                  createdAt: '2023-01-01T00:00:00.000Z'
                  updatedAt: '2023-01-01T00:00:00.000Z'
                failedCount: 2
                successCount: 2
        '400':
          description: Bad Request. There is something wrong with the request data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                name: ValidationError
                message: The field 'id' is required.
                details:
                  location: In body of request at position [0]
      tags:
      - Forecasts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WellIdInput'
        description: WellIds documents to insert. See WellInputList.
        required: true
      summary: Post wells to forecast
      x-summary-source: derived
components:
  schemas:
    Error:
      type: object
      properties:
        name:
          type: string
          description: The kind of error.
        message:
          type: string
          description: A human-readable description of the problem.
        details:
          type: object
          properties:
            location:
              type: string
              description: The location in the request data that contains the invalid value.
      example:
        name: ValidationError
        message: The field 'id' is required.
        details:
          location: In body of request at position [0]
    ErrorEntry:
      required:
      - name
      - message
      type: object
      properties:
        name:
          type: string
        message:
          type: string
        location:
          type: string
      example:
        name: ValidationError
        message: The field 'id' is required.
        location: In body of request at position [0]
    TagList:
      type: array
      items:
        $ref: '#/components/schemas/Tag'
      maxItems: 200
      example:
      - createdAt: '2021-07-27T17:52:28.791Z'
        name: Test tag
        description: Test tag description
        updatedAt: '2021-07-27T17:52:28.791Z'
      - createdAt: '2021-07-27T17:52:28.791Z'
        name: Test tag 2
        description: Test tag 2 description
        updatedAt: '2021-07-27T17:52:28.791Z'
    Tag:
      type: object
      properties:
        createdAt:
          type: string
          format: date
          description: Tag Creation Date
        description:
          type: string
          maxLength: 16384
          description: Description
        name:
          type: string
          maxLength: 16384
          description: Name
        updatedAt:
          type: string
          format: date
          description: Updated At
      example:
        createdAt: '2021-07-27T17:52:28.791Z'
        name: Test tag
        description: Test tag description
        updatedAt: '2021-07-27T17:52:28.791Z'
    WellIdInput:
      type: object
      required:
      - wellIds
      properties:
        wellIds:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1000
          description: an array of well IDs
      example:
      - wellIds:
        - 632240de72c6010512780753
        - 632240b972c6019e7178074e
    ForecastList:
      type: array
      items:
        $ref: '#/components/schemas/Forecast'
      maxItems: 200
      example:
      - createdAt: '2020-01-21T16:58:08.986Z'
        id: 5e5981b9e23dae0012624d72
        name: Test forecast
        runDate: '2020-06-08T19:14:22.012Z'
        running: false
        type: probabilistic
        updatedAt: '2020-01-21T17:58:08.986Z'
    ForecastsStatus:
      type: object
      required:
      - status
      - code
      properties:
        status:
          type: string
        code:
          type: integer
        forecastId:
          type: string
        name:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntry'
      example:
        status: Success
        code: 200
        name: test
    ForecastPatchInput:
      type: object
      x-is-patch: true
      required:
      - name
      properties:
        name:
          type: string
          maxLength: 16384
          description: Name
      example:
        name: Test forecast
        type: probabilistic
    WellStatus:
      type: object
      required:
      - status
      - code
      properties:
        status:
          type: string
        code:
          type: integer
        id:
          type: string
        chosenID:
          type: string
        dataSource:
          type: string
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntry'
      example:
        status: Success
        code: 200
        id: 62b1c13e2750169012ee4515
        chosenID: abc1234567890
        dataSource: di
        createdAt: '2023-01-01T00:00:00.000Z'
        updatedAt: '2023-01-01T00:00:00.000Z'
    WellMultiStatusResponse:
      type: object
      properties:
        generalErrors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntry'
        results:
          type: array
          items:
            $ref: '#/components/schemas/WellStatus'
        failedCount:
          type: integer
        successCount:
          type: integer
      example:
        generalErrors:
        - name: ValidationError
          message: The field 'id' is required.
          location: In body of request at position [0]
        - name: ValidationError
          message: The field 'dataSource' is required.
          location: In body of request at position [2]
        results:
        - status: Success
          code: 200
          id: 62b1c13e2750169012ee4515
          chosenID: abc1234567890
          dataSource: di
          createdAt: '2023-01-01T00:00:00.000Z'
          updatedAt: '2023-01-01T00:00:00.000Z'
        - status: Success
          code: 200
          id: 62b1c13e4857169000ee4613
          chosenID: 1234567891
          dataSource: internal
          createdAt: '2023-01-01T00:00:00.000Z'
          updatedAt: '2023-01-01T00:00:00.000Z'
        failedCount: 2
        successCount: 2
    ForecastsMultiStatusResponse:
      type: object
      properties:
        generalErrors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntry'
        results:
          type: array
          items:
            $ref: '#/components/schemas/ForecastsStatus'
        failedCount:
          type: integer
        successCount:
          type: integer
      example:
        generalErrors:
        - name: ValidationError
          message: The field 'name' is required.
          location: In body of request at position [0]
        - name: ValidationError
          message: The field 'unique' is required.
          location: In body of request at position [2]
        results:
        - status: Success
          code: 200
          name: test
        - status: Success
          code: 200
          name: test1
        failedCount: 2
        successCount: 2
    Forecast:
      type: object
      properties:
        createdAt:
          type: string
          format: date
          description: Forecast Creation Date
        id:
          type: string
          description: ID
        name:
          type: string
          maxLength: 16384
          description: Name
        runDate:
          type: string
          format: date
          description: Run Date
        running:
          type: boolean
          description: Running
        tags:
          $ref: '#/components/schemas/TagList'
        type:
          type: string
          description: Type
        updatedAt:
          type: string
          format: date
          description: Updated At
      example:
        createdAt: '2020-01-21T16:58:08.986Z'
        id: 5e5981b9e23dae0012624d72
        name: Test forecast
        runDate: '2020-06-08T19:14:22.012Z'
        running: false
        type: probabilistic
        updatedAt: '2020-01-21T17:58:08.986Z'
    ForecastInputList:
      type: array
      items:
        $ref: '#/components/schemas/ForecastInput'
      maxItems: 200
      example:
      - name: Test forecast
        type: probabilistic
    ForecastInput:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          maxLength: 16384
          description: Name
        type:
          type: string
          description: Type
      example:
        name: Test forecast
        type: probabilistic
  parameters:
    takeParam:
      name: take
      in: query
      description: max records to return
      schema:
        type: integer
        format: int32
        default: 25
        maximum: 200
        minimum: 1
    cursorParam:
      name: cursor
      in: query
      description: used in pagination to get the next page
      schema:
        type: string
    skipParam:
      name: skip
      in: query
      description: number of items to skip
      schema:
        type: integer
        format: int32
        default: 0
    sortParam:
      name: sort
      in: query
      description: field to sort by, including + or - at the beginning for ascending or descending order, respectively
      schema:
        type: string
  securitySchemes:
    api-key:
      type: apiKey
      name: x-api-key
      in: header
x-google-management:
  metrics:
  - name: read-request-rate
    displayName: Read Request Rate
    valueType: INT64
    metricKind: DELTA
  - name: write-request-rate
    displayName: Write Request Rate
    valueType: INT64
    metricKind: DELTA
  quota:
    limits:
    - name: read-request-rate-limit
      metric: read-request-rate
      unit: 1/min/{project}
      values:
        STANDARD: 800
    - name: write-request-rate-limit
      metric: write-request-rate
      unit: 1/min/{project}
      values:
        STANDARD: 200
x-provenance:
  method: harvested
  publisher: ComboCurve
  source: https://storage.googleapis.com/beta-combocurve-api-docs/openapi-spec.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)