Corva Platform API

The Corva Platform API serves platform entities and their relationships — wells, rigs, drillout units, programs, pads and frac fleets, together with users, dashboards, alerts, apps, tasks, files and API keys. It is where an integration resolves the asset_id that every Data API query filters on: read attributes.asset_id from GET /v2/wells, or the top-level id from GET /v2/assets. It publishes a Swagger 2.0 contract (version v2.222.1) with 513 paths, 771 operations and 574 definitions, rendered by Swagger UI.

Operations 771

Showing the first 250 of 771. The full set is in the contract, and via get_provider_operations.

GET v2/ability_check/check_feature Check feature status for user
GET v2/ability_check/check_permission Check permission status for user
GET /v2/activities List activities
POST /v2/activities Create an activity
GET /v2/activities/{id} Show activity
PATCH /v2/activities/{id} Update an activity
DELETE /v2/activities/{id} Delete an activity
GET /v2/alerts/{alert_id}/activities List Alert Activities
GET /v1/alerts/{alert_id}/comments/ List comments for alert
POST /v1/alerts/{alert_id}/comments/ Create a comment for alert
GET /v1/alerts/{alert_id}/comments/{id} Show comment for alert
PATCH /v1/alerts/{alert_id}/comments/{id} Update an alert comment
DELETE /v1/alerts/{alert_id}/comments/{id} Delete an alert comment
GET /v1/alerts/{alert_id}/comments/{comment_id}/likes List likes for alert's comment
POST /v1/alerts/{alert_id}/comments/{comment_id}/likes/toggle Toggle a like for alert's comment
GET /v2/alerts/{alert_id}/comments List Alert Comments
POST /v2/alerts/{alert_id}/comments Create Alert Comment
GET /v1/alerts/{alert_id}/likes List likes for alert
POST /v1/alerts/{alert_id}/likes/toggle Toggle a like for alert
GET /v1/alerts/definitions List Alert Definitions
GET /v1/alerts/definitions/context Gather Alert Definition Context
POST /v1/alerts/definitions/trigger Trigger Alert
POST /v1/alerts/definitions/close Close Open Alerts
POST /v1/alerts/definitions/{alert_definition_id}/check Check Alert Definition in point of time
GET /v1/alerts/definitions/templates/{template_type} List Alert Definition Templates
POST /v1/alerts/definitions/{id}/save_as_template Save Alert Definition as Library Template
POST /v1/alerts/definitions/{alert_definition_id}/enable Enable Alert Definition Template
POST /v1/alerts/definitions/{alert_definition_id}/disable Disable Alert Definition Template
GET /v2/alerts/definitions List Alert Definitions
POST /v2/alerts/definitions Create Alert Definition
GET /v2/alerts/definitions/templates/{template_type} List Alert Definition Templates
GET /v2/alerts/definitions/{id} Get Alert Definition
PATCH /v2/alerts/definitions/{id} Update Alert Definition
DELETE /v2/alerts/definitions/{id} Delete Alert Definition
POST /v2/alerts/definitions/{id}/copy Copy Alert Definition
POST /v2/alerts/definitions/{id}/apply Apply Library Template To Alert Group
POST /v2/alerts/definitions/{id}/refresh Refresh Alert Definition From Library
GET /v2/alerts/definitions/{id}/refresh_preview Preview A Library Refresh
POST /v2/alerts/definitions/{id}/subscribe Subscribe to Alert Definition
POST /v2/alerts/definitions/{id}/unsubscribe Unsubscribe from Alert Definition
GET /v2/alert_groups/{alert_group_id}/alert_definitions List an Alert Group's Definitions
POST /v2/alert_groups/{alert_group_id}/alert_definitions Assign an Alert Definition to a Group
DELETE /v2/alert_groups/{alert_group_id}/alert_definitions/{id} Unassign an Alert Definition from a Group
POST /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_create Bulk Assign Alert Definitions to a Group
DELETE /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_destroy Bulk Unassign Alert Definitions from a Group
PUT /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_replace Replace an Alert Group's Definitions
GET /v2/alert_groups List Alert Groups
POST /v2/alert_groups Create Alert Group
GET /v2/alert_groups/{id} Get Alert Group
PATCH /v2/alert_groups/{id} Update Alert Group
DELETE /v2/alert_groups/{id} Delete Alert Group
POST /v2/alert_groups/{id}/merge Merge Alert Group
GET /v2/alert_groups/{alert_group_id}/alert_group_users List Group Members
POST /v2/alert_groups/{alert_group_id}/alert_group_users Add Member to Group
DELETE /v2/alert_groups/{alert_group_id}/alert_group_users/{id} Remove Member from Group
GET /v2/alert_groups/{alert_group_id}/alert_group_scopes List Group Scopes
POST /v2/alert_groups/{alert_group_id}/alert_group_scopes Add Scope Target to Group
DELETE /v2/alert_groups/{alert_group_id}/alert_group_scopes/{id} Remove Scope Target from Group
GET /v2/alert_groups/{alert_group_id}/alert_group_configurations List Group Configurations
POST /v2/alert_groups/{alert_group_id}/alert_group_configurations Create Group Configuration
PATCH /v2/alert_groups/{alert_group_id}/alert_group_configurations/{id} Update Group Configuration
DELETE /v2/alert_groups/{alert_group_id}/alert_group_configurations/{id} Delete Group Configuration
POST /v2/alert_groups/{alert_group_id}/alert_group_users/bulk_create Bulk Add Members to Group
DELETE /v2/alert_groups/{alert_group_id}/alert_group_users/bulk_destroy Bulk Remove Members from Group
POST /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_create Bulk Add Scope Targets to Group
DELETE /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_destroy Bulk Remove Scope Targets from Group
PUT /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_replace Replace Group Scope Targets
POST /v2/alert_groups/{alert_group_id}/alert_group_configurations/bulk_create Bulk Create Group Configurations
DELETE /v2/alert_groups/{alert_group_id}/alert_group_configurations/bulk_destroy Bulk Delete Group Configurations
GET /v2/alerts/metrics Alert Occurrence Metrics
GET /v2/alerts/notifications/types List Alert Notification Types
GET /v2/alert_abilities List Assignable Alert Abilities
GET /v2/companies/{company_id}/alert_roles List Alert Roles
POST /v2/companies/{company_id}/alert_roles Create Alert Role
GET /v2/companies/{company_id}/alert_roles/{id} Get Alert Role
PATCH /v2/companies/{company_id}/alert_roles/{id} Update Alert Role
DELETE /v2/companies/{company_id}/alert_roles/{id} Delete Alert Role
PUT /v2/companies/{company_id}/alert_roles/{id}/abilities Replace Alert Role Abilities
POST /v2/companies/{company_id}/alert_rbac/enable Enable Alert RBAC
POST /v2/companies/{company_id}/alert_rbac/disable Disable Alert RBAC
GET /v2/alerts/{alert_id}/occurrences List Alert Occurrences
POST /v2/alerts/{alert_id}/occurrences/{id}/classify Classify an Alert Occurrence
GET /v2/alerts/occurrences/series Alert Occurrence Time-Series
GET /v1/alerts List Alerts
GET /v1/alerts/{id} Get Alert
POST /v1/alerts/{alert_id}/acknowledge Add acknowledgement to alert
POST /v1/alerts/acknowledge Bulk acknowledge multiple alerts
POST /v1/alerts/{alert_id}/classify Add alert_classification to alert
POST /v1/alerts/{alert_id}/transition Transition alert status
POST /v1/alerts/{alert_id}/escalate Escalate alert to specific users
POST /v1/alerts/{alert_id}/deescalate Close active escalation on alert
GET /v1/alerts/totals Alerts Counts
GET /v1/alerts/details Alerts Details for given period of time
GET /v2/alerts List Alerts (V2)
POST /v2/alerts/{id}/acknowledge Acknowledge Alert (V2)
GET /v2/alerts/{id} Get Alert (V2)
DELETE /v2/alerts/{id} Delete Alert (V2)
POST /v2/alerts/{id}/classify Classify Alert (V2)
POST /v2/alerts/{alert_id}/deescalate Close active escalation on alert (V2)
POST /v2/alerts/{id}/transition Transition Alert status (V2)
POST /v2/alerts/{id}/check Check Alert notification rules (V2)
POST /v2/alerts/{id}/escalate Escalate Alert (V2)
GET /v2/alerts/totals Alert Totals (V2)
GET /v2/alerts/details List Alert Details (V2)
GET /v2/alert_tags List Alert Tags
POST /v2/alert_tags Create Alert Tag
PATCH /v2/alert_tags/{id} Update Alert Tag
DELETE /v2/alert_tags/{id} Delete Alert Tag
GET /v1/alert_workflows List Alert Workflows
GET /v1/alert_workflows/{id} Get Alert Workflow
GET /v2/alert_workflows List Alert Workflows
GET /v2/alert_workflows/{id} Get Alert Workflow
GET /v2/authentication_platforms List authentication platforms
GET /v2/authentication_platforms/{id} Show authentication platform
GET /v2/app_reviews List accesible App Reviews
POST /v2/app_reviews/{id}/approve Approve App Review
POST /v2/app_reviews/{id}/decline Approve App Review
GET /v2/favorites List favorites
GET /v2/assets List assets
GET /v2/assets/{id} Get asset by ID
GET /v2/assets/{id}/settings Get asset settings
GET /v2/assets/{id}/type_wells List type well assets
POST /v2/assets/{id}/type_well Create a new type_well
DELETE /v2/assets/{id}/type_wells/{type_well_id} Delete type_well
GET /v2/assets/{id}/reruns Return reruns for the asset
GET /v2/assets/{id}/ancestor_ids Return the ancestor_ids for the asset
POST /v2/assets/resolve Resolve old-style assets to new-style assets
GET /v2/assets/autocomplete Return autocompletion tokens
GET /v2/programs List programs
POST /v2/programs Create a program
GET /v2/programs/{id} Get a single program
PATCH /v2/programs/{id} Update a program
DELETE /v2/programs/{id} Delete a program
GET /v2/programs/clusters Get programs clustered based on their location
GET /v2/pads List pads #
POST /v2/pads Create a pad
GET /v2/pads/{id} Get a single pad
PATCH /v2/pads/{id} Update a pad
DELETE /v2/pads/{id} Delete a pad
POST /v2/pads/{id}/frac_fleets Add a frac fleet to a pad
DELETE /v2/pads/{pad_id}/frac_fleets/{id} Delete a frac fleet from a pad
GET /v2/pads/{pad_id}/app_wells Retrieve wells and app stream details for a pad filtered by app.source_type
GET /v2/pads/{id}/wells Retrieve well and app stream details for a pad
POST /v2/pads/{id}/wells Add a well to a pad
DELETE /v2/pads/{pad_id}/wells/{id} Delete a well from a pad
POST /v2/pads/{id}/active_wells Add an active well to a pad
DELETE /v2/pads/{pad_id}/active_wells/{id} Delete an active well from a pad
GET /v2/pads/clusters Get pads clustered based on their location
GET /v2/rigs List rigs
POST /v2/rigs Create a rig
GET /v2/rigs/{id} Get a single rig
PATCH /v2/rigs/{id} Update a rig
DELETE /v2/rigs/{id} Delete a rig
GET /v2/rigs/clusters Get rigs clustered based on their location
GET /v2/rigs/{rig_id}/active_well/well_cache Get well_cache record for the active well on the rig
GET /v2/drillout_units List drillout units
POST /v2/drillout_units Create a drillout unit
GET /v2/drillout_units/{id} Get a single drillout unit
PATCH /v2/drillout_units/{id} Update a drillout unit
DELETE /v2/drillout_units/{id} Delete a drillout unit
GET /v2/drillout_units/clusters Get drillout units clustered based on their location
GET /v2/wells List wells
POST /v2/wells Create a well
GET /v2/wells/{id} Get a single well
PATCH /v2/wells/{id} Update a well
DELETE /v2/wells/{id} Delete a well
GET /v2/wells/clusters Get wells clustered based on their location
GET /v2/frac_fleets List frac fleets #
POST /v2/frac_fleets Create a frac fleet
GET /v2/frac_fleets/{id} Get a single frac fleet
PATCH /v2/frac_fleets/{id} Update a frac fleet
DELETE /v2/frac_fleets/{id} Delete a frac fleet
POST /v2/frac_fleets/{id}/pads Add one or more pads to a frac fleet, or set the current pad
DELETE /v2/frac_fleets/{frac_fleet_id}/pads/{id} Delete a pad from a frac fleet
GET /v2/frac_fleets/{frac_fleet_id}/active_wells/well_cache Get well_cache records for the active wells on the frac fleet
GET /v2/frac_fleets/clusters Get frac fleets clustered based on their location
GET /v2/wirelines List wirelines
POST /v2/wirelines Create a wireline
GET /v2/wirelines/{id} Get a single wireline
PATCH /v2/wirelines/{id} Update a wireline
DELETE /v2/wirelines/{id} Delete a wireline
GET /v2/companies/{company_id}/authentication_schemas List authentication schemas usable by the company
GET /v2/companies/{company_id}/authentication_schemas/{id} Show an authentication schema
DELETE /v2/companies/{company_id}/authentication_schemas/{id} Delete an authentication schema
GET /v2/companies/{company_id}/company_domains List company domains
POST /v2/companies/{company_id}/company_domains Create a company domain
GET /v2/companies/{company_id}/company_domains/{id} Show a company domain
PATCH /v2/companies/{company_id}/company_domains/{id} Update a company domain
DELETE /v2/companies/{company_id}/company_domains/{id} Delete a company domain
GET /v2/dashboard_app_annotations/{app_annotation_id}/comments/ List comments for app annotation
POST /v2/dashboard_app_annotations/{app_annotation_id}/comments/ Create a comment for app annotation
GET /v2/dashboard_app_annotations/{app_annotation_id}/comments/{id} Show comment for app annotation
PATCH /v2/dashboard_app_annotations/{app_annotation_id}/comments/{id} Update an app annotation comment
DELETE /v2/dashboard_app_annotations/{app_annotation_id}/comments/{id} Delete an app annotation comment
GET /v2/dashboard_app_annotations/{app_annotation_id}/comments/{comment_id}/likes List likes for app annotation's comment
POST /v2/dashboard_app_annotations/{app_annotation_id}/comments/{comment_id}/likes/toggle Toggle a like for app annotation's comment
GET /v2/dashboard_app_annotations/{app_annotation_id}/likes List likes for app annotation
POST /v2/dashboard_app_annotations/{app_annotation_id}/likes/toggle Toggle a like for app annotation
GET /v2/dashboard_app_annotations List annotations for app-asset combination
POST /v2/dashboard_app_annotations Create an app annotation
GET /v2/dashboard_app_annotations/{id} Show app annotation
PATCH /v2/dashboard_app_annotations/{id} Update an app annotation
DELETE /v2/dashboard_app_annotations/{id} Delete an app annotation
GET /v2/dashboard_app_annotations/{id}/close Closes app annotation for curent user, returns new last annotation for user and app-asset combination
GET /v2/dashboard_app_annotations/last_annotations Returns last app annotations for current user and dashboard or dashboard-asset combination
POST /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps Create a dashboard app with app name and category
POST /v1/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/bulk_create Bulk create dashboard_apps for different asset_ids
PUT /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/batch_update Update all dashboard apps in a dashboard
GET /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/{id} Show dashboard app
PATCH /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/{id} Update a dashboard app
DELETE /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/{id} Delete a dashboard app
GET /v2/users/{user_id}/dashboard_folders List dashboard folders
POST /v2/users/{user_id}/dashboard_folders Create a dashboard folder
PATCH /v2/users/{user_id}/dashboard_folders/{id} Update a dashboard folder
DELETE /v2/users/{user_id}/dashboard_folders/{id} Delete a dashboard folder
GET /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares List dashboard shares in a dashboard folder for a user
POST /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares Add a dashboard share to a dashboard folder
PATCH /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares/{id} Update a dashboard share in a dashboard folder
DELETE /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares/{id} Remove a dashboard share from a dashboard folder
GET /v2/dashboard_folder_shares List dashboard folder shares
POST /v2/dashboard_folder_shares Create a dashboard folder share
PATCH /v2/dashboard_folder_shares/{id} Update a dashboard folder share
DELETE /v2/dashboard_folder_shares/{id} Delete a dashboard folder share
POST /v2/dashboard_folder_shares/{id}/use Use dashboard folder share for user
GET /v1/users/{user_id}/dashboards List dashboards for user
GET /v1/users/{user_id}/dashboards/{id} Get dashboard by ID
GET /v2/users/{user_id}/dashboards List dashboards
POST /v2/users/{user_id}/dashboards Create a dashboard
GET /v2/users/{user_id}/dashboards/{id} Show dashboard
PATCH /v2/users/{user_id}/dashboards/{id} Update a dashboard
DELETE /v2/users/{user_id}/dashboards/{id} Delete a dashboard
POST /v2/users/{user_id}/dashboards/{id}/clone Clone a dashboard
GET /v2/dashboards/templates Get template dashboards
POST /v2/users/{user_id}/dashboards/{id}/use_template Set dashboard apps and layout from a template dashboard
GET /v2/dashboards List all dashboards
GET /v2/dashboards/{id}/available_timezones List timezones for dashboard
GET /v2/well_plan_checklists List well plan checklists
GET /v2/well_plan_checklists/{id} Show well plan checklist
GET /v2/well_plans List well plans
POST /v2/well_plans Create a well plan
POST /v2/well_plans/copy Copy data from one well plan into another
GET /v2/well_plans/{id} Show well plan
PATCH /v2/well_plans/{id} Update well plan
DELETE /v2/well_plans/{id} Delete well plan
GET /v2/well_planning_dashboards List well planning dashboards
POST /v2/well_planning_dashboards Create a custom planning dashboard for a well
GET /v2/well_planning_dashboards/{id_or_slug} Show well planning dashboard
PATCH /v2/well_planning_dashboards/{id_or_slug} Update a well planning dashboard
DELETE /v2/well_planning_dashboards/{id_or_slug} Delete a well planning dashboard
POST /v2/well_planning_dashboards/{well_planning_dashboard_id_or_slug}/dashboard_apps Create a dashboard app on a well planning dashboard

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/corva-platform-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

corva-ai-platform-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: v2.222.1
  title: Corva API
  description: 'The Corva API is a powerful interface providing great flexibility and extensibility with Corva. Whether your
    needs are simple UI visualizations, data entry, replication/sync tasks, real-time stream processing, or complex machine
    learning CPU-intensive apps, the Corva API is the way to make it happen. Our concepts are split into three distinct silos:
    data apps, visualization apps, and a REST API'
  termsOfService: https://www.corva.ai/terms-and-conditions/
  contact:
    name: Corva API Team
    email: support@corva.ai
securityDefinitions:
  api_key:
    type: apiKey
    name: authorization
    in: header
security:
- api_key: []
tags:
- name: Users
  description: User, API key, and session management
- name: Assets
  description: 'Manage company assets: Programs, Pads, Rigs, Wells, Frac Fleets, and Wirelines'
- name: Data
  description: Manage company data for all data collections
- name: Dashboards
  description: Manage your dashboards, which contain one or more visualization apps
- name: DashboardAppAnnotations
  description: Manage annotations to applications on user dashboards
- name: Feed
  description: Manage Feed
- name: Alerts
  description: Manage Alerts
- name: AlertWorkflows
  description: Alert status workflow definitions (global and company-specific)
- name: AlertGroups
  description: Alert group management - team-scoped alert configurations
- name: AlertDefinitions
  description: Alert definition management (V2)
- name: Notifications
  description: Manage Notifications
- name: Tasks
  description: Trigger and check status for background tasks
- name: TaskSchedules
  description: Create and manage cron-based task schedules
- name: Files
  description: Manage file uploads and downloads
- name: Security
  description: Manage security policies, permissions, and groups
- name: AuthenticationPlatforms
  description: Read authentication platforms (broker tenants) used for SSO. Read-only; managed in ActiveAdmin.
- name: Picklists
  description: Manage picklists, which are lists of options (usually key/value pairs)
- name: WellView
  description: WellView 3rd-Party integration
- name: MessageProducer
  description: Message Producer for apps
- name: Apps
  description: Manage Apps
- name: AppReviews
  description: Manage AppsReviews
- name: AppDatasets
  description: Manage App Datasets
- name: AbilityCheck
  description: Check abilities for user
- name: Well Plans
  description: Manage well plans
- name: Well Plan Tabs
  description: Manage well plan tabs
- name: Well Plan Checklists
  description: Manage well plan checklists
- name: Tool Ordering
  description: Customer tool order create/edit/submit and the specification definition registry
consumes:
- application/json
produces:
- application/json
paths:
  v2/ability_check/check_feature:
    get:
      summary: Check feature status for user
      tags:
      - AbilityCheck
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/FeatureStatus'
      parameters:
      - in: query
        name: feature_name
        description: Name of Feature
        required: true
        type: string
  v2/ability_check/check_permission:
    get:
      summary: Check permission status for user
      tags:
      - AbilityCheck
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/PermissionStatus'
      parameters:
      - in: query
        name: ability
        description: Ability to check
        required: true
        type: string
      - in: query
        name: resource_class
        description: Class of resource
        required: true
        type: string
      - in: query
        name: resource_id
        description: Id of resource if checking permission for particular entity
        required: false
        type: integer
      - in: query
        name: name
        description: Dataset name
        required: false
        type: integer
      - in: query
        name: provider
        description: Dataset provider
        required: false
        type: integer
  /v2/activities:
    get:
      summary: List activities
      tags:
      - Feed
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: List activities
          schema:
            type: array
            items:
              $ref: '#/definitions/ActivitiesList'
      parameters:
      - in: query
        name: segment
        description: Segments could be nil, a comma-delimited list of strings, or an array
        items:
          type: string
      - in: query
        name: type
        description: List of asset types
        items:
          type: string
      - in: query
        name: rigs
        description: Ids of rigs to search for
        items:
          type: integer
      - in: query
        name: assets
        description: Ids of assets to search for
        items:
          type: integer
      - in: query
        name: users
        description: Ids of users to search for
        items:
          type: integer
      - in: query
        name: apps
        description: Ids of apps to search for
        items:
          type: integer
      - in: query
        name: is_recommendation
        description: Search geosteering_comments based on isRecommendation field
        type: boolean
      - in: query
        name: start
        description: Search by start time as a Unix timestamp
        type: integer
        format: timestamp
      - in: query
        name: end
        description: Search by end time as a Unix timestamp
        type: integer
        format: timestamp
      - in: query
        name: page
        description: Number of page
        type: integer
      - in: query
        name: per_page
        description: Number of items to list per page
        type: integer
    post:
      summary: Create an activity
      tags:
      - Feed
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Created activity
          schema:
            $ref: '#/definitions/ActivitySingle'
      parameters:
      - in: body
        name: activity
        description: Activity Payload
        required: true
        type: object
        schema:
          $ref: '#/definitions/ActivityPayload'
  /v2/activities/{id}:
    get:
      summary: Show activity
      tags:
      - Feed
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/ActivitySingle'
      parameters:
      - in: path
        name: id
        description: Activity ID
        required: true
        type: integer
        format: int64
    patch:
      summary: Update an activity
      tags:
      - Feed
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Updated activity
          schema:
            $ref: '#/definitions/ActivitySingle'
      parameters:
      - in: path
        name: id
        description: Activity ID
        required: true
        type: integer
        format: int64
      - in: body
        name: activity
        description: Activity Payload
        required: true
        type: object
        schema:
          $ref: '#/definitions/ActivityPayload'
    delete:
      summary: Delete an activity
      tags:
      - Feed
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Activity deleted
      parameters:
      - in: path
        name: id
        description: Activity ID
        required: true
        type: integer
  /v2/alerts/{alert_id}/activities:
    get:
      summary: List Alert Activities
      tags:
      - Alerts
      responses:
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Alert not found
        '200':
          description: Successful response
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    type:
                      type: string
                    attributes:
                      $ref: '#/definitions/AlertActivity'
        '400':
          description: Invalid activity filter
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: query
        name: order
        description: 'Sort order by created_at (started_at is an alias): desc (default) or asc'
        type: string
        enum:
        - desc
        - asc
      - in: query
        name: activity
        description: Filter by activity type
        type: string
        enum:
        - status_change
        - classification
        - level_change
        - escalation
        - renotified
        - rearmed
      - in: query
        name: user_id
        description: Filter by user ID
        type: integer
        format: int64
      - in: query
        name: page
        description: Page number
        type: integer
      - in: query
        name: per_page
        description: Items per page, default 25, max 100
        type: integer
  /v1/alerts/{alert_id}/comments/:
    get:
      summary: List comments for alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            type: array
            items:
              $ref: '#/definitions/Comment'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
    post:
      summary: Create a comment for alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Created alert comment
          schema:
            $ref: '#/definitions/Comment'
      parameters:
      - in: body
        name: comment
        description: Comment Payload
        required: true
        type: object
        schema:
          $ref: '#/definitions/CommentPayload'
  /v1/alerts/{alert_id}/comments/{id}:
    get:
      summary: Show comment for alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/Comment'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: path
        name: id
        description: Comment ID
        required: true
        type: integer
        format: int64
    patch:
      summary: Update an alert comment
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Updated alert comment
          schema:
            $ref: '#/definitions/Comment'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: path
        name: id
        description: Comment ID
        required: true
        type: integer
        format: int64
      - in: body
        name: comment
        description: Comment Payload
        required: true
        type: object
        schema:
          $ref: '#/definitions/CommentPayload'
    delete:
      summary: Delete an alert comment
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Alert comment deleted
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: path
        name: id
        description: Comment ID
        required: true
        type: integer
        format: int64
  /v1/alerts/{alert_id}/comments/{comment_id}/likes:
    get:
      summary: List likes for alert's comment
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            type: array
            items:
              $ref: '#/definitions/Like'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: path
        name: comment_id
        description: Comment ID
        required: true
        type: integer
        format: int64
  /v1/alerts/{alert_id}/comments/{comment_id}/likes/toggle:
    post:
      summary: Toggle a like for alert's comment
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Created/deleted alert like
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: path
        name: comment_id
        description: Comment ID
        required: true
        type: integer
        format: int64
  /v2/alerts/{alert_id}/comments:
    get:
      summary: List Alert Comments
      tags:
      - Alerts
      responses:
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Alert or corresponding activity not found
        '200':
          description: Successful response
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/CommentV2'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
    post:
      summary: Create Alert Comment
      tags:
      - Alerts
      responses:
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Alert or corresponding activity not found
        '200':
          description: Created alert comment
          schema:
            type: object
            properties:
              data:
                $ref: '#/definitions/CommentV2'
        '400':
          description: Missing comment payload
        '422':
          description: Validation error
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
      - in: body
        name: comment
        description: Comment Payload
        required: true
        type: object
        schema:
          $ref: '#/definitions/CommentPayload'
  /v1/alerts/{alert_id}/likes:
    get:
      summary: List likes for alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            type: array
            items:
              $ref: '#/definitions/Like'
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
  /v1/alerts/{alert_id}/likes/toggle:
    post:
      summary: Toggle a like for alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: Created/deleted alert like
      parameters:
      - in: path
        name: alert_id
        description: Alert ID
        required: true
        type: integer
        format: int64
  /v1/alerts/definitions:
    get:
      summary: List Alert Definitions
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            type: array
            items:
              $ref: '#/definitions/AlertDefinition'
      parameters:
      - in: query
        name: segment
        description: Segments could be nil, a comma-delimited list of strings, or an array
        items:
          type: string
          enum:
          - drilling
          - completion
          - intervention
      - in: query
        name: template_type
        type: string
        description: 'Filter by template type: standard or preset'
      - in: query
        name: topic
        type: string
        description: Filter by topic
  /v1/alerts/definitions/context:
    get:
      summary: Gather Alert Definition Context
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/ContextResponse'
      parameters:
      - in: query
        name: asset_id
        description: Asset to gather context from
      - in: query
        name: identifier
        description: Alert definition identifier to check against
  /v1/alerts/definitions/trigger:
    post:
      summary: Trigger Alert
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            $ref: '#/definitions/TriggerResponse'
      parameters:
      - in: body
        name: asset_id
        description: Asset to trigger the alert for
      - in: body
        name: identifier
        description: Alert definition identifier to check against and trigger
      - in: body
        name: timestamp
        description: Timestamp to trigger the alert at. Defaults to the current time.
  /v1/alerts/definitions/close:
    post:
      summary: Close Open Alerts
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            status: OK
      parameters:
      - in: body
        name: asset_id
        description: Asset with a potentially open alert
      - in: body
        name: identifier
        description: Alert definition identifier to check against and close
      - in: body
        name: timestamp
        description: Timestamp to close the alert at. Defaults to the current time.
  /v1/alerts/definitions/{alert_definition_id}/check:
    post:
      summary: Check Alert Definition in point of time
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: object
          description: Successful response
          schema:
            status: OK
            $ref: '#/definitions/CheckResponse'
      parameters:
      - in: path
        name: alert_definition_id
        description: Alert definition to check
      - in: body
        name: asset_id
        description: Asset to check on
      - in: body
        name: timestamp
        description: Timestamp
  /v1/alerts/definitions/templates/{template_type}:
    get:
      summary: List Alert Definition Templates
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          type: array
          description: Successful response - returns templates or their overrides
          schema:
            type: array
            items:
              $ref: '#/definitions/AlertDefinition'
        '400':
          description: Invalid template_type or scope parameter
      parameters:
      - in: path
        name: template_type
        type: string
        required: true
        description: 'Template type: standard or preset'
      - in: query
        name: scope
        type: string
        required: false
        description: Library shelf to list. "corva" (default) lists Corva-owned templates, swapping in the caller's copy where
          one exists. "company" lists templates owned by the current company. "user" lists the current user's personal templates.
        enum:
        - corva
        - company
        - user
  /v1/alerts/definitions/{id}/save_as_template:
    post:
      summary: Save Alert Definition as Library Template
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Caller is not allowed to create templates on the target shelf
        '404':
          description: Alert definition not found
        '200':
          description: The created template
          schema:
            $ref: '#/definitions/AlertDefinition'
        '400':
          description: Invalid template_type or scope parameter
      parameters:
      - in: path
        name: id
        type: integer
        format: int64
        required: true
        description: Source alert definition id
      - in: query
        name: template_type
        type: string
        required: true
        description: 'Template type: standard or preset'
      - in: query
        name: scope
        type: string
        required: false
        description: Target library shelf. "company" (default) saves a company-owned template, "user" saves a personal template
          for the current user, "corva" saves to the Corva library (Corva principals only). The source definition is unaffected.
        enum:
        - corva
        - company
        - user
  /v1/alerts/definitions/{alert_definition_id}/enable:
    post:
      summary: Enable Alert Definition Template
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: User is not authorized to update the given alert group
        '404':
          description: Alert definition not found, belongs to another company, or alert group not found
        '200':
          type: array
          description: Successful response - returns enabled alerts (new copy or existing overrides)
          schema:
            items:
              $ref: '#/definitions/AlertDefinition'
        '400':
          description: Enabled alert is not valid for the given alert group
      parameters:
      - in: path
        name: alert_definition_id
        type: integer
        required: true
        description: Template alert definition ID to enable
      - in: query
        name: alert_group_id
        type: integer
        required: false
        description: Optional alert group to associate the enabled alert with
  /v1/alerts/definitions/{alert_definition_id}/disable:
    post:
      summary: Disable Alert Definition Template
      tags:
      - Alerts
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Alert definition not found or belongs to another company
        '200':
          type: object
          description: Successful response - returns disabled alert override
          schema:
            $ref: '#/definitions/AlertDefinition'
        '400':
          description: No enabled alert definition found for this template
      parameters:
      - in: path
        name: alert_definition_id
        type: integer
        required: true
        description: Template alert definition ID to disable
  /v2/alerts/definitions:
    get:
      summary: List Alert Definitions
      tags:
      - AlertDefinitions
      responses:
        '401':
          description: Authentication error
          schema:
            $ref: '#/definitions/AuthenticationError'
        '403':
          description: Authorization error
          schema:
            $ref: '#/definitions/AuthorizationError'
        '404':
          description: Not found error
          schema:
            $ref: '#/definitions/NotFoundError'
        '200':
          description: List of alert definitions
          schema:
            $ref: '#/definitions/AlertDefinitionV2List'
      parameters:
      - in: query
        name: type
        description: Filter by type (personal/company)
        type: string
        required: false
      - in: query
        name: alert_group_id
        description: 'Filter by alert group: a single id, a comma-separated list of ids, or "none" for ungrouped definitions'
        type: string
        required: false
      - in: query
        name: search
        description: Search by name
        type: string
        required: false
      - in: query
        name: segment
        description: 'Filter by segment: a 

# --- truncated at 32 KB (1405 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/corva-ai/refs/heads/main/openapi/corva-ai-platform-api-openapi.yml