iWell logo

iWell

Live

iWell — production software for small and mid-size oil & gas operators. Wells, tanks, tank readings, run tickets, meters, production, fields, notes, and well tests.

What is iWell?

iWell is a field-data platform for oil and gas operators. Pumpers and lease operators capture daily tank gauges, run tickets, meter readings, production, and well tests from mobile or web; managers get centralized dashboards and reporting. The API exposes the full data model so you can read and write wells, tanks, tank readings (daily and hourly), run tickets, meters, meter readings, daily production, custom fields, validation rules, notes, well tests, users, and well groups. Rate limit: 24 requests/minute per account. Date-range query params come in two flavors that are NOT interchangeable: `since` is a UNIX epoch integer (30-day lookback max), while `start`/`end` are YYYY-MM-DD strings (inclusive, 30-day window max — the published docs say 31 but the server enforces 30). When `hourly=true` on tank readings, start must equal end (same-day window). 74 read + write methods (DELETE operations intentionally omitted for safety).

Available Tools

  • get_me
    Get some account information of the authenticated user.
  • get_users
    List all company users.
  • post_users
    Create a new user.
  • get_users_user_id
    Get single user.
  • patch_users_user_id
    Update user.
  • get_users_user_id_wells
    Retrieve list of wells that can be accessed by the user.
  • get_users_user_id_wells_well_id
    Verify if the well can be accessed by the user.
  • post_users_user_id_wells_well_id
    Grant well access to the user.
  • get_users_user_id_well_groups
    Retrieve list of well groups that can be accessed by the user.
  • get_users_user_id_well_groups_group_id
    Verify if the well group can be accessed by the user.
  • post_users_user_id_well_groups_group_id
    Grant well group access to the user.
  • get_wells
    Get the list of wells in the company.
  • post_wells
    Create a new well.
  • get_wells_well_id
    Get information of a single well.
  • patch_wells_well_id
    Update an existing well.
  • get_wells_well_id_users
    Retrieve list of users with access to this well.
  • get_wells_well_id_users_user_id
    Verify if the user have access to the well.
  • post_wells_well_id_users_user_id
    Grant well access to the user.
  • get_wells_well_id_tanks
    Retrieve list of the tanks allocated to this well.
  • get_wells_well_id_tanks_tank_id
    Verify if the tank is allocated to the well.
  • post_wells_well_id_tanks_tank_id
    Allocate the tank to the well.
  • get_tanks
    Get all tanks.
  • post_tanks
    Create new tank
  • get_tanks_tank_id
    Get a single tank
  • patch_tanks_tank_id
    Update tank
  • get_tanks_tank_id_readings
    Retrieve a list of tank readings.
  • post_tanks_tank_id_readings
    Create tank reading. The previous portion of the reading is optional.
  • get_tanks_tank_id_readings_reading_id
    Get single tank reading.
  • patch_tanks_tank_id_readings_reading_id
    Update tank reading. The previous portion of the reading is optional.
  • get_tanks_tank_id_readings_reading_id_run_tickets
    Get run tickets recorded on a tank reading
  • post_tanks_tank_id_readings_reading_id_run_tickets
    Create run ticket.
  • get_tanks_tank_id_readings_reading_id_run_tickets_run_ticket_id
    Get single run ticket.
  • patch_tanks_tank_id_readings_reading_id_run_tickets_run_ticket_id
    Update run ticket.
  • get_wells_well_id_meters
    Get the meters for the well.
  • post_wells_well_id_meters
    Create new meter.
  • get_wells_well_id_meters_meter_id
    Get single meter.
  • patch_wells_well_id_meters_meter_id
    Update meter.
  • get_wells_well_id_meters_meter_id_readings
    Get the readings of the meter.
  • post_wells_well_id_meters_meter_id_readings
    Create meter reading.
  • get_wells_well_id_meters_meter_id_readings_reading_id
    Get single meter reading.
  • patch_wells_well_id_meters_meter_id_readings_reading_id
    Update reading.
  • get_wells_well_id_production
    Get production data of specific well.
  • post_wells_well_id_production
    Create new production data
  • get_wells_well_id_production_production_id
    Get a single production.
  • patch_wells_well_id_production_production_id
    Update production.
  • get_well_groups
    List all company well groups.
  • post_well_groups
    Create a new group.
  • get_well_groups_group_id
    Get single group.
  • patch_well_groups_group_id
    Update well group.
  • get_well_groups_group_id_wells
    Retrieve list of wells in well group.
  • get_well_groups_group_id_wells_well_id
    Verify if the well is part of the well group.
  • post_well_groups_group_id_wells_well_id
    Add well to well group.
  • get_well_groups_group_id_users
    Retrieve list of users with access to the well group.
  • get_well_groups_group_id_users_user_id
    Verify if the user have access to the well group.
  • post_well_groups_group_id_users_user_id
    Grant well group access to the user.
  • get_fields
    Get all custom fields.
  • post_fields
    Create field.
  • get_fields_field_id
    Get single field.
  • patch_fields_field_id
    Update field.
  • get_wells_well_id_fields
    Get all fields assigned for this well.
  • get_wells_well_id_fields_field_id_values
    Get field values of specific well.
  • post_wells_well_id_fields_field_id_values
    Create a field value for a specific well.
  • get_wells_well_id_fields_field_id_values_value_id
    Get field value for a specific well.
  • patch_wells_well_id_fields_field_id_values_value_id
    Update field value for a specific well.
  • get_wells_well_id_validation_rules
    Get validation rules for well.
  • post_wells_well_id_validation_rules
    Create a new validation rule for well.
  • get_wells_well_id_validation_rules_rule_id
    Get single validation rule.
  • patch_wells_well_id_validation_rules_rule_id
    Update validation rule.
  • get_wells_well_id_notes
    Get notes made on the well.
  • post_wells_well_id_notes
    Create a new note.
  • get_wells_well_id_notes_note_id
    Get single note.
  • patch_wells_well_id_notes_note_id
    Update note.
  • get_wells_well_id_well_tests
    Get a list of well tests of a specific well.
  • get_wells_well_id_well_tests_well_test_id
    Get a single well test.
  • find_wells_by_name
    Filter wells by a name/alias substring (case-insensitive). One underlying get_wells call — prefer over get_wells for pad or operator subsets.
  • list_users_map
    Return a compact {id: name} dict of company users. Use to humanize numeric updated_by fields on production, readings, notes, and run tickets.

Requirements

  • iWell admin account
    An iWell user account with administrator privileges is required to use the API.
  • API Key and API Key Secret
    Issued from the iWell developer portal — these are the OAuth 2.0 client credentials used by the token endpoint.
  • Admin email and password
    The email/password used to sign into iWell (password-grant OAuth2).

Quick Setup Guide

Follow these steps to connect your AI agents to this connector

Log into https://revolution.iwell.info/ using an account that has administrator privileges.

Open the iWell developer portal at https://revolution.iwell.info/developer and copy your API Key and API Key Secret.

In PatchOps, open the iWell connector and enter your API Key, API Key Secret, admin email (username), and password. PatchOps exchanges these for a 7-day bearer token and refreshes automatically.

The iWell API allows 24 requests/minute per account. Date-range queries are capped at 30 days (the public docs say 31 but the server enforces 30). `since` takes a UNIX epoch integer and also caps at a 30-day lookback; `start` and `end` take YYYY-MM-DD strings — do not pass UNIX timestamps to start/end or iWell will 500. For hourly tank readings, start and end must be the same day.

Connect to Your AI Assistant

Choose your AI assistant below for specific setup instructions

Follow these steps to connect iWell to Claude:

Step 1: Open Claude Settings

Launch Claude → Click the profile button (bottom left) → Navigate to Settings

Step 2: Access Connectors

Scroll down to the Connectors tab → Navigate to the bottom → Click “Add Custom Connector”

Step 3: Name Your Connector

Enter any name you'd like for this connector

Step 4: Get the Connector URL

Log in to PatchOps → Navigate to the /mcp page → Copy the connector URL you want to use

Step 5: Add the Connector

Paste the URL in the “Remote MCP Server URL” text box → Click Add

Step 6: Start Using

Your connector is now ready to use in Claude

Follow these steps to connect iWell to ChatGPT:

Step 1: Enable Developer Mode

Go to Settings → Connectors → Advanced → Enable Developer mode

Step 2: Create New Connector

Go back to Connectors page → Click “Create” (top right)

Step 3: Name Your Connector

Enter any name you'd like for this connector (descriptions are optional)

Step 4: Get the Connector URL

Log in to PatchOps → Navigate to the /mcp page → Copy the connector URL you want to use

Step 5: Add the URL

Paste the URL in the “MCP Server URL” text box

Step 6: Set Authentication

Click the authentication dropdown → Select “No authentication” (PatchOps handles authentication internally)

Step 7: Create the Connector

Click “I understand and want to continue” checkbox → Press Create

Step 8: Using the Connector

Start a new chat → Click the + button (left of text box) → Open dropdown → Hover over three dots labeled “More” → Select your connector

Instructions for connecting iWell to GitHub Copilot:

Coming Soon

Detailed setup instructions for GitHub Copilot will be added here.

For other MCP-compatible platforms:

Step 1: Get the Connector URL

Log in to PatchOps → Navigate to the /mcp page → Copy the connector URL you want to use

Step 2: Add to Configuration

Add this configuration to your MCP settings file. Replace the URL with your specific connector URL from the /mcp page:

"iWell-MCP": {
  "url": "https://patchops.ai/api/mcp/...",
  "type": "http"
}

Example Configuration

Here’s an example using PatchOps MCP:

"PatchOps-MCP": {
  "url": "https://patchops.ai/api/mcp/...",
  "type": "http"
}