BLM National Mining Claims (MLRS) Scraper avatar

BLM National Mining Claims (MLRS) Scraper

Pricing

from $8.32 / 1,000 results

Go to Apify Store
BLM National Mining Claims (MLRS) Scraper

BLM National Mining Claims (MLRS) Scraper

Scrape US BLM national mining claims (MLRS): serial number, claim name, type (lode/placer/mill/tunnel), disposition, recorded acres, PLSS legal description, state and map centroid. Filter by state, type, status, keyword and recorded date. JSON, CSV or Excel.

Pricing

from $8.32 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

BLM National Mining Claims (MLRS) Scraper

BLM National Mining Claims (MLRS) Scraper

Here is one real result, with every field the actor returns:

{
"serialNumber": "NV105216280",
"claimName": "WR 195",
"claimType": "Lode Claim",
"disposition": "Active",
"claimStatusLayer": "active",
"isActive": true,
"state": "NV",
"recordedAcres": 20.66,
"legalDescription": "NV 21 0450N 0700E 032 A NWNE|NV 21 0450N 0700E 032 A SWNE|NV 21 0450N 0700E 032 A NENE|NV 21 0450N 0700E 032 A SENE|NV 21 0450N 0700E 033 A Government Lot 4|NV 21 0450N 0700E 033 A NWNW",
"legalDescriptionParts": [
"NV 21 0450N 0700E 032 A NWNE",
"NV 21 0450N 0700E 032 A SWNE",
"NV 21 0450N 0700E 032 A NENE",
"NV 21 0450N 0700E 032 A SENE"
],
"meridian": "21",
"township": "0450N",
"range": "0700E",
"section": "032",
"createdDate": "2021-01-25",
"modifiedDate": "2024-10-07",
"latitude": 41.745461,
"longitude": -114.043913,
"geometry": null,
"legacyCaseNumber": null,
"caseTypeCode": "384101",
"blmProductLabel": "Lode Claim",
"objectId": 1,
"recordId": "803391412212129792",
"detailSearchUrl": "https://mlrs.blm.gov/s/case-search?serial=NV105216280",
"source": "BLM Mineral & Land Records System (MLRS), National Mining Claims",
"observedAt": "2026-08-15T02:34:59.110Z"
}

The most complete BLM mining claims scraper available. It returns every field the BLM Mineral and Land Records System (MLRS) exposes for each claim, from serial number, claim name, and type to disposition, recorded acres, the full PLSS legal description, and the map centroid, plus an optional boundary polygon, and gives you nine filters to target exactly the claims you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor queries the BLM Mineral and Land Records System (MLRS) National Mining Claims layers, applies the filters you pass, and writes one normalized record per claim to the run's dataset. Each record carries the BLM case serial number, claim name, claim type, disposition, recorded acres, the full PLSS legal description (with each aliquot part split into an array), the meridian/township/range/section, created and modified dates, and the claim's map centroid latitude and longitude.

You can pull active claims, closed claims, or both, filter by state, claim type, disposition, name keyword, recording date range, and acreage, or look up exact serial numbers. Turn on includeGeometry to also get the full claim boundary polygon as GeoJSON.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 active mining claims in Nevada.

{
"claimStatus": "active",
"states": ["NV"],
"maxRecords": 10,
"includeGeometry": false
}

Every input is optional. Add nameKeyword (for example LITHIUM), a recordedFrom date to catch new stakings, or serialNumbers to look up exact cases.

Input reference

FieldTypeRequiredDefaultDescription
claimStatusenumnoactiveWhich layer to pull: active (still on the books), closed, or both.
statesstring[]no["NV"]Two-letter administrative state codes, for example NV, AZ, CA, CO.
claimTypesstring[]no(all)Limit to certain claim types: Lode Claim, Placer Claim, Mill Site, Tunnel Site.
dispositionsstring[]no(all)Filter by case disposition exactly as BLM records it, for example Active, Closed, Void, Relinquished.
nameKeywordstringno(empty)Only claims whose name contains this text, for example GOLD, SILVER, LITHIUM, or a project name.
serialNumbersstring[]no(empty)Look up exact BLM case serial numbers directly, for example NV105216280.
recordedFromstringno(empty)Only claims recorded on or after this date (YYYY-MM-DD). Best way to catch newly staked claims.
recordedTostringno(empty)Only claims recorded on or before this date (YYYY-MM-DD).
minRecordedAcresintegerno(none)Only claims with at least this many recorded acres.
maxRecordedAcresintegerno(none)Only claims with at most this many recorded acres.
includeGeometrybooleannofalseAlso return the full claim boundary polygon (GeoJSON) in addition to the map centroid.
maxRecordsintegerno10Stop after this many claims.

Filters combine with logical AND.

Output reference

One dataset item per mining claim. Types: string, number, integer, boolean, string[], object, or null when the source value is absent.

FieldTypeDescription
serialNumberstringBLM case serial number (unique per claim).
claimNamestringClaim name as recorded.
claimTypestringClaim type, for example Lode Claim, Placer Claim, Mill Site, Tunnel Site.
dispositionstringCase disposition, for example Active, Closed, Void.
claimStatusLayerstringWhich layer the record came from: active or closed.
isActivebooleanWhether the claim is on the active layer.
statestringTwo-letter administrative state code.
recordedAcresnumberRecorded acreage of the claim.
legalDescriptionstringFull PLSS legal description, aliquot parts joined by `
legalDescriptionPartsstring[]The legal description split into individual aliquot parts.
meridianstringPLSS principal meridian code.
townshipstringPLSS township.
rangestringPLSS range.
sectionstringPLSS section.
createdDatestringDate the case was recorded in MLRS (YYYY-MM-DD).
modifiedDatestringDate the case was last modified (YYYY-MM-DD).
latitudenumberLatitude of the claim centroid.
longitudenumberLongitude of the claim centroid.
geometryobjectFull boundary polygon as GeoJSON, only with includeGeometry, else null.
legacyCaseNumberstringLegacy BLM case number when present.
caseTypeCodestringBLM case type code.
blmProductLabelstringBLM product label for the claim type.
objectIdintegerMLRS object id for the feature.
recordIdstringMLRS record id.
detailSearchUrlstringMLRS case-search URL for this serial number.
sourcestringSource label for the MLRS National Mining Claims layer.
observedAtstringISO 8601 timestamp of when the record was collected.

If no claims match the filters, the actor writes a single item with a populated error field and does not charge for it.

Example output record

Real record from a live run (input {"claimStatus":"active","states":["NV"]}):

{
"serialNumber": "NV105216283",
"claimName": "WR 198",
"claimType": "Lode Claim",
"disposition": "Active",
"claimStatusLayer": "active",
"isActive": true,
"state": "NV",
"recordedAcres": 20.66,
"meridian": "21",
"township": "0450N",
"range": "0700E",
"section": "032",
"createdDate": "2021-01-25",
"modifiedDate": "2024-10-07",
"latitude": 41.743822,
"longitude": -114.051869,
"caseTypeCode": "384101",
"blmProductLabel": "Lode Claim",
"recordId": "803393529421299712",
"detailSearchUrl": "https://mlrs.blm.gov/s/case-search?serial=NV105216283",
"observedAt": "2026-08-15T02:34:59.110Z"
}

Run via API and CLI

Start a run and read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~blm-mining-claims-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"claimStatus":"active","states":["NV","AZ"],"nameKeyword":"LITHIUM","maxRecords":50}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~blm-mining-claims-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"states":["CA"],"recordedFrom":"2026-01-01","includeGeometry":true,"maxRecords":100}'

Apify CLI:

apify call scrapers_lat/blm-mining-claims-scraper \
--input '{"serialNumbers":["NV105216280"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. Each mining claim record bills on the result event. See the pricing tab for the current per-result price.
  • No charge on failure. If no claims match, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxRecords.
  • Geometry adds payload, not events. includeGeometry returns larger polygon records but is billed on the same result event as any other claim.

FAQ and troubleshooting

How do I catch newly staked claims? Set recordedFrom to a recent date. Only claims recorded in MLRS on or after that date are returned. Combine with a state and a nameKeyword to watch a mineral or project.

What is the difference between active, closed, and both? active returns claims still on the books, closed returns closed cases, and both returns either. Set it with claimStatus.

How do I look up a specific claim? Pass its BLM case serial number in serialNumbers, for example NV105216280. The filters are ignored when serial numbers are given.

What does the legal description mean? It is the PLSS aliquot description of the claim's land (meridian, township, range, section, and quarter parts). legalDescriptionParts splits it into individual entries for easier parsing.

A run returned an error record. Why? No claims matched the filter combination (for example a keyword or acreage range with no hits). Loosen the filters. These runs are not charged.

Is this an official BLM tool? No. This actor is independent and is not affiliated with the Bureau of Land Management. It reads only data published in the public MLRS system. Use it in accordance with BLM terms and applicable law.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the Bureau of Land Management. Accesses only data publicly available in the BLM MLRS system. Use in accordance with BLM terms of use.