BLM National Mining Claims (MLRS) Scraper
Pricing
from $8.32 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
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
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
claimStatus | enum | no | active | Which layer to pull: active (still on the books), closed, or both. |
states | string[] | no | ["NV"] | Two-letter administrative state codes, for example NV, AZ, CA, CO. |
claimTypes | string[] | no | (all) | Limit to certain claim types: Lode Claim, Placer Claim, Mill Site, Tunnel Site. |
dispositions | string[] | no | (all) | Filter by case disposition exactly as BLM records it, for example Active, Closed, Void, Relinquished. |
nameKeyword | string | no | (empty) | Only claims whose name contains this text, for example GOLD, SILVER, LITHIUM, or a project name. |
serialNumbers | string[] | no | (empty) | Look up exact BLM case serial numbers directly, for example NV105216280. |
recordedFrom | string | no | (empty) | Only claims recorded on or after this date (YYYY-MM-DD). Best way to catch newly staked claims. |
recordedTo | string | no | (empty) | Only claims recorded on or before this date (YYYY-MM-DD). |
minRecordedAcres | integer | no | (none) | Only claims with at least this many recorded acres. |
maxRecordedAcres | integer | no | (none) | Only claims with at most this many recorded acres. |
includeGeometry | boolean | no | false | Also return the full claim boundary polygon (GeoJSON) in addition to the map centroid. |
maxRecords | integer | no | 10 | Stop 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.
| Field | Type | Description |
|---|---|---|
serialNumber | string | BLM case serial number (unique per claim). |
claimName | string | Claim name as recorded. |
claimType | string | Claim type, for example Lode Claim, Placer Claim, Mill Site, Tunnel Site. |
disposition | string | Case disposition, for example Active, Closed, Void. |
claimStatusLayer | string | Which layer the record came from: active or closed. |
isActive | boolean | Whether the claim is on the active layer. |
state | string | Two-letter administrative state code. |
recordedAcres | number | Recorded acreage of the claim. |
legalDescription | string | Full PLSS legal description, aliquot parts joined by ` |
legalDescriptionParts | string[] | The legal description split into individual aliquot parts. |
meridian | string | PLSS principal meridian code. |
township | string | PLSS township. |
range | string | PLSS range. |
section | string | PLSS section. |
createdDate | string | Date the case was recorded in MLRS (YYYY-MM-DD). |
modifiedDate | string | Date the case was last modified (YYYY-MM-DD). |
latitude | number | Latitude of the claim centroid. |
longitude | number | Longitude of the claim centroid. |
geometry | object | Full boundary polygon as GeoJSON, only with includeGeometry, else null. |
legacyCaseNumber | string | Legacy BLM case number when present. |
caseTypeCode | string | BLM case type code. |
blmProductLabel | string | BLM product label for the claim type. |
objectId | integer | MLRS object id for the feature. |
recordId | string | MLRS record id. |
detailSearchUrl | string | MLRS case-search URL for this serial number. |
source | string | Source label for the MLRS National Mining Claims layer. |
observedAt | string | ISO 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:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "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
resultevent. 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
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon 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.
includeGeometryreturns larger polygon records but is billed on the sameresultevent 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.
Related scrapers
- USAspending Federal Award Scraper: US federal prime awards.
- SEC EDGAR Company Filings Scraper: SEC filings by ticker or CIK.
- Grants.gov Opportunity Scraper: US federal grant opportunities.
- Federal Register Document Scraper: US Federal Register documents.
- EPA ECHO Facility Compliance Scraper: EPA-regulated facility compliance and enforcement.
- Redfin Real Estate Listings & Agent Contacts Scraper: Redfin US homes with agent contacts.
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.
