Build amazing apps with our API
Use our API to build fast and reliable apps across different platforms.
Township America API
Township America provides API endpoints to add legal land description search and grid map visualization into any app you build. Our API endpoints fully support the PLSS grid for the following states: Alabama, Alaska, Arizona, Arkansas, California, Colorado, Florida, Idaho, Illinois, Indiana, Iowa, Kansas, Louisiana, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Mexico, North Dakota, Ohio, Oklahoma, Oregon, South Dakota, Utah, Washington, Wisconsin, and Wyoming.
Simple pricing, flexible plans
Township America offers a simple and flexible pricing model for our API offerings, including Search, Autocomplete, Batch, and Maps. You can choose from three different tiers to fit your requirements. Each tier comes with a limit on concurrent requests and a monthly quota for total API calls. You can choose to pay monthly or annually, and cancel at any time.
Get started quickly with our APIs by following our quick-start guides. These guides provide step-by-step instructions and examples to help you get up and running with our APIs in no time.
If your project requires a customized API or a higher usage limit, don't hesitate to reach out to us . We're here to collaborate and provision the perfect API solution to suit your specific needs.
Search
Geocode, quickly and accurately.
$10/month
Get started today- Access a complete PLSS database covering 30 states.
- Query townships, sections, quarter-sections, quarter-quarter sections, lots, surveys, and more.
- 1 request per second.
- 1,000 requests per month.
Autocomplete
Geocode with smart suggestions.
$10/month
Get started today- Access a complete PLSS database covering 30 states.
- Query townships, sections, quarter-sections, quarter-quarter sections, lots, surveys, and more.
- 1 request per second.
- 1,000 requests per month.
Batch
Geocode large datasets efficiently.
$20/month
Get started today- Access a complete PLSS database covering 30 states.
- Query townships, sections, quarter-sections, quarter-quarter sections, lots, surveys, and more.
- 100 records per request.
- 1 request per second.
- 1,000 requests per month.
Maps
Display legal survey grids in your app.
$10/month
Get started today- Access a complete PLSS database covering 30 states.
- Display ownships, sections, quarter sections, LSDs, and more.
- Deliver maps using our fast, smooth, and customizable vector tiles.
- Unlimited requests per second.
- 10,000 requests per month.
How to use the Search API
Using the Search API, you can convert legal land descriptions to geographic coordinates. You can also find the legal land location associated with a pair of longitude and latitude. The API accepts input parameters as query strings and returns a GeoJSON response in return.
Convert legal land description to geographic coordinates (longitude and latitude)
- Base URL:
https://developer.townshipamerica.com
- Endpoint:
GET /search/legal-location
- Parameters:
- location (required):
14S 15E 6th Meridian
In legal land descriptions, the Meridian typically represents the final component. However, for API calls, there is an alternative option to use the County and State in place of the Meridian. For instance, both
14S 15E 6th Meridian
and14S 15E Osage County Kansas
will produce identical results.
- location (required):
- Authentication (Header):
X-API-Key: 1234567890abcdefghij
- Response:
GeoJSON FeatureCollection
, which includes the legal land location block and its center point.
Curl
JavaScript
Python
API Response
Convert geographic coordinates (longitude and latitude) to legal land description
- Base URL:
https://developer.townshipamerica.com
- Endpoint:
GET /search/coordinates
- Parameters:
- location (required):
-118.267644,42.105493
- unit (optional):
Second Division
This is an optional parameter, allowing you to specify the desired grid resolution. Allowed inputs are
Township
,First Division
,Second Division
, andall
, which returns all the grid blocks that contain the input coordinates. In case you do not specify the unit, the API will return the smallest grid block that contains the input coordinates.
- location (required):
- Authentication (Header):
X-API-Key: 1234567890abcdefghij
- Response:
GeoJSON FeatureCollection
, which includes the legal land location block and its center point.
Curl
JavaScript
Python
API Response
How to use the Autocomplete API
Using the Autocomplete API, you can search for legal land descriptions using partial or full text and get up to 10 results that matched the input in return. The result includes the input search term, the matched legal land description, and their associated geographic coordinates. The API accepts input parameters as query strings and returns a GeoJSON response in return.
Note that you can only use the Autocomplete API to convert legal land descriptions to geographic coordinates. Use the Search API to convert geographic coordinates to legal land descriptions.
- Base URL:
https://developer.townshipamerica.com
- Endpoint:
GET /autocomplete/legal-location
- Parameters:
- location (required):
16N 12E
In legal land descriptions, the Meridian typically represents the final component. However, for API calls, there is an alternative option to use the County and State in place of the Meridian. For instance, both
16N 12E Indian Meridian
and16N 12E Okmulgee County Oklahoma
will produce identical results. - limit (optional):
5
This is an optional parameter, specifying the maximum number of results to return. The default is 3 and the maximum supported is 10.
- proximity (optional):
-118.267644,42.105493
This is an optional parameter, biasing the response to favor results that are closer to the specified coordinates. Allowed values are
longitude,latitude
andlatitude,longitude
.
- location (required):
- Authentication (Header):
X-API-Key: 1234567890abcdefghij
- Response:
GeoJSON FeatureCollection
, which includes the matched legal land descriptions and their center points.
Curl
JavaScript
Python
API Response
How to use the Batch API
Using the Batch API, you can convert legal land descriptions to geographic coordinates and vice versa, much like our Search API. However, what sets the Batch API apart is its ability to process up to 100 records in a single API call. The API accepts the input parameters as a JSON object using HTTP POST and returns a GeoJSON response in return.
Convert legal land description to geographic coordinates (longitude and latitude)
- Base URL:
https://developer.townshipamerica.com
- Endpoint:
POST /batch/legal-location
- Message Body (JSON):
[ "164N 41W 5th Meridian", "NWSE 15 15N 20W Custer County Oklahoma", "36 95N 30W 5th Meridian" ]
In legal land descriptions, the Meridian typically represents the final component. However, for API calls, there is an alternative option to use the County and State in place of the Meridian. For instance, both
164N 41W 5th Meridian
and164N 41W Roseau County Minnesota
will produce identical results. - Authentication (Header):
X-API-Key: 1234567890abcdefghij
- Response:
GeoJSON FeatureCollection
, which includes the legal land location blocks and their center points.
Curl
JavaScript
Python
API Response
Convert to geographic coordinates (longitude and latitude) to legal land description
- Base URL:
https://developer.townshipamerica.com
- Endpoint:
POST /batch/coordinates
- Message Body (JSON):
{"coordinates": [[-110.086743843, 54.28602155], [-110.011880321, 54.336941143], [-110.074171308, 54.336931111]], "unit": "Township"}
unit
is an optional parameter, allowing you to specify the desired grid resolution. Allowed inputs areTownship
,First Division
,Second Division
, andall
. In case you do not specify the unit, the API will return the smallest grid block that contains the input coordinates. - Authentication (Header):
X-API-Key: 1234567890abcdefghij
- Response:
GeoJSON FeatureCollection
, which includes the legal land location block and its center point.
Curl
JavaScript
Python
API Response
How to use the Maps API
The Maps API allows you to display legal survey grids on maps for both web and mobile applications by serving geospatial data in the vector tiles format. You can make use of various web mapping libraries to render these vector tiles, such as Mapbox GL JS, OpenLayers, and Leaflet. See here for a complete example.
Each grid block (e.g., Township) is represented by two vector tile layers: one for the grid and another for labels. The grid tile layer contains the geometries of the block, showing boundaries, while the label tile layer displays names and other properties. For instance, the Township grid tile is accessible at: https://maps.townshipamerica.com/twp/{z}/{x}/{y}.mvt?api_key=...
. The corresponding label tile for the same block is available at: https://maps.townshipamerica.com/twp_label/{z}/{x}/{y}.mvt?api_key=...
.
Each vector tile layer is documented in a metadata file, which provides details such as the tile URL, source layer, supported zoom levels, and properties. For example, the metadata URL for the Township grid is: https://maps.townshipamerica.com/twp.json?api_key=...
, and the metadata URL for the Township label is: https://maps.townshipamerica.com/twp_label.json?api_key=...
. The metadata document for the Township label contains the following information:
These metadata files include information necessary for integrating and utilizing the vector tiles effectively within your applications.
The PLSS grid
The Maps API offers the PLSS grid in three distinct resolutions: Township, First Division, and Second Division. For each block, there are two vector tile sources: one for the grid and another for the labels. For instance, here is the tile URL for displaying the township block and its corresponding label.
Mapbox GL JS
The tables below contain information that can be used to display and label the grid layers for Townships, First Divisions, and Second Divisions on the map.
Grid type | Grid tile URL | Source layer | Source zoom level | Properties |
---|---|---|---|---|
Township | https://maps.townshipamerica.com/twp/{z}/{x}/{y}.pbf?api_key=... | twp | 0 - 12 | id |
First Division | https://maps.townshipamerica.com/first-division/{z}/{x}/{y}.pbf?api_key=... | first_division | 10 - 12 | id |
Second Division | https://maps.townshipamerica.com/second-division/{z}/{x}/{y}.pbf?api_key=... | second_division | 12 - 14 | id |
Label type | Label tile URL | Source layer | Source zoom level | Properties |
---|---|---|---|---|
Township | https://maps.townshipamerica.com/twp_label/{z}/{x}/{y}.pbf?api_key=... | twp_label | 0 - 12 | label, meridian, state |
First Division | https://maps.townshipamerica.com/first_division_label/{z}/{x}/{y}.pbf?api_key=... | first_division_label | 10 - 12 | label, meridian, state |
Second Division | https://maps.townshipamerica.com/second_division_label/{z}/{x}/{y}.pbf?api_key=... | second_division_label | 12 - 14 | label, meridian, state |
Here is an example that demonstrates an interactive map displaying the Township, First Division, and Second Division grids and their corresponding labels, similar to the grid maps available on townshipamerica.com. Give it a try and let us know if you have any questions. Happy coding!