CA CalGEM Oil & Gas & Geothermal Well Register
Pricing
from $0.03 / 1,000 well records
CA CalGEM Oil & Gas & Geothermal Well Register
California oil & gas / geothermal well register (public CalGEM data, ~242k wells): status (active/idle/plugged), well type, operator, county, field, HPZ, location. Due-diligence for environmental & mineral-rights research. Filter by county, operator, status, API number.
Pricing
from $0.03 / 1,000 well records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
CA CalGEM Oil & Gas & Geothermal Wells - California Well Register
California's Dept of Conservation / CalGEM publishes its well register (WellSTAR) as a free public map service - every oil, gas and geothermal well ever filed with the state. This actor turns it into a queryable, charged-per-record API - for environmental due-diligence, mineral-rights and land research, and oil & gas supply-chain vetting.
What it covers
~242.5k wells across California (layer 0 of CalGEM's WellSTAR service). Each record carries:
| Field | What it is |
|---|---|
apiNumber | the 10-digit API number - the stable per-well key |
status | Active (53.9k) / Idle (30.3k) / Plugged (146.6k, sealed) / Canceled / New / PluggedOnly / Unknown |
wellType | Oil & Gas / Waterflood / Cyclic Steam / Steamflood / Observation / Gas Storage / Water Disposal / Dry Gas ... |
operatorName | who operates the well (Chevron, Aera Energy, California Resources...) |
county / district | location (Kern is the giant; offshore areas are suffixed 'Offshore') |
fieldName / areaName | producing field |
leaseName / wellNumber | lease and well-on-lease identity |
section / township / range / baseMeridian | PLSS survey location |
spudDate / spudYear | when the well was first drilled |
inHPZ | verified high-pressure-zone wells |
confidential / directional | flags |
latitude / longitude | coordinates |
Typical questions
- "How many active wells does this operator run in Kern County?"
- "Which wells are in a verified HPZ near this township/range?"
- "Every plugged well on this lease - did the site get sealed?"
- "Where are California's gas-storage wells (for storage-safety diligence)?"
- "New wells spudded since 2020 in Kern County."
Honest limits
The register is a status snapshot, not a production ledger: it carries no depth, plug-report or bond columns, and no per-well "last updated" timestamp (CalGEM exposes those only through other systems). Spud date is a text column, so year filtering happens after a bounded scan of the newest records - a query pinned to a very old single year may return a partial slice of that year, not the whole of it. Don't build depth-history claims on this data.
Inputs
| Input | What it does |
|---|---|
status | Active (default when no other filter is set) / Idle / Plugged / Canceled / PluggedOnly / New / Unknown / NotCalGEMJurisdiction. Leave empty to search all statuses (use with a county/operator/well-type filter for a full-status view) |
county / operator / leaseName / wellNumber | name substrings |
wellType | code or label (OG / 'Oil & Gas', WF / 'Waterflood', ...) |
apiNumber | exact 10-digit API - single well |
inHPZ / confidential / directional | yes/no flags |
spudYearFrom / spudYearTo | first-drilled year range (record runs; not combinable with aggregate) |
latMin/latMax/lonMin/lonMax | bounding box |
aggregate / groupBy | one row per group (county / status / wellType / operator / field / district) with a count. operator has thousands of distinct values and the source truncates a grouped response at 5,000 - that combination is refused rather than answered with a short rollup; filter by county/field first, or group by one of the bounded dimensions |
maxResults | cap records (default 50) |
Default run = up to 50 active wells - fast enough for the daily auto-test, and a live slice of California's operating wells.
Note: a run is capped at $5 of usage - a request large enough to reach it (roughly 5,000 records at the entry price) is cut off part-way, and the truncated run still reports success. For whole-corpus counts, use aggregate.
Example inputs
One well by API number - The 10-digit API number is the stable per-well key.
{"apiNumber": "0403703161", "maxResults": 5}
Active wells run by one operator in one county - operator and county are substring matches.
{"status": "Active", "operator": "Chevron", "county": "Kern", "maxResults": 25}
Verified high-pressure-zone wells in one county
{"inHPZ": "Verified HPZ", "county": "Los Angeles", "maxResults": 25}
Wells by status - aggregate=true returns one summary row per group with a count.
{"aggregate": true, "groupBy": "status"}
Low cost
From $0.00005 per record, down to $0.00003 at Gold - billed only for the rows you use, and each record is metered individually.
The register is ~242,000 wells across California's oil, gas and geothermal fields. The source publishes its drill dates as strings, not dates - so a naive year filter would silently mis-sort records - and its aggregate endpoint ignores its own row-count limit, truncating a grouped response at 5,000 groups with no error. We sidestep both: year filtering runs as a bounded scan on our side, and a grouped request that fills that 5,000 ceiling is refused outright rather than returned as a silently short rollup. The source's quirky status values (a whitespace-less NotCalGEMJurisdiction, for one) are matched exactly rather than by sloppy substring. You query a clean well register by county / operator / status / API number; the data quirks stay on our side.
Example output
One well - apiNumber=0403703161 returns the single well:
{"platform": "ca-wells","source": "calgem-wellstar","mode": "rows","apiNumber": "0403703161","leaseName": "Lease by Tidelands Oil Production Co.","wellNumber": "Z1 61","status": "Plugged","wellTypeCode": "OG","wellType": "Oil & Gas","operatorName": "Tidelands Oil Production Co.","fieldName": "Wilmington","areaName": "Fault Block V","district": "Southern","county": "Los Angeles","section": "11","township": "05S","range": "13W","baseMeridian": "SB","spudDate": "03/07/1962","spudYear": "1962","confidential": "N","directional": "Y","inHPZ": "Verified HPZ","latitude": "33.75258636","longitude": "-118.20665741","groupKey": "","groupCount": ""}
aggregate=true, groupBy=status - wells by status:
Plugged 146.6kActive 53.9kIdle 30.3k
Source
- CalGEM WellSTAR (California Dept of Conservation) - official, free public map service.