# Drilling Intelligence API

Reservoir Mastery Exclusive

Drilling intelligence data is available exclusively to Reservoir Mastery subscribers ($129/month). Upgrade your plan (opens new window) to access this data.

# Overview

The Drilling Intelligence API provides comprehensive upstream oil & gas activity data to help you track drilling trends, completion activity, and well inventory across major US basins.

# Data Categories

  • Rig Counts: Active drilling rigs (US, Canada, International)
  • Frac Spreads: Completion crew activity by basin
  • Well Permits: New drilling permits by state
  • DUC Wells: Drilled but uncompleted wells inventory

# Authentication

All drilling intelligence endpoints require:

  1. Valid API key from Reservoir Mastery subscription
  2. Authorization header with your API token
curl https://api.oilpriceapi.com/v1/drilling-intelligence \
  -H 'Authorization: Token YOUR_API_KEY'
1
2

# Access Denied Response

If you're not on the Reservoir Mastery plan:

{
  "success": false,
  "error": "Drilling intelligence data is available exclusively to Reservoir Mastery subscribers",
  "upgrade_url": "https://oilpriceapi.com/pricing",
  "required_tier": "reservoir_mastery"
}
1
2
3
4
5
6

# API Endpoints

# Get All Drilling Intelligence Data

GET /v1/drilling-intelligence
1

Returns comprehensive drilling data across all categories.

Query Parameters:

  • by_code - Filter by commodity code (e.g., US_RIG_COUNT)
  • by_period[from] - Start date (YYYY-MM-DD)
  • by_period[to] - End date (YYYY-MM-DD)
  • page - Page number for pagination
  • per_page - Results per page (default: 100)

Example Response:

{
  "success": true,
  "drilling_intelligence": [
    {
      "code": "US_RIG_COUNT",
      "name": "US Rig Count",
      "type": "rig_count",
      "region": "United States",
      "value": 622,
      "unit": "rigs",
      "currency": "COUNT",
      "source": "baker_hughes",
      "created_at": "2025-07-15T18:00:00.000Z",
      "formatted_date": "2025-07-15 18:00:00 UTC"
    },
    {
      "code": "PERMIAN_FRAC_SPREADS",
      "name": "Permian Frac Spreads",
      "type": "frac_spread",
      "region": "Permian Basin",
      "value": 125,
      "unit": "spreads",
      "currency": "COUNT",
      "source": "primary_energy",
      "created_at": "2025-07-15T16:00:00.000Z"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# Get Summary Overview

GET /v1/drilling-intelligence/summary
1

Returns latest data points for each category in a consolidated view.

Example Response:

{
  "success": true,
  "rig_counts": [
    {
      "code": "US_RIG_COUNT",
      "region": "United States",
      "value": 622,
      "updated_at": "2025-07-15T18:00:00.000Z"
    },
    {
      "code": "CANADA_RIG_COUNT",
      "region": "Canada",
      "value": 158,
      "updated_at": "2025-07-15T18:00:00.000Z"
    }
  ],
  "frac_spreads": [
    {
      "code": "PERMIAN_FRAC_SPREADS",
      "region": "Permian Basin",
      "value": 125,
      "updated_at": "2025-07-15T16:00:00.000Z"
    }
  ],
  "well_permits": [
    {
      "code": "TEXAS_WELL_PERMITS",
      "region": "Texas",
      "value": 89,
      "updated_at": "2025-07-15T12:00:00.000Z"
    }
  ],
  "duc_wells": [
    {
      "code": "PERMIAN_DUC_WELLS",
      "region": "Permian Basin",
      "value": 2450,
      "updated_at": "2025-07-15T08:00:00.000Z"
    }
  ],
  "last_updated": "2025-07-15T18:00:00.000Z"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

# Get Frac Spreads Data

GET /v1/drilling-intelligence/frac-spreads
1

Returns completion crew activity by basin.

Example Response:

{
  "success": true,
  "frac_spreads": [
    {
      "code": "PERMIAN_FRAC_SPREADS",
      "name": "Permian Frac Spreads",
      "region": "Permian Basin",
      "value": 125,
      "unit": "spreads"
    }
  ],
  "summary": {
    "total_active_spreads": 200,
    "by_basin": {
      "Permian Basin": 125,
      "Eagle Ford": 45,
      "Bakken": 30
    },
    "last_updated": "2025-07-15T16:00:00.000Z"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# Get Well Permits Data

GET /v1/drilling-intelligence/well-permits
1

Returns weekly drilling permit data by state.

# Get DUC Wells Data

GET /v1/drilling-intelligence/duc-wells
1

Returns drilled but uncompleted wells inventory.

# Get Basin-Specific Data

GET /v1/drilling-intelligence/basin/{basin}
1

Returns all drilling intelligence data for a specific basin.

Supported Basins:

  • permian - Permian Basin
  • eagle_ford or eagleford - Eagle Ford Shale
  • bakken - Bakken Formation
  • williston - Williston Basin (alias for Bakken)

# Get Rig Counts (Simplified Endpoint)

GET /v1/rig-counts/latest
1

Returns the latest rig count data in a simplified format. Perfect for quick integrations.

Example Response:

{
  "status": "success",
  "data": {
    "code": "US_RIG_COUNT",
    "region": "United States",
    "count": 540,
    "unit": "rigs", 
    "source": "baker_hughes",
    "created_at": "2025-08-02T20:15:00Z",
    "week_over_week_change": -5,
    "year_over_year_change": 45
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

Get Historical Rig Counts:

GET /v1/rig-counts
1

Query Parameters:

  • region - Filter by region: us, canada, international
  • start_date - Start date (YYYY-MM-DD)
  • end_date - End date (YYYY-MM-DD)
  • page - Page number for pagination
  • per_page - Results per page (default: 100)

# Get Trend Analysis

GET /v1/drilling-intelligence/trends
1

Returns trend analysis and historical patterns.

Query Parameters:

  • type - Filter by data type: all, frac_spreads, well_permits, duc_wells, rig_counts
  • period - Time period: 1month, 3months, 6months, 1year, 2years

# Data Sources & Update Schedule

# Rig Counts

  • Source: Baker Hughes North America Rotary Rig Count
  • Update Frequency: Weekly (Fridays at 1 PM CT / 6 PM UTC)
  • Coverage:
    • US: By state and basin
    • Canada: By province
    • International: Major oil-producing countries

# Frac Spreads

  • Source: Primary Energy
  • Update Frequency: Weekly
  • Coverage: Permian, Eagle Ford, Bakken, and other major basins
  • Metrics: Active hydraulic fracturing crews

# Well Permits

  • Source: State regulatory agencies
    • Texas Railroad Commission (RRC)
    • North Dakota Industrial Commission
    • Oklahoma Corporation Commission
  • Update Frequency: Weekly
  • Coverage: New drilling permits issued

# DUC Wells

  • Source: EIA Drilling Productivity Report
  • Update Frequency: Monthly
  • Coverage: Major unconventional oil & gas basins
  • Metrics: Inventory of drilled but uncompleted wells

# Code Examples

# Python Example

import requests
import pandas as pd

# Your Reservoir Mastery API key
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.oilpriceapi.com/v1'

headers = {
    'Authorization': f'Token {API_KEY}',
    'Content-Type': 'application/json'
}

# Get drilling intelligence summary
response = requests.get(f'{BASE_URL}/drilling-intelligence/summary', headers=headers)
data = response.json()

# Convert to DataFrame for analysis
if data['success']:
    rig_counts = pd.DataFrame(data['rig_counts'])
    frac_spreads = pd.DataFrame(data['frac_spreads'])
    
    print(f"Total US Rigs: {rig_counts[rig_counts['code'] == 'US_RIG_COUNT']['value'].iloc[0]}")
    print(f"Total Frac Spreads: {data['summary']['total_active_spreads']}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# JavaScript Example

const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://api.oilpriceapi.com/v1';

async function getDrillingIntelligence() {
  const response = await fetch(`${BASE_URL}/drilling-intelligence/summary`, {
    headers: {
      'Authorization': `Token ${API_KEY}`,
      'Content-Type': 'application/json'
    }
  });
  
  const data = await response.json();
  
  if (data.success) {
    console.log('US Rig Count:', data.rig_counts.find(r => r.code === 'US_RIG_COUNT').value);
    console.log('Permian Frac Spreads:', data.frac_spreads.find(f => f.code === 'PERMIAN_FRAC_SPREADS').value);
  }
}

getDrillingIntelligence();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# Basin Analysis Example

# Get all Permian Basin data
curl https://api.oilpriceapi.com/v1/drilling-intelligence/basin/permian \
  -H 'Authorization: Token YOUR_API_KEY'

# Get 6-month trends for frac spreads
curl "https://api.oilpriceapi.com/v1/drilling-intelligence/trends?type=frac_spreads&period=6months" \
  -H 'Authorization: Token YOUR_API_KEY'
1
2
3
4
5
6
7

# WebSocket Real-time Updates

Reservoir Mastery subscribers can receive real-time drilling intelligence updates via WebSocket:

// Subscribe to drilling intelligence updates
const cable = ActionCable.createConsumer('wss://api.oilpriceapi.com/cable');

const subscription = cable.subscriptions.create('EnergyPricesChannel', {
  received(data) {
    if (data.type === 'drilling_intelligence_update') {
      console.log('New drilling data:', data.data);
      // Handle real-time update
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11

# Use Cases

# Investment Analysis

  • Track drilling activity trends in specific basins
  • Monitor completion crew deployment
  • Analyze DUC well inventory changes

# Operations Planning

  • Forecast regional drilling activity
  • Plan service deployment based on frac spread locations
  • Track competitor activity through permit filings

# Market Intelligence

  • Correlate rig counts with oil price movements
  • Predict production changes based on completion activity
  • Monitor basin-specific drilling trends

# Rate Limits

Drilling intelligence endpoints follow standard API rate limits:

  • Reservoir Mastery: 250,000 requests/month
  • Rate Limit: 60 requests per minute per IP

# Support

For technical support or questions about drilling intelligence data:

  • Email: [email protected]
  • Slack: Available for Reservoir Mastery subscribers
  • Documentation: https://docs.oilpriceapi.com

Upgrade to Reservoir Mastery (opens new window) to access drilling intelligence data.