Overview

The Utah AGRC (Automated Geographic Reference Center) offers a specialized geocoding service tailored for addresses located within the state of Utah. Established in 1991, AGRC provides both a Web API and desktop-based geocoding tools, making it suitable for developers and data professionals requiring precise location data for Utah-specific applications. The service excels in converting street addresses into geographic coordinates (latitude and longitude) and performing reverse geocoding, which translates coordinates back into human-readable addresses. This focus on a specific geographic region allows AGRC to maintain a high level of accuracy and detail for Utah addresses, often surpassing general-purpose geocoding services for local data integrity.

The AGRC geocoding API is built on a RESTful architecture, allowing for integration into various web and desktop applications using standard HTTP requests. This design accommodates developers working with JavaScript, Python, C#, and other programming languages. The service is particularly beneficial for government agencies, urban planning departments, emergency services, and businesses operating within Utah that depend on accurate spatial data. Use cases include validating addresses for service delivery, generating maps for public information, optimizing logistics routes, and conducting detailed demographic or environmental analysis at a local level. The developer experience is supported by documentation that includes code examples and usage guidelines for common programming tasks, simplifying the integration process for new users.

Beyond its core geocoding capabilities, AGRC also offers resources and support for geographic information systems (GIS) professionals in Utah. The organization's commitment to maintaining up-to-date and comprehensive statewide geospatial datasets underpins the accuracy of its geocoding services. This regional specialization distinguishes AGRC from broader national or global geocoding solutions, providing a targeted tool for entities whose primary operational or analytical focus is Utah. For example, while Google Maps Platform offers global geocoding, AGRC's local expertise can lead to more granular results for obscure or recently developed Utah addresses, as detailed in the AGRC address geocoding overview.

Key features

  • Address Geocoding: Converts street addresses into latitude and longitude coordinates with high precision for Utah addresses.
  • Reverse Geocoding: Transforms geographic coordinates back into human-readable street addresses, including street number, name, city, and postal code.
  • REST API: Provides a standard web interface for programmatic access, compatible with various programming languages and platforms.
  • Desktop Geocoding Tools: Offers software tools for batch geocoding and integration into desktop GIS applications, catering to users who prefer local processing.
  • Utah-Specific Data Accuracy: Leverages comprehensive and regularly updated statewide datasets to ensure high accuracy for addresses within Utah.
  • Developer-Friendly Documentation: Includes example code snippets for JavaScript, Python, and C# to facilitate quick integration.
  • Free Tier Availability: Allows up to 15,000 requests per month for free, suitable for initial development and low-volume usage.

Pricing

The Utah AGRC geocoding service operates on a tiered pricing model that includes a free tier for low-volume usage. As of 2026-05-28, the pricing structure is as follows:

Requests per Month Monthly Cost Notes
0 - 15,000 Free Suitable for evaluation and light usage
15,001 - 50,000 $20 First paid tier, offering increased capacity
50,001 - 100,000 $40 Scales for moderate usage volumes
100,001 - 250,000 $80 Designed for higher-volume applications
250,001 - 500,000 $150 Enterprise-level usage
500,000+ Custom Contact AGRC for specific pricing

For detailed and up-to-date pricing information, refer to the AGRC geocoding service information page.

Common integrations

  • Web Applications: Integrate the REST API using JavaScript frameworks or server-side languages to provide address validation and mapping functionalities on websites.
  • GIS Software (e.g., Esri ArcGIS): Utilize desktop tools or connect the API to software like Esri ArcGIS for spatial analysis, data visualization, and map creation. Information on Esri's geocoding service provides context for such integrations.
  • Data Processing Workflows: Incorporate geocoding into data pipelines using Python scripts for batch processing of large address datasets for analytics or reporting.
  • Emergency Services Systems: Use for dispatch systems to quickly locate incident addresses or validate caller locations within Utah.
  • CRM and ERP Systems: Integrate to validate customer or client addresses, ensuring accurate records for billing, delivery, or service calls.
  • Mobile Applications: Embed geocoding capabilities into mobile apps for location-based services or navigation within Utah.

Alternatives

  • Google Maps Platform Geocoding API: A global geocoding solution offering broad coverage and a wide range of mapping services.
  • Esri ArcGIS Online Geocoding: Provides comprehensive geocoding capabilities integrated within the ArcGIS ecosystem, suitable for enterprise GIS users.
  • OpenCage Geocoder: A global geocoding API that aggregates data from various open data sources, offering flexible usage and pricing.
  • Mapbox Geocoding API: Offers customizable geocoding and reverse geocoding services, often used in conjunction with Mapbox mapping solutions.
  • AWS Location Service Geocoding: A scalable geocoding solution integrated with other AWS services, providing global coverage and flexible pricing.

Getting started

To begin using the Utah AGRC Geocoding API, you register for an API key on their official website. Once you have your key, you can make HTTP GET requests to the geocoding endpoint. The API accepts various parameters for addresses, including street, city, state, and ZIP Code. The response is typically in JSON format, containing the latitude and longitude coordinates, along with other address details. Below is a Python example demonstrating how to geocode an address using the AGRC API. This example shows a basic request structure to convert a Utah address into its corresponding coordinates.


import requests
import json

# Replace with your actual AGRC API key
API_KEY = "YOUR_AGRC_API_KEY"

# Define the address to geocode
address = "4110 State Office Building, Salt Lake City, UT"

# Construct the API request URL
# The 'suggest' parameter is useful for returning multiple potential matches
# The 'apiKey' parameter must be included for authentication
url = f"https://api.mapserv.utah.gov/api/v1/geocode/{address}?apiKey={API_KEY}"

try:
    # Send the GET request to the AGRC Geocoding API
    response = requests.get(url)
    response.raise_for_status() # Raise an exception for HTTP errors (4xx or 5xx)

    # Parse the JSON response
    data = response.json()

    # Check if geocoding was successful and results are available
    if data and data['status'] == 200 and data['result']: # Check for status code and result array
        first_result = data['result'][0]
        location = first_result['location']
        address_details = first_result['addressGrid']

        print(f"Geocoded Address: {address}")
        print(f"Latitude: {location['y']}")
        print(f"Longitude: {location['x']}")
        print(f"Matched Address: {address_details['fullAddress']}")
        print(f"Score: {first_result['score']}")
    elif data and data['status'] != 200:
        print(f"Error geocoding address: {data['message']}")
    else:
        print(f"No results found for address: {address}")

except requests.exceptions.RequestException as e:
    print(f"An error occurred during the API request: {e}")
except json.JSONDecodeError:
    print(f"Failed to decode JSON response: {response.text}")

This Python script sends an address to the AGRC Geocoding API and prints the returned latitude and longitude coordinates. For more advanced features, such as batch geocoding or reverse geocoding, refer to the AGRC API documentation which provides comprehensive details and additional code examples for various scenarios.