Esri Geocoding API

The Geocoding API from Esri — 4 operation(s) for geocoding.

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /World/GeocodeServer/findAddressCandidates Match an address on the World GeocodeServer · Find candidate address matches #
Ask an LLM
“Can I send street, city, region and postal code separately to the World GeocodeServer and get candidate matches back?”
“What limits how many address candidates the World GeocodeServer findAddressCandidates endpoint returns?”
Tell an agent
Find World GeocodeServer candidates for {address} in {city}, {region}, returning {f}.
Match the single-line address {SingleLine} against the World GeocodeServer in country {countryCode}, at most {maxLocations} results as {f}.
POST /World/GeocodeServer/geocodeAddresses Batch geocode a list of addresses · Batch geocode addresses #
Ask an LLM
“How do I geocode hundreds of addresses in one request instead of one at a time?”
“Can a batch geocoding job return its locations in a spatial reference I choose?”
Tell an agent
Batch geocode these addresses {addresses} and return the results as {f}.
Geocode the address batch {addresses} in one request with output spatial reference {outSR}, format {f}.
GET /World/GeocodeServer/reverseGeocode Reverse geocode a point on the World GeocodeServer · Reverse geocode a coordinate to an address #
Ask an LLM
“Can I limit World GeocodeServer reverse geocoding to certain feature types, like a point of interest or street intersection?”
“Which World GeocodeServer endpoint gives me an address for an x,y coordinate with a chosen location type?”
Tell an agent
Reverse geocode {location} on the World GeocodeServer as {f}, returning only {featureTypes} features.
Look up the World GeocodeServer address at {location} using location type {locationType}, format {f}.
GET /World/GeocodeServer/suggest Autocomplete a partial address · Autocomplete suggestions for an address query #
Ask an LLM
“How do I show address autocomplete suggestions while a user is still typing?”
“Can address suggestions be biased toward a location or restricted to one country?”
Tell an agent
Suggest address completions for {text} as {f}.
Give me up to {maxSuggestions} autocomplete suggestions for {text} near {location} in {countryCode}, format {f}.
GET /findAddressCandidates Geocode an address to coordinates · Geocode an address #
Ask an LLM
“How do I convert an address like 380 New York St, Redlands into coordinates with a match score?”
“Can I get forward-geocoding results back in a specific output spatial reference WKID?”
Tell an agent
Geocode {SingleLine} and return coordinates with match scores.
Forward geocode street {Address}, postal code {Postal}, country {CountryCode} and project the result to WKID {outSR}.
GET /reverseGeocode Turn coordinates into a readable address · Reverse geocode coordinates #
Ask an LLM
“What address is closest to a latitude and longitude I have?”
“Can I set how many meters from the point the reverse geocoder searches for an address?”
Tell an agent
Find the nearest address to point {location}.
Reverse geocode {location} searching within {distance} meters.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/esri:esri-geocoding-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

esri-geocoding-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Esri Geocoding API
  version: 1.0.0
  description: 'Operations tagged Geocoding across 2 of this provider''s published API definitions: esri-openapi.yml, esri-geocoding-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://geocode-api.arcgis.com/arcgis/rest/services
  description: ArcGIS hosted geocoding base URL
- url: https://route-api.arcgis.com/arcgis/rest/services
  description: ArcGIS hosted routing base URL
- url: https://www.arcgis.com
  description: ArcGIS Online / OAuth base URL
- url: https://www.arcgis.com/sharing/rest
  description: ArcGIS Online production
- url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
  description: ArcGIS Geocoding Service
- url: https://route.arcgis.com/arcgis/rest/services
  description: ArcGIS Routing Service
- url: https://places-api.arcgis.com/arcgis/rest/services/v1
  description: ArcGIS Places Service
tags:
- name: Geocoding
paths:
  /World/GeocodeServer/findAddressCandidates:
    get:
      tags:
      - Geocoding
      summary: Find candidate address matches
      operationId: findAddressCandidates
      servers:
      - url: https://geocode-api.arcgis.com/arcgis/rest/services
      parameters:
      - in: query
        name: SingleLine
        schema:
          type: string
      - in: query
        name: address
        schema:
          type: string
      - in: query
        name: city
        schema:
          type: string
      - in: query
        name: region
        schema:
          type: string
      - in: query
        name: postal
        schema:
          type: string
      - in: query
        name: countryCode
        schema:
          type: string
      - in: query
        name: outFields
        schema:
          type: string
          example: '*'
      - in: query
        name: maxLocations
        schema:
          type: integer
          default: 1
          maximum: 50
      - in: query
        name: f
        required: true
        schema:
          type: string
          enum:
          - json
          - pjson
          - html
          default: json
      - in: query
        name: token
        schema:
          type: string
      responses:
        '200':
          description: Candidate matches
          content:
            application/json:
              schema:
                type: object
                properties:
                  candidates:
                    type: array
                    items:
                      $ref: '#/components/schemas/Candidate'
      security:
      - apiKeyAuth: []
      - oauth2: []
    servers:
    - url: https://geocode-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted geocoding base URL
    - url: https://route-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted routing base URL
    - url: https://www.arcgis.com
      description: ArcGIS Online / OAuth base URL
  /World/GeocodeServer/geocodeAddresses:
    post:
      tags:
      - Geocoding
      summary: Batch geocode addresses
      operationId: geocodeAddresses
      servers:
      - url: https://geocode-api.arcgis.com/arcgis/rest/services
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - addresses
              - f
              properties:
                addresses:
                  type: string
                  description: JSON string containing the batch payload
                f:
                  type: string
                  enum:
                  - json
                  - pjson
                token:
                  type: string
                outSR:
                  type: string
      responses:
        '200':
          description: Batch geocoding results
      security:
      - apiKeyAuth: []
      - oauth2: []
    servers:
    - url: https://geocode-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted geocoding base URL
    - url: https://route-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted routing base URL
    - url: https://www.arcgis.com
      description: ArcGIS Online / OAuth base URL
  /World/GeocodeServer/reverseGeocode:
    get:
      tags:
      - Geocoding
      summary: Reverse geocode a coordinate to an address
      operationId: reverseGeocode
      servers:
      - url: https://geocode-api.arcgis.com/arcgis/rest/services
      parameters:
      - in: query
        name: location
        required: true
        description: x,y coordinate or JSON point.
        schema:
          type: string
          example: -117.196,34.056
      - in: query
        name: outSR
        schema:
          type: string
      - in: query
        name: featureTypes
        schema:
          type: string
      - in: query
        name: locationType
        schema:
          type: string
          enum:
          - rooftop
          - street
      - in: query
        name: f
        required: true
        schema:
          type: string
          enum:
          - json
          - pjson
      - in: query
        name: token
        schema:
          type: string
      responses:
        '200':
          description: Address record for the coordinate
      security:
      - apiKeyAuth: []
      - oauth2: []
    servers:
    - url: https://geocode-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted geocoding base URL
    - url: https://route-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted routing base URL
    - url: https://www.arcgis.com
      description: ArcGIS Online / OAuth base URL
  /World/GeocodeServer/suggest:
    get:
      tags:
      - Geocoding
      summary: Autocomplete suggestions for an address query
      operationId: suggestAddresses
      servers:
      - url: https://geocode-api.arcgis.com/arcgis/rest/services
      parameters:
      - in: query
        name: text
        required: true
        schema:
          type: string
      - in: query
        name: location
        schema:
          type: string
      - in: query
        name: maxSuggestions
        schema:
          type: integer
          default: 5
      - in: query
        name: countryCode
        schema:
          type: string
      - in: query
        name: f
        required: true
        schema:
          type: string
          enum:
          - json
          - pjson
      - in: query
        name: token
        schema:
          type: string
      responses:
        '200':
          description: Suggestion list
          content:
            application/json:
              schema:
                type: object
                properties:
                  suggestions:
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                        magicKey:
                          type: string
                        isCollection:
                          type: boolean
      security:
      - apiKeyAuth: []
      - oauth2: []
    servers:
    - url: https://geocode-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted geocoding base URL
    - url: https://route-api.arcgis.com/arcgis/rest/services
      description: ArcGIS hosted routing base URL
    - url: https://www.arcgis.com
      description: ArcGIS Online / OAuth base URL
  /findAddressCandidates:
    servers:
    - url: https://www.arcgis.com/sharing/rest
      description: ArcGIS Online production
    - url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
      description: ArcGIS Geocoding Service
    - url: https://route.arcgis.com/arcgis/rest/services
      description: ArcGIS Routing Service
    - url: https://places-api.arcgis.com/arcgis/rest/services/v1
      description: ArcGIS Places Service
    get:
      operationId: getFindAddressCandidates
      summary: Geocode an address
      description: Converts address text into geographic coordinates (forward geocoding). Returns a list of address candidates with location coordinates and match scores.
      tags:
      - Geocoding
      servers:
      - url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
      parameters:
      - name: SingleLine
        in: query
        schema:
          type: string
        description: Single-line address string (e.g., "380 New York St, Redlands, CA 92373")
      - name: Address
        in: query
        schema:
          type: string
        description: Street address component
      - name: City
        in: query
        schema:
          type: string
      - name: Region
        in: query
        schema:
          type: string
        description: State or province
      - name: Postal
        in: query
        schema:
          type: string
      - name: CountryCode
        in: query
        schema:
          type: string
        description: ISO 3166-1 alpha-2 or alpha-3 country code
      - name: maxLocations
        in: query
        schema:
          type: integer
          default: 1
          maximum: 50
      - name: outFields
        in: query
        schema:
          type: string
        description: Comma-separated list of output fields (* for all)
      - name: outSR
        in: query
        schema:
          type: integer
          default: 4326
        description: Output spatial reference WKID
      - name: token
        in: query
        schema:
          type: string
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: Address candidates returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeocodeResponse'
      security:
      - ApiKeyAuth: []
      - OAuth2:
        - openid
      x-operation-id-source: normalized
      x-operation-id-original: findAddressCandidates
  /reverseGeocode:
    servers:
    - url: https://www.arcgis.com/sharing/rest
      description: ArcGIS Online production
    - url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
      description: ArcGIS Geocoding Service
    - url: https://route.arcgis.com/arcgis/rest/services
      description: ArcGIS Routing Service
    - url: https://places-api.arcgis.com/arcgis/rest/services/v1
      description: ArcGIS Places Service
    get:
      operationId: getReverseGeocode
      summary: Reverse geocode coordinates
      description: Converts geographic coordinates to a readable address (reverse geocoding).
      tags:
      - Geocoding
      servers:
      - url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
      parameters:
      - name: location
        in: query
        required: true
        schema:
          type: string
        description: Point location as JSON (e.g., {"x":-117.2,"y":34.06,"spatialReference":{"wkid":4326}})
      - name: distance
        in: query
        schema:
          type: number
        description: Distance in meters to search from the input location
      - name: outSR
        in: query
        schema:
          type: integer
          default: 4326
      - name: token
        in: query
        schema:
          type: string
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: Reverse geocode result returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReverseGeocodeResponse'
      security:
      - ApiKeyAuth: []
      - OAuth2:
        - openid
      x-operation-id-source: normalized
      x-operation-id-original: reverseGeocode
components:
  schemas:
    Candidate:
      type: object
      properties:
        address:
          type: string
        score:
          type: number
        location:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
        attributes:
          type: object
          additionalProperties: true
        extent:
          type: object
          properties:
            xmin:
              type: number
            ymin:
              type: number
            xmax:
              type: number
            ymax:
              type: number
    Point:
      type: object
      properties:
        x:
          type: number
          description: Longitude
        y:
          type: number
          description: Latitude
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
    SpatialReference:
      type: object
      properties:
        wkid:
          type: integer
          description: Well-known ID for the spatial reference (e.g., 4326 for WGS84)
        latestWkid:
          type: integer
    GeocodeResponse:
      type: object
      properties:
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
        candidates:
          type: array
          items:
            $ref: '#/components/schemas/GeocodeCandidate'
    ReverseGeocodeResponse:
      type: object
      properties:
        address:
          type: object
          properties:
            Match_addr:
              type: string
            LongLabel:
              type: string
            ShortLabel:
              type: string
            Addr_type:
              type: string
            AddNum:
              type: string
            Address:
              type: string
            City:
              type: string
            Region:
              type: string
            RegionAbbr:
              type: string
            Postal:
              type: string
            CountryCode:
              type: string
        location:
          $ref: '#/components/schemas/Point'
    GeocodeCandidate:
      type: object
      properties:
        address:
          type: string
        location:
          $ref: '#/components/schemas/Point'
        score:
          type: number
          description: Match quality score (0-100)
        attributes:
          type: object
          additionalProperties: true
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: query
      name: token
      description: 'ArcGIS Platform API key or access token passed as the `token` query parameter (or `Authorization: Bearer <token>` header on REST services).'
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://www.arcgis.com/sharing/rest/oauth2/token
          scopes: {}
        authorizationCode:
          authorizationUrl: https://www.arcgis.com/sharing/rest/oauth2/authorize
          tokenUrl: https://www.arcgis.com/sharing/rest/oauth2/token
          scopes: {}
    ApiKeyAuth:
      type: apiKey
      in: query
      name: token
      description: ArcGIS API key or token
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.arcgis.com/sharing/rest/oauth2/authorize
          tokenUrl: https://www.arcgis.com/sharing/rest/oauth2/token
          scopes:
            openid: OpenID Connect identity
            urn:arcgis:scope:root: Full access to ArcGIS Online
externalDocs:
  description: ArcGIS REST API Reference
  url: https://developers.arcgis.com/rest/
x-refined-from:
- esri-openapi.yml
- esri-geocoding-api-openapi.yml