Mapped Well Locations (Surface)
Queryable Shapefile Has coordinates
Where 1.38 million Texas wells are, at the surface, with the API number.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Well Layers by County, 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.
What this is
A latitude and longitude for every well the Commission has mapped, keyed on the API number every other dataset here is keyed on. 1,379,242 surface holes across all 255 county packages, federal offshore included.
This is the piece the rest of the catalogue was missing. The API sheet says which lease a well belongs to; the wellbore files say how deep it is, who drilled it and when it was plugged; the proration schedules say what it is allowed to produce. None of them says where it is. RRC has been publishing that all along, inside the county shapefile packages, and it is here as ordinary rows.
The coordinate is given twice, as RRC gives it. LONG83/LAT83 are NAD83, which is what web maps and modern GIS want and what the download here uses for GeoJSON. LONG27/LAT27 are NAD27, the datum the published shapefile is actually on, kept so that anyone checking this against RRC's own file is comparing like with like. The two differ by roughly 20 metres.
What you can do with it
Put a million Texas wells on a map, or attach a coordinate to any API-keyed dataset on this site -- permits, completions, production, plugging -- without going near a shapefile.
Gotchas
A surface hole is where the well starts, not where it produces. For a horizontal well that is often a mile or more from the perforated interval; the bottom-hole dataset has the other end, and the well path dataset says which wells have one.
1,004,128 of these 1,379,242 wells find a row in the API-to-lease sheet. The 375,114 that do not are mapped points RRC has not tied to a current lease -- old, plugged or reassigned -- so this is not a substitute for that sheet, and neither is a substitute for this.
RELIAB is a positional-reliability code and RRC does not publish the code list in the package or its metadata. The values in use are 15 (758,285 wells), 40 (249,792), 55 (196,520), 50 (84,363), 30, 10, 20 and 60. Rather than guess at meanings, this site reports the code as published; treat it as a grouping, not a scale, until RRC documents it.
One point of 2,775,295 is outside Texas -- a bottom hole filed in Loving County at -108.0, which is in New Mexico. It is loaded as published rather than quietly corrected.
Record layout
11 columns.
gis_well_surface
11 columns
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
county_code
|
text | — | The three-digit county code, taken from the name of the package this row came out of -- well001s.dbf is county 001. 'FED' for the federal offshore bundle, which is a real part of the statewide layer: merging only the numeric counties silently drops every well in federal waters and still looks like a complete Texas layer. | — |
| 2 |
surface_id
|
bigint | — | RRC's own integer key for this mapped point, and the spine of the family: texas.gis_well_bottom and texas.gis_well_path both point back at it. 1,395,998 of 1,396,053 bottom holes resolve against it. | — |
| 3 |
symnum
|
integer | — | The symbol number RRC's map system draws this point with. It encodes well type and status and its meanings are in the digital map user's guide rather than in the file; reported as published. | — |
| 4 |
api
|
text | — | The eight-digit API number, county then unique -- '00130641'. The same eight digits texas.api_well_map.api_no, texas.permits and the wellbore files carry, which is what makes a coordinate joinable to everything else on this site. 1,004,128 of the 1,379,242 surface holes find a row in the API-to-lease sheet. | — |
| 5 |
reliab
|
text | — | RRC's positional-reliability code, two characters. The code list is not published in the package or in its ESRI metadata, so no labels are offered here rather than guessed ones. The values in use, measured 2026-08-23: 15 on 758,285 wells, 40 on 249,792, 55 on 196,520, 50 on 84,363, then 30, 10, 20 and 60. Treat it as a grouping, not a scale. | — |
| 6 |
long27
|
double precision | — | Decimal degrees on NAD27. RRC writes the coordinate into the shapefile's ATTRIBUTE table twice, once on each datum, so both are carried here rather than one being derived from the other. NAD27 is the datum the published shapefile is actually on -- its .prj says GCS_North_American_1927 -- so this is the pair to use when checking this table against RRC's own file. | — |
| 7 |
lat27
|
double precision | — | Decimal degrees on NAD27. RRC writes the coordinate into the shapefile's ATTRIBUTE table twice, once on each datum, so both are carried here rather than one being derived from the other. See long27. Roughly 20 metres from the NAD83 pair beside it. | — |
| 8 |
long83
|
double precision | — | Decimal degrees on NAD83. RRC writes the coordinate into the shapefile's ATTRIBUTE table twice, once on each datum, so both are carried here rather than one being derived from the other. This is the pair the map preview and the GeoJSON download use, because NAD83 is within a metre of WGS84 and is what web mapping expects. Negative west of Greenwich; Texas runs about -106.6 to -93.5. | — |
| 9 |
lat83
|
double precision | — | Decimal degrees on NAD83. RRC writes the coordinate into the shapefile's ATTRIBUTE table twice, once on each datum, so both are carried here rather than one being derived from the other. See long83. Texas runs about 25.8 to 36.5. | — |
| 10 |
wellid
|
text | — | The well number within the county, as RRC's map system holds it -- the 'unique' half of the API without the county prefix. Five characters. | — |
| 11 |
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.
Mapped Well Locations (Surface) joins to Statewide API Data (dBase) on API = API number — many rows here share a single row there.
is the well leased as
From a coordinate to a lease. This is the join the catalogue was missing: the API sheet turns an API number into a lease, an operator, a field and a permit, and this turns it into a place. 1,004,128 of the 1,379,242 mapped surface holes find a row. The 375,114 that do not are points RRC has mapped and not tied to a current lease -- old, plugged or reassigned wells -- so neither table is a substitute for the other, and a left join is the right one in both directions. Both columns hold the same eight digits, county then unique, as text. No cast and no padding.
mapped-well-surface-locations.api = statewide-api-data-dbase.api_no
Mapped Well Locations (Surface) joins to Mapped Well Locations (Bottom Hole) on Surface ID — one row here matches many rows there.
starts at the surface hole
The two ends of the same well. A well with one bottom has one row on each side; a sidetrack, a re-entry or a multilateral has several bottoms against one surface. 1,395,998 of the 1,396,053 bottom holes find their surface hole. The 55 that do not are RRC's own data, not a key problem -- surface_id is the Commission's internal id for the point and both sides are integers, so there is no cast, no padding and nothing to normalise. This is the edge that measures a lateral: the surface coordinate and the bottom coordinate are both here, so the distance between them is a subtraction.
mapped-well-bottom-holes.surface_id = mapped-well-surface-locations.surface_id
Mapped Well Locations (Surface) joins to Mapped Well Paths on Surface ID — one row here matches many rows there.
runs from the surface hole
187,183 of the 187,229 mapped paths find their surface hole. Integers on both sides. A well with no row in the path table is not necessarily vertical; it is a well RRC has not mapped a path for.
mapped-well-paths.surface_id = mapped-well-surface-locations.surface_id
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- Shapefile ArcView shapefile — several files that must be kept together.
- RRC publishes
- Updated twice a week (Twice a week, with the county shapefile packages.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.gis_well_surface
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.