GETTING STARTED · CONNECT · 7 OF 8

Use the API

Make a request

The API serves exactly what the pages show, as JSON, from https://api.petrora.com. Every call carries an API key from your account page, sent as a bearer token; a new account's free trial covers it.

Your first request

Operators ranked by permits in the last 30 days:

curl "https://api.petrora.com/v1/data/operators/tx?days=30&limit=3"

Each row is the operator's stats record, trimmed here to a few of its fields, and ends with the url of its page:

{
  "days": 30,
  "total": 160,
  "operators": [
    {
      "operatorNumber": 217012,
      "name": "DIAMONDBACK E&P LLC",
      "permits30": 101,
      "prior30": 60,
      "counties90": 4,
      "hzPct365": 100,
      "topCounty365": "MIDLAND",
      "wellsTotal": 11735,
      "lastIssued": "2026-10-27",
      "url": "https://petrora.com/operators/tx/217012"
    }
  ]
}

total is the count before paging, so limit and offset reach every row.

Take the operator number into the next call:

curl "https://api.petrora.com/v1/data/operators/tx/217012"

That is the operator hub: registration, wells by status, counties, formations, permits and production by month, and the last year of permits, each with an API number. A well is one more call, in either form of the number:

curl "https://api.petrora.com/v1/data/wells/42-337-34003"

Every list leads to a record and every record links onward, so the API is navigated the same way the site is.

Where everything is listed

The interactive reference has every endpoint grouped by tag, every parameter with its meaning, every response field, and a try-it client that runs the request from the page. It is generated from the schemas the API validates with, so it is always what the API accepts. The document behind it is at /v1/openapi.json for SDK generators and for assistants that take an OpenAPI file.

The written API reference covers what the reference cannot: how to read the identifiers, why permit windows run on the day a permit appeared, why production is by lease, and how the dates and lags work.

What needs an account

Two things, and a free account is enough: downloading the wells or permits list as CSV, and the watchlist routes. Both take the session's bearer token; the interactive reference has an Authentication box for it.

Where it fits

Spreadsheets that refresh themselves, internal dashboards, a nightly script that checks a territory, a GIS layer that needs the operator of record, a model that needs training data with provenance. Anything that would otherwise mean copying numbers off a page.

Limits and keys

Nothing is anonymous: every call needs a key, and calls are metered against your plan. A new account starts on a free trial bounded by days and by calls, whichever ends first; the account page shows both. The API is in beta; the trial starts when you create your first key, with nothing to request and no credit card. Trial accounts are limited to 120 calls a minute, paid plans to 600, with room for bursts of several times that; the limit exists to stop runaway scripts, not to shape your use.

Getting help

If a response looks wrong or a field you need is missing, write to [email protected] with the request URL.