Drilling Permits Pending Approval (with latitudes and longitudes)
Queryable Delimited Has coordinates
Applications the Commission has received but not yet acted on, kept extract by extract.
Get the data
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.
What this is
Permit applications in flight: every row is a wellbore on an application the Commission has not approved yet, with the surface location the applicant gave, the nearest town, the county, the district and the operator.
RRC writes each extract as eleven }-delimited files with a header row, all carrying the same yyyymmddhhmmss stamp. What is parsed here is file 2, dp_wellbore_pending — the one that carries the coordinates. The other ten (the application itself, the permitted fields, the restrictions, the SWR resolutions, the mailing addresses, the wellbore profiles, the PERP records and the lat/long detail) are not archived upstream yet; they tie to this one on universal_doc_no, and RRC's own folder is linked below.
The extracts are kept rather than replaced, because an application appears in successive extracts and then simply stops appearing when it is approved. Every row carries the extract it came from, so the newest extract is what is pending right now and the series is how you watch an application move.
What you can do with it
See intent before approval — who is filing where, days or weeks before the permit appears in the approved file.
Take the newest extract_ts for a snapshot of what is pending today, or compare two extracts to see what was filed, what was approved and what was withdrawn in between.
Map the proposed surface holes: 171 of the 258 rows carry decimal latitude and longitude, and all 171 fall inside Texas.
Resolve the operator — every one of the 258 rows matches the P-5 directory — and, where an API has already been assigned, the existing wellbore.
Gotchas
A pending application is not a permit. Some are withdrawn, some are denied, and the same well appears more than once as an operator amends its filing.
This is a SERIES, not a snapshot. Querying the whole table gives you every extract we hold at once — 258 rows over 15 extracts as of 2026-08-21 — and the same application appears in each extract it was pending for. Filter on extract_ts, or take its maximum, or you will count applications several times.
We started keeping extracts on 2026-08-02, so there is no history before that, and the run is not unbroken: nothing was archived for 2026-08-16, 17 or 18. An extract can also legitimately be empty — 2026-08-08 held a header row and nothing else, because nothing was pending that Saturday evening — and one held a single record. A small extract is not a truncated one.
RRC publishes twice a day, at 11:30 and 17:30, but every extract in the archive carries a 17:08 stamp: only the evening one is being fetched, so our copy in fact gains one extract a day. That is what the mirror cadence on this page says.
87 of the 258 rows have no latitude or longitude at all. Those applications were filed in State Plane coordinates, which arrive in state_plane_x and state_plane_y and are not converted. A spatial export cannot carry those rows.
Coordinates arrive in whichever form the applicant typed. lat_degrees holds decimal degrees on some rows and the degrees of a degrees/minutes/seconds triple on others; the loader composes both into `latitude` and `longitude`, and the six *_s columns keep the strings exactly as the file wrote them. latlong_type_code is the DATUM — NAD27, NAD83 or WGS84 — not the form, and it is NAD27 on 174 of 258 rows: taking the whole column as WGS84 is worth about 200 metres in West Texas.
api_sequence_number is null on 154 of the 258 rows. An application that has not been assigned an API number yet does not have one; where it is present, all 104 resolve to a wellbore.
Several columns are empty in every extract held so far — location_description, offshore_county_code, horiz_wellbore_type_code, and gw1_flag, which RRC's own file definition calls unused. surface_location_code is 'L' in all 258.
Record layout
45 columns.
dp_wellbore_pending
45 columns
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
latlong_type_code
|
text | LATLONG_TYPE_CODE |
The DATUM the applicant's coordinates were surveyed on — 1 NAD27, 2 NAD83, 3 WGS84 — not the form they are written in. NAD27 on 174 of the 258 rows held, so treating the column as WGS84 is worth about 200 metres in West Texas. e.g. 2 | Coordinate datum code |
| 2 |
lat_degrees
|
numeric | LAT_DEGREES |
Latitude as the applicant typed it: decimal degrees on some rows (32.4716, minutes and seconds blank) and the degrees of a degrees/minutes/seconds triple on others. Use `latitude` unless you need the original. e.g. 31.000000 | — |
| 3 |
lat_minutes
|
numeric | LAT_MINUTES |
Minutes of latitude, when the applicant filed a degrees/minutes/seconds triple. e.g. 44.0000 | — |
| 4 |
lat_seconds
|
numeric | LAT_SECONDS |
Seconds of latitude, when the applicant filed a degrees/minutes/seconds triple. e.g. 21.9800 | — |
| 5 |
long_degrees
|
numeric | LONG_DEGREES |
Longitude in whichever form the applicant typed, matching lat_degrees. | — |
| 6 |
long_minutes
|
numeric | LONG_MINUTES |
Minutes of longitude, when filed as a triple. | — |
| 7 |
long_seconds
|
numeric | LONG_SECONDS |
Seconds of longitude, when filed as a triple. | — |
| 8 |
state_plane_zone_code
|
text | STATE_PLANE_ZONE_CODE |
Texas State Plane zone, 1 North through 5 South, on the applications filed in State Plane rather than latitude/longitude. | — |
| 9 |
state_plane_x
|
numeric measured in ft | STATE_PLANE_X |
State Plane easting. Filled on the 87 rows that carry no latitude/longitude at all; not converted, so those rows cannot be mapped from this table. | — |
| 10 |
gw1_flag
|
text | GW1_FLAG |
Not used, says RRC's own file definition. 'N' in every row held. | — |
| 11 |
lat_degrees_s
|
text | LAT_DEGREES_S |
The latitude degrees exactly as the character string in the file, before any parsing. | — |
| 12 |
lat_minutes_s
|
text | LAT_MINUTES_S |
The latitude minutes as the character string in the file. | — |
| 13 |
lat_seconds_s
|
text | LAT_SECONDS_S |
The latitude seconds as the character string in the file. | — |
| 14 |
long_degrees_s
|
text | LONG_DEGREES_S |
The longitude degrees as the character string in the file. | — |
| 15 |
long_minutes_s
|
text | LONG_MINUTES_S |
The longitude minutes as the character string in the file. | — |
| 16 |
long_seconds_s
|
text | LONG_SECONDS_S |
The longitude seconds as the character string in the file. | — |
| 17 |
api_sequence_number
join
|
text | API_SEQUENCE_NUMBER |
The eight-digit API number — county code then unique number, no state prefix. NULL on 154 of the 258 rows: an application that has not been assigned one yet does not have one. Where present, all 104 resolve to a wellbore. | — |
| 18 |
directions
|
text | DIRECTIONS |
Compass direction from the nearest town, up to four characters. e.g. S | — |
| 19 |
modified_by
|
text | MODIFIED_BY |
The RRC user or process that last changed the row in the pending system. | — |
| 20 |
nearest_town_distance
|
numeric measured in mi | NEAREST_TOWN_DISTANCE |
Distance from the nearest town, in miles, to two decimal places. e.g. 20.00 | — |
| 21 |
nearest_town
|
text | NEAREST_TOWN |
Name of the nearest town, up to sixty characters. e.g. Midland | — |
| 22 |
modified_dt
|
date | MODIFIED_DT |
Date the row was last changed in RRC's system. DD-MON-YY in the file (11-AUG-26). | — |
| 23 |
api_linked_flag
|
text | API_LINKED_FLAG |
'Y' when the application has already been linked to an existing API number. | — |
| 24 |
location_description
|
text | LOCATION_DESCRIPTION |
Free-text description of the location. Empty in every extract held so far. | — |
| 25 |
county_code
join
|
text | COUNTY_CODE |
Three-digit county code of the proposed surface location. e.g. 307 | Texas county code |
| 26 |
surface_location_code
|
text | SURFACE_LOCATION_CODE |
Where the surface hole is: L land, O offshore, I inland waterway, B bay or estuary. 'L' in all 258 rows held. e.g. L | — |
| 27 |
wellbore_id
join
|
bigint | WELLBORE_ID |
RRC's internal identifier for the proposed wellbore. e.g. 1109271 | — |
| 28 |
offshore_county_code
|
text | OFFSHORE_COUNTY_CODE |
The offshore county code when the surface location is offshore. Empty in every extract held so far, consistent with every row being on land. | — |
| 29 |
universal_doc_no
join
|
bigint | UNIVERSAL_DOC_NO |
RRC's key for the pending application. It is what ties this file to the other ten in the same extract, and what identifies an application across successive extracts. e.g. 499388233 | — |
| 30 |
horiz_wellbore_type_code
|
text | HORIZ_WELLBORE_TYPE_CODE |
1 production sharing agreement, 2 allocation, 3 stacked lateral. Empty in every extract held so far — the three boolean flags below carry the same facts. | — |
| 31 |
stacked_lat_status_no
|
text | STACKED_LAT_STATUS_NO |
The parent permit number when this is a stacked lateral. Filled on 14 of the 258 rows. | — |
| 32 |
psa_flag
|
text | PSA_FLAG |
'Y' when the application is for a production sharing agreement well. | — |
| 33 |
allocation_flag
|
text | ALLOCATION_FLAG |
'Y' when the application is for an allocation well. 108 of the 258 rows. | — |
| 34 |
stacked_lateral_flag
|
text | STACKED_LATERAL_FLAG |
'Y' when the application is for a stacked lateral. | — |
| 35 |
state_plane_y
|
numeric measured in ft | STATE_PLANE_Y |
State Plane northing, on the applications filed in State Plane coordinates. | — |
| 36 |
operator_name
|
text | OPERATOR_NAME |
Operator name on the application, up to eighty characters. e.g. CHEVRON U. S. A. INC. | — |
| 37 |
operator_number
join
|
text | OPERATOR_NUMBER |
The operator's six-digit P-5 number, zero-padded as text. All 258 rows resolve to texas.operators. e.g. 148113 | — |
| 38 |
operator_phone
|
text | OPERATOR_PHONE |
Operator telephone number as filed. | — |
| 39 |
district
join
|
text | DISTRICT |
RRC district as the industry prints it — 01-06, 6E, 7B, 7C, 08, 8A, 09, 10. Unlike the daf802 tables, this file writes the printed code rather than the internal number. e.g. 7C | RRC district (printed designation) |
| 40 |
latitude
|
numeric measured in deg | — | Decimal latitude, composed by the loader from whichever form the applicant filed. NULL on the 87 State Plane rows. All 171 populated points fall inside Texas. e.g. 31.739439 | — |
| 41 |
longitude
|
numeric measured in deg | — | Decimal longitude, negative for west, composed from whichever form the applicant filed. NULL on the 87 State Plane rows. e.g. -101.936372 | — |
| 42 |
extract_ts
key
|
timestamp | — | The yyyymmddhhmmss stamp in the file name of the extract this row came from. This is what makes the table a series: an application appears in every extract it was pending for, so filter on this or take its maximum before counting anything. e.g. 2026-08-20 17:08:05 | — |
| 43 |
source_file
|
text | — | Name of the extract file this row was read from. | — |
| 44 |
row_seq
key
|
integer | — | 1-based position of this row within its extract. With extract_ts it is the key. | — |
| 45 |
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. | — |
Code lookups used here
Every coded column in this dataset resolves to a real lookup table, so
a well code of G can be read as what it actually means.
Texas county code 277 values
Read by county_code
The three-digit county code RRC uses, which is also the county's FIPS code. `canonical_value` carries the full five-digit state plus county FIPS, so a county joins straight to Census geography. There are 254 Texas counties and 277 codes; the extras are offshore areas and administrative entries.
Source: Generated from texas.pdq_gp_county
RRC district (printed designation) 14 values
Read by district
The district as the Railroad Commission prints it: 01-06, 6E, 7B, 7C, 08, 8A, 09 and 10, plus 20 for statewide. This is what appears on permits, completions, ST-1 filings and inspection reports. It is not interchangeable with the internal district number. A column holding '11' means District 8A under the internal numbering and nothing at all under this one.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio RRC District 01, administered from the San Antonio district office. |
02 |
District 02 — San Antonio RRC District 02, administered from the San Antonio district office. |
03 |
District 03 — Houston RRC District 03, administered from the Houston district office. |
04 |
District 04 — Corpus Christi RRC District 04, administered from the Corpus Christi district office. |
05 |
District 05 — Kilgore RRC District 05, administered from the Kilgore district office. |
06 |
District 06 — Kilgore RRC District 06, administered from the Kilgore district office. |
6E |
District 6E — Kilgore RRC District 6E, administered from the Kilgore district office. |
7B |
District 7B — Abilene RRC District 7B, administered from the Abilene district office. |
7C |
District 7C — San Angelo RRC District 7C, administered from the San Angelo district office. |
08 |
District 08 — Midland RRC District 08, administered from the Midland district office. |
8A |
District 8A — Midland RRC District 8A, administered from the Midland district office. |
09 |
District 09 — Wichita Falls RRC District 09, administered from the Wichita Falls district office. |
10 |
District 10 — Pampa RRC District 10, administered from the Pampa district office. |
20 |
District 20 — State Wide RRC District 20, administered from the State Wide district office. |
Source: Generated from texas.pdq_gp_district.district_name
Coordinate datum code 3 values
Read by latlong_type_code
Which datum the coordinates on a completion packet were surveyed on. Ignoring this is worth up to about 200 metres of error in West Texas. The pipeline that loads this data resolves the code on the way in, so the warehouse column holds the text below rather than the raw RRC code. Both are recorded here so the original filing can be read either way.
| Code | Means |
|---|---|
1 |
NAD27 North American Datum 1927 (EPSG:4267). |
2 |
NAD83 North American Datum 1983 (EPSG:4269). |
3 |
WGS84 World Geodetic System 1984 (EPSG:4326). |
Source: OilGasDataProcessing process_completions.packetData, inline lat_lon_code map (CMPL packet field 44)
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.
Drilling Permits Pending Approval (with latitudes and longitudes) joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
was filed by
The operator on a pending application, resolved to the P-5 directory — which is how you find out whether the company doing the filing is in good standing, before the permit is granted. All 258 rows across the fifteen extracts held resolve. 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-pending.operator_number = p5-organization-ascii.id
Drilling Permits Pending Approval (with latitudes and longitudes) joins to Completion Information in Data Format on API sequence number = API number — many rows here share a single row there.
proposes work on the completed well
Where a pending application already names an API number, the completion packet for that hole — which makes the application a re-entry, a deepening or an additional completion rather than a new well. Both files fuse the API to eight digits, county then unique, with no state prefix and no dashes, so they compare directly. 104 of the 258 rows carry an API number at all; 31 of those 104 have a completion packet. The 154 without an API are applications for wells that do not exist yet, so their absence is the answer rather than a miss. All 104 do resolve to the wellbore database, but that file keeps the API dashed or in halves and has no fused column to join against.
drilling-permits-pending.api_sequence_number = completion-information-data-format.api_no
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- Delimited Separated text, usually with an unusual delimiter such as a brace.
- RRC publishes
- Updated twice a day (Twice daily, 11:30 am and 5:30 pm.)
- EZRRC re-ingests
- Nightly
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.dp_wellbore_pending
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.