API v1 · Stable

Legal Land Description API for Developers

Convert PLSS township, range, and section, or Texas abstract, block, and survey descriptions, to GPS coordinates with simple HTTP requests. Batch processing, autocomplete, and map tile overlays for PLSS grids plus Texas land surveys. New: energy, federal land, and Texas parcel reports as JSON, with matching vector tile bundles.

Convert LLD to Coordinates
// npm install townshipamerica
import { TownshipClient } from 'townshipamerica'

const client = new TownshipClient({ apiKey: 'your_api_key' })

// PLSS (30+ states)
const plss = await client.search('14S 15E 6th Meridian')

// Texas TXSS (abstract / block / survey)
const texas = await client.search('A-175 Reeves County')
console.log(texas.features[0].properties.survey_system)
Powering land data workflows in
Oil & Gas
Real Estate
Insurance
Agriculture
Getting Started

Quick Start

Start converting legal land descriptions to GPS coordinates in under 5 minutes.

1

Create an Account

Sign up at townshipamerica.com/app and navigate to your account settings.

2

Get Your API Key

Generate an API key from your dashboard. Keep it secure, it's your access token.

Official SDKs Available

Install the official client for your language, full types, batch endpoints, and error handling included.

npm install townshipamerica
npm →
pip install townshipamerica
PyPI →
3

Make Your First Request

Use your API key to convert a legal land description:

terminal
curl "https://developer.townshipamerica.com/search/legal-location?location=14S+15E+6th+Meridian" \
  -H "X-API-Key: your_api_key"

Code Examples

cURL
curl "https://developer.townshipamerica.com/search/legal-location?location=14S+15E+6th+Meridian" \
  -H "X-API-Key: 1234567890abcdefghij"
TypeScript SDK npm →
// npm install townshipamerica
import { TownshipClient } from 'townshipamerica'

const client = new TownshipClient({ apiKey: '1234567890abcdefghij' })
const result = await client.search('14S 15E 6th Meridian')
console.log(result.latitude, result.longitude)
Python SDK PyPI →
# pip install townshipamerica
from townshipamerica import TownshipAmerica

client = TownshipAmerica(api_key="your_api_key")
result = client.search("14S 15E 6th Meridian")
print(result.features[0].properties)

Try It Now

Live Demo
GET/search/legal-location?location=NENE%2025%205N%2030E%20Mount%20Diablo%20Meridian
Response
Response will appear here...
Security

Authentication

All API requests require authentication using your API key.

Include your API key in the request header:

X-API-Key: your_api_key

Base URL:https://developer.townshipamerica.com

Convert Coordinates to Legal Description

Get the legal land description for any GPS coordinate. Returns PLSS inside PLSS states and Texas TXSS inside Texas.

GET/search/coordinates
Autocomplete API

Smart Suggestions

Real-time suggestions as users type PLSS or Texas TXSS descriptions.

GET/autocomplete/legal-location
Maps API

Map Tiles API

PLSS grid and Texas land survey (abstract / block / survey) overlay tiles for your mapping applications. List available layers with GET /layers.json.

Tile URL Pattern

https://maps.townshipamerica.com/{layer}/{z}/{x}/{y}.mvt?api_key=...

Layer catalog (TileJSON URLs + source-layer names):

curl "https://maps.townshipamerica.com/layers.json?api_key=YOUR_API_KEY"

MapLibre GL JS, Texas land surveys

map.addSource('texas-land-surveys', {
  type: 'vector',
  tiles: [
    'https://maps.townshipamerica.com/texas-land-surveys/{z}/{x}/{y}.mvt' +
    '?api_key=YOUR_API_KEY'
  ],
  minzoom: 4,
  maxzoom: 14
});

map.addLayer({
  id: 'texas-land-surveys-fill',
  type: 'fill',
  source: 'texas-land-surveys',
  'source-layer': 'texas-land-surveys',
  paint: {
    'fill-color': '#4a7c59',
    'fill-opacity': 0.15
  }
});
Available Layers
State Grid Layers Label Layers source-layer
All PLSS Statestwpfirst-divisionsecond-divisiontwp_labelfirst_division_labelsecond_division_labeltwpfirst-divisionsecond-division
Texas (TXSS)texas-land-surveystexas-land-surveys-labelstexas-land-surveys

Legacy slug tx_otls still resolves to texas-land-surveys.

Energy API

Energy Parcel Reports

Wells, operators, federal leases, ONRR royalties, orphaned wells, pipelines, FracFocus disclosures, and siting constraints for any parcel. legal_location accepts both grids: PLSS legal descriptions (aliquot wording included) and Texas abstract/block/survey descriptions.

GET/energy/report
GET/energy/summary
GET/energy/wells
GET/energy/operators
GET/energy/leases
GET/energy/royalties
GET/energy/orphaned-wells
GET/energy/pipelines
GET/energy/fracfocus
GET/energy/constraints

FracFocus rows require "Data: FracFocus.org" attribution; NREL siting scores are CC-BY 4.0. An out-of-range radius_mi is a 400, never a silent fallback.

Federal Land API

Federal Land Parcel Reports

A 15-layer federal land report for any PLSS tract: surface management, BLM leases and rights-of-way, flood zones, mining claims, wetlands, firesheds, soils, orphaned wells, critical habitat, public access, and wildfire risk. Texas abstract input returns 400 texas_not_supported.

GET/federal-land/report
GET/federal-land/summary
GET/federal-land/surface-management
GET/federal-land/leases
GET/federal-land/geothermal-leases
GET/federal-land/rights-of-way
GET/federal-land/flood-zones
GET/federal-land/mining-claims
GET/federal-land/wetlands
GET/federal-land/firesheds
GET/federal-land/soils
GET/federal-land/orphaned-wells
GET/federal-land/critical-habitat
GET/federal-land/public-access
GET/federal-land/wildfire-risk

Scalar sections (crop_history, elevation) and geometry are include= values on /report, not routes. A layer with no_state_coverage in meta.unavailable has no data in that state at all; an empty array is only an all-clear when the layer is covered.

Texas API

Texas Abstract Reports & RRC Production

GLO leases, pooled units, PSF and state agency lands, RRC wells and pipelines, pending permits, coastal erosion, and lease-level RRC production for any abstract/block/survey tract. PLSS input returns 400 plss_not_supported; an abstract matching more than one county returns 400 ambiguous_location, never a silent first-row pick.

GET/texas/report
GET/texas/summary
GET/texas/state-leases
GET/texas/state-units
GET/texas/psf-lands
GET/texas/state-agency-lands
GET/texas/upland-leases
GET/texas/pipelines
GET/texas/permits
GET/texas/coastal-erosion
GET/texas/wells
GET/texas/production
GET/texas/wells/{api}

Per-well volumes are allocated estimates: RRC reports production by lease, never by well. denominator_basis (time_varying or static) records which denominator produced them, and the decline fit is withheld below R² 0.7.

Energy Tiles API

Vector Tiles

The Energy pack's map layers as vector tiles: state-regulator wells, FracFocus, orphaned wells, pipelines, sage-grouse habitat, solar zones, wind turbines, and federal subsurface minerals. Served from the maps CDN, authenticated with an api_key query parameter.

Tile URL Pattern

https://maps.townshipamerica.com/energy/{archive}/{z}/{x}/{y}.mvt?api_key=... https://maps.townshipamerica.com/energy/{archive}.json?api_key=... (TileJSON)
Available Archives

Every archive's vector source-layer equals the archive name (MapLibre needs it in source-layer). Anything outside this list returns 403.

Archive Source Layer Layer
co_wellsco_wellsColorado wells (ECMC)
co_wells_labelsco_wells_labelsColorado wells (labels)
nd_wellsnd_wellsNorth Dakota wells (DMR)
nd_wells_labelsnd_wells_labelsNorth Dakota wells (labels)
ok_wellsok_wellsOklahoma wells (OCC)
ok_wells_labelsok_wells_labelsOklahoma wells (labels)
wy_wellswy_wellsWyoming wells (WOGCC)
wy_wells_labelswy_wells_labelsWyoming wells (labels)
nm_wellsnm_wellsNew Mexico wells (OCD)
nm_wells_labelsnm_wells_labelsNew Mexico wells (labels)
fracfocusfracfocusFracFocus chemical disclosures
fracfocus_labelsfracfocus_labelsFracFocus (labels)
usgs_orphaned_wellsusgs_orphaned_wellsUSGS documented orphaned wells
usgs_orphaned_wells_labelsusgs_orphaned_wells_labelsUSGS orphaned wells (labels)
usgs_wind_turbinesusgs_wind_turbinesUSGS wind turbines
usgs_wind_turbines_labelsusgs_wind_turbines_labelsUSGS wind turbines (labels)
sage_grouse_hmasage_grouse_hmaBLM Sage-Grouse habitat management areas
sage_grouse_hma_labelssage_grouse_hma_labelsSage-Grouse HMA (labels)
western_solarwestern_solarBLM Western Solar Plan zones
western_solar_labelswestern_solar_labelsWestern Solar (labels)
nrel_land_of_opportunitynrel_land_of_opportunityNREL Land of Opportunity (CC-BY 4.0)
nrel_land_of_opportunity_labelsnrel_land_of_opportunity_labelsNREL Land of Opportunity (labels)
fed_subsurface_mineralsfed_subsurface_mineralsFederal subsurface mineral estate
fed_subsurface_minerals_labelsfed_subsurface_minerals_labelsFederal subsurface minerals (labels)
og_pipelines_natgasog_pipelines_natgasHIFLD natural gas pipelines
og_pipelines_nglog_pipelines_nglHIFLD NGL pipelines
og_pipelines_crudeog_pipelines_crudeHIFLD crude oil pipelines
tx_pipelinestx_pipelinesTexas RRC T-4 pipelines

The _labels archives are the same footprint rendered as a label layer. Add them as their own source alongside the geometry archive when you want text; the pipeline archives carry their labels inline.

MapLibre Usage
const KEY = "YOUR_API_KEY";
const base = "https://maps.townshipamerica.com/energy";

// State-regulator wells: point archive + companion _labels archive.
// Every archive's source-layer equals the archive name.
map.addSource("co-wells", {
  type: "vector",
  tiles: [`${base}/co_wells/{z}/{x}/{y}.mvt?api_key=${KEY}`],
  minzoom: 0,
  maxzoom: 14
});

map.addLayer({
  id: "co-wells-points",
  type: "circle",
  source: "co-wells",
  "source-layer": "co_wells",
  paint: { "circle-radius": 3, "circle-color": "#b5651d" }
});

// TileJSON works too, and carries the bounds and zoom range
map.addSource("og-pipelines-natgas", {
  type: "vector",
  url: `${base}/og_pipelines_natgas.json?api_key=${KEY}`
});
Federal Land Tiles API

Vector Tiles

The Federal Land pack's map layers as vector tiles: surface management, mining claims, SSURGO soils, firesheds, wildfire risk, and wetlands. Served from the maps CDN, authenticated with an api_key query parameter.

Tile URL Pattern

https://maps.townshipamerica.com/federal-land/{archive}/{z}/{x}/{y}.mvt?api_key=... https://maps.townshipamerica.com/federal-land/{archive}.json?api_key=... (TileJSON)
Available Archives

Every archive's vector source-layer equals the archive name. Anything outside this list returns 403.

Archive Source Layer Layer
surface_managementsurface_managementBLM Surface Management Agency
surface_management_labelssurface_management_labelsSurface management (labels)
mining_claimsmining_claimsBLM MLRS mining claims
mining_claims_labelsmining_claims_labelsMining claims (labels)
nrcs_ssurgo_soilsnrcs_ssurgo_soilsNRCS SSURGO soils
nrcs_ssurgo_soils_labelsnrcs_ssurgo_soils_labelsSSURGO soils (labels)
usfs_fireshedsusfs_fireshedsUSFS firesheds
usfs_firesheds_labelsusfs_firesheds_labelsFiresheds (labels)
usfs_wrcusfs_wrcUSFS Wildfire Risk to Communities
usfs_wrc_labelsusfs_wrc_labelsWildfire risk (labels)
usfws_wetlandsusfws_wetlandsUSFWS National Wetlands Inventory
usfws_wetlands_labelsusfws_wetlands_labelsWetlands (labels)
MapLibre Usage
const KEY = "YOUR_API_KEY";
const base = "https://maps.townshipamerica.com/federal-land";

// Surface management polygons. Every archive's source-layer equals
// the archive name; _labels archives are companion label layers.
map.addSource("surface-management", {
  type: "vector",
  tiles: [`${base}/surface_management/{z}/{x}/{y}.mvt?api_key=${KEY}`],
  minzoom: 0,
  maxzoom: 14
});

map.addLayer({
  id: "surface-management-fill",
  type: "fill",
  source: "surface-management",
  "source-layer": "surface_management",
  paint: { "fill-color": "#3d6b99", "fill-opacity": 0.4 }
});

// TileJSON works too, and carries the bounds and zoom range
map.addSource("usfws-wetlands", {
  type: "vector",
  url: `${base}/usfws_wetlands.json?api_key=${KEY}`
});
Texas Tiles API

Vector Tiles

The Texas pack's map layers as vector tiles: the abstract/block/survey grid, GLO leases and units, PSF lands, RRC wells, permits, pipelines, coastal hazard layers, and the RRC production heatmap. Served from the maps CDN, authenticated with an api_key query parameter.

Tile URL Pattern

https://maps.townshipamerica.com/texas/{archive}/{z}/{x}/{y}.mvt?api_key=... https://maps.townshipamerica.com/texas/{archive}.json?api_key=... (TileJSON)
Available Archives

Every archive's vector source-layer equals the archive name, except the tx_production_grid_* family, whose three archives all share the source-layer tx_production_grid. Anything outside this list returns 403.

Archive Source Layer Layer
texas-land-surveystexas-land-surveysTexas land surveys (abstract / block / survey grid)
texas-land-surveys-labelstexas-land-surveys-labelsTexas land surveys (labels)
tx_otlstx_otlsTexas land surveys (legacy slug)
tx_otls_labelstx_otls_labelsTexas land surveys labels (legacy slug)
tx_leasestx_leasesGLO active O&G leases
tx_leases_labelstx_leases_labelsGLO leases (labels)
tx_glo_unitstx_glo_unitsGLO pooled units
tx_glo_units_labelstx_glo_units_labelsGLO pooled units (labels)
tx_glo_poolingtx_glo_poolingGLO pooling agreements
tx_glo_pooling_labelstx_glo_pooling_labelsGLO pooling (labels)
tx_glo_land_typestx_glo_land_typesGLO land types
tx_glo_land_types_labelstx_glo_land_types_labelsGLO land types (labels)
tx_psf_landstx_psf_landsPermanent School Fund lands
tx_psf_lands_labelstx_psf_lands_labelsPSF lands (labels)
tx_state_agency_landstx_state_agency_landsState agency lands
tx_state_agency_lands_labelstx_state_agency_lands_labelsState agency lands (labels)
tx_upland_leasestx_upland_leasesGLO upland surface leases
tx_upland_leases_labelstx_upland_leases_labelsUpland leases (labels)
tx_non_mineral_leasestx_non_mineral_leasesGLO non-mineral leases
tx_non_mineral_leases_labelstx_non_mineral_leases_labelsNon-mineral leases (labels)
tx_hard_mineralstx_hard_mineralsGLO hard mineral leases
tx_hard_minerals_labelstx_hard_minerals_labelsHard minerals (labels)
tx_wells_surfacetx_wells_surfaceRRC wells (surface hole)
tx_wells_surface_labelstx_wells_surface_labelsRRC surface wells (labels)
tx_wells_bottomtx_wells_bottomRRC wells (bottom hole)
tx_wells_bottom_labelstx_wells_bottom_labelsRRC bottom-hole wells (labels)
tx_uic_wellstx_uic_wellsRRC UIC injection/disposal wells
tx_uic_wells_labelstx_uic_wells_labelsUIC wells (labels)
tx_permitstx_permitsRRC approved drilling permits (W-1)
tx_permits_labelstx_permits_labelsDrilling permits (labels)
tx_pipelinestx_pipelinesRRC T-4 pipelines
tx_bay_tractstx_bay_tractsGLO bay tracts
tx_bay_tracts_labelstx_bay_tracts_labelsBay tracts (labels)
tx_coastal_leasestx_coastal_leasesGLO coastal leases
tx_coastal_leases_labelstx_coastal_leases_labelsCoastal leases (labels)
tx_oyster_leasestx_oyster_leasesOyster leases
tx_oyster_leases_labelstx_oyster_leases_labelsOyster leases (labels)
tx_critical_erosiontx_critical_erosionGLO critical erosion areas
tx_critical_erosion_labelstx_critical_erosion_labelsCritical erosion (labels)
tx_shoreline_change_ratestx_shoreline_change_ratesShoreline change rates
tx_shoreline_change_rates_labelstx_shoreline_change_rates_labelsShoreline change (labels)
tx_flood_hazardtx_flood_hazardFEMA flood hazard (Texas)
tx_flood_hazard_labelstx_flood_hazard_labelsFlood hazard (labels)
tx_production_grid_countytx_production_gridRRC production heatmap (county rollup)
tx_production_grid_blocktx_production_gridRRC production heatmap (block rollup)
tx_production_grid_abstracttx_production_gridRRC production heatmap (abstract)
Zoom-Banded Rollup Family

The RRC production heatmap ships as three archives covering different zoom bands (abstract geometry is far too dense to draw at state scale). Add all three as separate sources and let the zoom ranges hand off; a client that adds only the abstract archive sees an empty map below z9. All three share the source-layer tx_production_grid.

Zoom Archive Granularity
z4-7tx_production_grid_countyCounty
z7-9tx_production_grid_blockBlock
z9+tx_production_grid_abstractAbstract

The _labels archives are the same footprint rendered as a label layer. tx_pipelines is the exception: its archive carries both geometry and labels.

MapLibre Usage
const KEY = "YOUR_API_KEY";
const base = "https://maps.townshipamerica.com/texas";

// The RRC production heatmap is a zoom-banded family: add all three
// sources. They SHARE the source-layer "tx_production_grid" — a client
// that adds only the abstract archive sees an empty map below z9.
map.addSource("txprod-county", {
  type: "vector",
  tiles: [`${base}/tx_production_grid_county/{z}/{x}/{y}.mvt?api_key=${KEY}`],
  minzoom: 4,
  maxzoom: 7
});
map.addSource("txprod-block", {
  type: "vector",
  tiles: [`${base}/tx_production_grid_block/{z}/{x}/{y}.mvt?api_key=${KEY}`],
  minzoom: 7,
  maxzoom: 9
});
map.addSource("txprod-abstract", {
  type: "vector",
  tiles: [`${base}/tx_production_grid_abstract/{z}/{x}/{y}.mvt?api_key=${KEY}`],
  minzoom: 9,
  maxzoom: 14
});

map.addLayer({
  id: "txprod-abstract-fill",
  type: "fill",
  source: "txprod-abstract",
  "source-layer": "tx_production_grid", // shared across all three archives
  minzoom: 9,
  paint: { "fill-color": "#fd8d3c", "fill-opacity": 0.55 }
});

// Every other archive's source-layer equals the archive name.
// TileJSON works too, and carries the bounds and zoom range
map.addSource("texas-land-surveys", {
  type: "vector",
  url: `${base}/texas-land-surveys.json?api_key=${KEY}`
});
MCP Server

AI Agent Integration

Connect Claude Desktop, Cursor, Continue, or Cline directly to the PLSS API using the Model Context Protocol. Let AI agents convert legal land descriptions, look up coordinates, and export GeoJSON boundaries with your Township America API key.

The MCP server uses a standalone Township America API key from your dashboard. Business unlocks MCP access; quota and rate limits follow your API subscription tier (Build / Scale / Enterprise).

Available Tools (6)

Tool Description
plss_to_coordinates Convert a PLSS legal land description to GPS coordinates
coordinates_to_plss Find the PLSS description for GPS coordinates
plss_to_geojson Get the GeoJSON boundary polygon for a PLSS description
validate_description Validate and normalize a PLSS description (local, no API call)
batch_convert Convert up to 1,000 PLSS descriptions in one request

Prerequisites

  • , A standalone Township America API key (Build / Scale / Enterprise) from your dashboard. Business unlocks MCP server access.
  • , Node.js 22+ (for npx)

Connect from Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/claude/claude_desktop_config.json (Linux):

claude_desktop_config.json
{
  "mcpServers": {
    "townshipamerica": {
      "command": "npx",
      "args": ["-y", "townshipamerica-mcp"],
      "env": {
        "TA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Replace your_api_key_here with your Township America API key. Restart Claude Desktop after saving.

Connect from Cursor

Open Cursor Settings → MCP, or edit ~/.cursor/mcp.json:

mcp.json
{
  "mcpServers": {
    "townshipamerica": {
      "command": "npx",
      "args": ["-y", "townshipamerica-mcp"],
      "env": {
        "TA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Connect from Continue

Add to ~/.continue/config.json:

config.json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "townshipamerica-mcp"],
          "env": {
            "TA_API_KEY": "your_api_key_here"
          }
        }
      }
    ]
  }
}

Connect from Cline

Open Cline settings, navigate to MCP Servers, and add:

cline_mcp_settings.json
{
  "mcpServers": {
    "townshipamerica": {
      "command": "npx",
      "args": ["-y", "townshipamerica-mcp"],
      "env": {
        "TA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Troubleshooting

"TA_API_KEY environment variable is not set"

Add TA_API_KEY to the env block in your MCP config file, not as a shell environment variable. The MCP host passes env vars from the config.

"Quota exceeded" error

Your quota depends on your standalone API tier. Build = 1,000 calls/month per endpoint; Scale and Enterprise go higher. Upgrade at /app/api or wait for the monthly reset.

Server not appearing in your AI assistant

Restart the AI assistant after editing the config file. Verify your config is valid JSON. Run npx townshipamerica-mcp in a terminal with TA_API_KEY set to check for startup errors.

Tool returns "Not found" for a valid description

PLSS covers 30 US states. Texas uses the TXSS survey system (abstract, block, and survey descriptions) and is fully supported. Alaska, Hawaii, and some eastern states may not resolve. Use the validate_description MCP tool to check your format.

Reference

Error Codes

Code Status Description
400Bad RequestInvalid legal land description
401UnauthorizedMissing or invalid API key
429Too Many RequestsRate limit exceeded
500Server ErrorInternal error — try again

Rate Limits

Rate limits vary by plan tier.

Build

1 req/sec
1,000 req/month

Scale

5 req/sec
10,000 req/month

Enterprise

25 req/sec
100,000 req/month

OpenAPI Specification

Download our OpenAPI 3.0 specification for code generation, testing, and documentation.

openapi.yaml

OpenAPI 3.0 · YAML format

Use with popular tools
Swagger UI Postman Insomnia OpenAPI Generator
Plans

API Pricing

Built for developers integrating US land-location and mapping capabilities. Core APIs are priced per request; the Land Intelligence APIs below are priced per parcel report.

Monthly
Annual Save 2 months

Build

For development & testing

$20 /month

  • 1,000 requests/mo
  • $0.02/request
  • 1/sec rate limit
  • Unlimited API keys
Most Popular

Scale

For production apps

$100 /month

  • 10,000 requests/mo
  • $0.01/request
  • 5/sec rate limit
  • Unlimited API keys

Enterprise

For high-volume needs

$500 /month

  • 100,000 requests/mo
  • $0.005/request
  • 25/sec rate limit
  • Unlimited API keys
Need higher volume? Contact us for enterprise solutions.
Land Intelligence APIs

Priced per parcel report

Go beyond coordinates with parcel-level Energy, Federal Land and Texas intelligence. One report is one parcel's intelligence returned by the API. Tiles and lookups stay on the core request-based plans above.

Parcel-level energy intelligence including wells, leases, royalties, pipelines, split estate, orphaned wells and siting constraints.

Developer

$40 /month
  • 25 parcel reports/mo
  • Unlimited API keys
Most Popular

Professional

$250 /month
  • 250 parcel reports/mo
  • Unlimited API keys

Business

$900 /month
  • 1,000 parcel reports/mo
  • Unlimited API keys

Enterprise

Custom
  • Custom parcel reports/mo
  • Custom keys, limits and terms
Talk to us

Allowances are hard stops: when a key reaches its monthly reports it pauses until the next month, and you can move up a tier at any time. There is no per-report overage. Annual billing saves two months.

Enterprise

High-volume, embedded and white-label use

Use Township America to power a product you sell. Bulk report generation, redistribution, embedded products, white labeling and custom licensing are set up together under an Enterprise agreement rather than sold off the shelf.

  • High-volume and batch report generation
  • Embedded and white-label products
  • Redistribution and commercial licensing
  • Custom limits, SLA and support terms
Custom pricing
Talk to us

Self-service plans are for internal professional use and application development.

Township America self-service plans are intended for internal professional use and application development. High-volume automated processing, commercial redistribution, resale, white-label use, embedded products, or use of Township America data as a material component of a third-party commercial product requires an Enterprise agreement.

Talk to us

Frequently Asked Questions

Is there a free PLSS API?

The API is paid, starting at the Build tier ($20/month for 1,000 Search requests). Every plan includes a 30-day money-back guarantee, so you can build and test your integration risk-free before committing. See all plans.

How accurate is the PLSS geocoding?

Professional-grade accuracy sourced directly from BLM survey data. Results include a confidence score so your application can handle edge cases appropriately.

Can I batch convert PLSS descriptions via API?

Yes. The batch endpoint accepts arrays of up to 100 legal descriptions per request, returning coordinates for all of them in a single response. Batch conversion guide.

What response formats are supported?

All endpoints return JSON with GPS coordinates, confidence scores, parsed description components, and optionally GeoJSON geometry for boundary polygons.

Ready to convert legal land descriptions programmatically?

Get your API key and start converting township, range, and section to GPS coordinates in minutes.