API v1 · Stable

Legal Land Description API for Developers

Convert PLSS township, range, and section to GPS coordinates with simple HTTP requests. Batch processing, autocomplete suggestions, and map tile overlays. Supports 30+ states and all 37 principal meridians.

Get API Key →
Convert LLD to Coordinates
// npm install townshipamerica
import { TownshipClient } from 'townshipamerica'

const client = new TownshipClient({ apiKey: 'your_api_key' })
const result = await client.search('14S 15E 6th Meridian')
console.log(result.latitude, result.longitude)
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.

Two ways to get an API key:

  • Standalone API tiers (Build, Scale, Enterprise) — pay per endpoint based on volume. Pick this if you only need the API.
  • Pro+ ($100/mo) or Business plans — bundled API access (1K calls/mo per endpoint, 10K maps tiles) plus the full web app, mobile, and MCP server.

See pricing below.

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.

GET/search/coordinates
Autocomplete API

Smart Suggestions

Real-time suggestions as users type legal descriptions.

GET/autocomplete/legal-location
Maps API

Map Tiles API

PLSS grid overlay tiles for your mapping applications.

Tile URL Pattern

https://maps.townshipamerica.com/{layer}/{z}/{x}/{y}.mvt?api_key=...
Available Layers
State Grid Layers Label Layers
All PLSS Statestwpfirst-divisionsecond-divisiontwp_labelfirst_division_labelsecond_division_label
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 your Township America API key — whether from a standalone API plan or bundled with Pro+ ($100/mo) and Business. Quota and rate limits follow whichever plan your key belongs to.

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
land_report Federal Land Report — BLM ownership, mineral rights, water rights

Prerequisites

  • A Township America API key — either from a standalone API plan (Build / Scale / Enterprise) or bundled with Pro+ or Business. Grab one from your dashboard.
  • 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-server"],
      "env": {
        "TA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Replace your_api_key_here with your Pro+ 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-server"],
      "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-server"],
          "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-server"],
      "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 plan. Pro+/Business bundled access is 1,000 calls/month per endpoint. Standalone tiers go up to 100,000+/mo. Upgrade your plan below 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-server 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. Alaska, Hawaii, Texas, and some eastern states use different land survey systems and may not be in our database. Use the validate_description tool first 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

Simple, predictable pricing.

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
Get Started
Most Popular

Scale

For production apps

$100 /month

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

Enterprise

For high-volume needs

$500 /month

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

Frequently Asked Questions

Is there a free PLSS API?

Yes. Township America offers a free tier with a limited number of requests per month — enough to build and test your integration before committing to a paid plan. 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.

Get API Key