Get the data

Heads up on Original: the Commission does not publish this table on its own. It publishes Full Wellbore Database (ASCII), which this was parsed out of — so Original gets you that whole file, not just this table. Every other format is this table alone.

Free. You will be asked to confirm an email address before the files are built — that is the only gate, and it is there so we can tell you when a large export is ready.

Preview the first 100 rows

What this is

Record type 10. Two columns of substance: the API halves and a permit number, one row per permit.

Small, and the most useful join in the catalog after the API number itself — it is what ties the permit world to the wellbore world when the API number on the permit is missing or wrong.

What you can do with it

Follow a wellbore back through every permit filed against it, and go the other way from a permit number to the hole that was actually drilled.

Gotchas

A wellbore usually has several permits. The wellbore root record's newest_drl_pmt_nbr is only the most recent one; this table is the full list.

Record layout

4 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.

wb_drilling_permits 4 columns

Record layout for wb_drilling_permits — 4 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 permit_number key join text 3-8 WB-PERMIT-NUMBER A drilling permit number associated with this bore. One bore can carry many: an original drill permit plus every amendment and re-entry.
4 ingested_at timestamptz When the upstream pipeline last wrote this row. Not an RRC field — it is EZRRC's provenance stamp, and it is what the freshness badge is measured against.

What this joins to

The Railroad Commission never states these keys anywhere in the files. They are the reason the data is hard to use, so here they are with the exact columns on both sides.

Wellbore Drilling Permit Numbers joins to Completion Information in Data Format on Permit number = Dp number — rows can match many rows in both directions.

was drilled under a permit recorded on

The wellbore file's full permit list. 4,941 of 5,000 sampled completions match, which is the most complete route from a completion filing to the wellbore it belongs to.

completion-information-data-format.dp_no = wellbore-drilling-permit-numbers.permit_number

Wellbore Drilling Permit Numbers joins to Full Wellbore Database (ASCII) on API county and API unique — many rows here share a single row there.

every drilling permit issued against it

A wellbore usually has several. The root record's newest_drl_pmt_nbr is only the most recent. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-drilling-permit-numbers.api_county AND full-wellbore-ascii.api_unique = wellbore-drilling-permit-numbers.api_unique

Wellbore Drilling Permit Numbers joins to Drilling Permit Master and Trailer — Daily File (with latitudes and longitudes) on Permit number — many rows here share a single row there.

appears on the wellbore as

The wellbore database keeps every permit number issued against a hole. Joining here finds the wellbore even when the API number on the permit is blank or wrong — 4,180 of 5,000 sampled permits are recorded against a wellbore this way. These two columns are different types — one is text, the other an integer — so a direct equality is rejected by Postgres. Cast the text side to integer, which also disposes of any leading zeros; casting the integer to text would not, because '000123' and 123 are not equal as text.

drilling-permits-daily.permit_no = wellbore-drilling-permit-numbers.permit_number

Wellbore Drilling Permit Numbers joins to RRC Oil / ICE Inspections (Every Inspection) on Permit number = Drilling permit number — rows can match many rows in both directions.

inspected a well whose permits include

The same permit number matched against the wellbore file's permit list, which is the route from an inspection to a wellbore record without splitting the API number up. Weaker than the master above — 49,637 of the 60,467 inspections that carry a permit number — because the wellbore file lists the permits it knows a bore by, not every permit RRC ever issued. Both sides are text and it runs as printed.

rrc-oil-ice-inspections-detail.drilling_permit_no = wellbore-drilling-permit-numbers.permit_number

Wellbore Drilling Permit Numbers joins to RRC Oil / ICE Violations on Permit number = Drilling permit number — rows can match many rows in both directions.

cited a well permitted as

The drilling permit number on the violation, matched against the wellbore file's permit list — which is what puts an enforcement action on a specific hole in the ground. Only 8,191 of 396,093 violations carry a permit number at all, and 5,403 of those find a wellbore this way; the daf802 master below finds 8,123 of the same rows, because the wellbore file lists the permits it knows a bore by rather than every permit RRC issued. Both sides are text and it runs as printed.

rrc-oil-ice-inspections.drilling_permit_no = wellbore-drilling-permit-numbers.permit_number

Where this comes from

Published by
Texas Railroad Commission — the original page
Original format
Fixed-width Columns are byte ranges with no separators, described only in a scanned record layout.
RRC publishes
Updated once a week (Weekly, with the wellbore database.)
EZRRC re-ingests
Monthly The RRC republishes more often than we pull. For the very latest file, go to the RRC directly.
RRC download link
GoAnywhere MFT
Record layout manual
Our table
texas.wb_drilling_permits

EZRRC is an independent mirror of public-domain data published by the Texas Railroad Commission. It is not affiliated with or endorsed by the RRC. For any legal or regulatory purpose, verify against the official RRC release.