Upstream API Client Interface

Filter and download oil & gas well data, locations, and cost information

Data Region
API Endpoint
Location Filters
Well Filters
Cost Filters
Range Filters
Perf Interval (ft) -
First Prod Year -
Spud Date -
AFE Date -
Product Filters
Product
Date Range -
Value ($) -
Volume -
0 records returned

Export to CSV

Download matching records as a CSV file. Exports stop automatically when your remaining monthly quota is reached.

Preparing export...
API Key

The Canadian datasets are served by the OData v2 API, which accepts API keys only — your browser login is not accepted on these endpoints. Paste a key from your account page. Keys are never displayed after creation, so if you don't have it, create a new one.

Key
Dataset

Find a Well

Most Canadian datasets are keyed by ca_well_id. Search by UWI, licence number, well name or operator, then click a result to load it into the filters below.

Province
Field
Filters

Paging
Rows
Skip
0 records returned

Export to CSV — Canada

Downloads every matching row for the selected dataset and filters, paging through the API until it runs out of rows or hits the cap below. For whole-province extracts, use the Canada zips in the v2 bulk downloads section instead — they don't count against your API call quota.

Max rows
Preparing export…

Reading Canadian Data

Identifiers. Wells are keyed by ca_well_id (e.g. CA-BC-ed87fcbbe70e133b7330), not an API number — the US and Canadian universes share no identifier and must not be joined. uwi_raw (e.g. 00/08-02-055-16W4/0) contains slashes, so it is a filter value only, never a URL path segment.

Units. Depths are in metres — columns carry an explicit _m suffix. Volumes are already converted to bbl/mcf, and oil_bbl includes condensate.

Formations. Formation names resolve into primary_label (MONTNEY, BLUESKY). formation_code stays numeric for BC, so filtering it by name returns nothing — filter primary_label instead.

Coverage. Reservoir data is effectively BC-only (31,045 BC wells vs 128 in AB), so an empty Alberta result means "not in this source", not "no reservoir".

Required filters. Most datasets require at least one filter so a query can never plan a full-table scan. The panel above names the acceptable fields per dataset and blocks the request before it is sent.

Bulk Table Downloads

Pull entire tables as .csv.gz snapshots. Files are pre-generated nightly and served from object storage, so large downloads don't count against your API call quota or hit the request timeout. Available to Enterprise and legacy-unlimited API plans only.

Loading snapshot manifest…

Bulk Table Downloads — v2 (Full Universe, per region)

Same delivery mechanism as the v1 bulk downloads above, but each file covers an entire region across the full well universe (not just cost-data wells) — ~770K US wells across 11 states plus 711K Canadian wells in Alberta and British Columbia. Each region ships as a single zip, with its largest tables alongside as loose .csv.gz files. Weekly refresh; US permits regenerate nightly.

US zips contain wells, permits, production, casing, surveys, formations, file links and locations; Texas raw lease-level production ships separately as 13 per-RRC-district files. Canada zips contain wells, locations, reservoirs, EUR & decline parameters, operator production rollups and the nine technical datasets (casing, formations, frac/perforations, directional surveys, drilling events, completions/workovers, log runs, fluid analyses, pressure surveys); monthly production and wellbore paths ship separately.

Canada notes. Wells are keyed by ca_well_id, not an API number — the US and Canadian universes share no identifier and must not be joined. Depths are in metres (columns carry an explicit _m suffix); volumes are already converted to bbl/mcf, and oil_bbl includes condensate. Formation names resolve into primary_label; formation_code stays numeric for BC.

Loading v2 manifest…

Data Preview