# Geocoders

A geocoder allows a user to convert an address in text form into geographic coordinates (like latitude and longitude). A geocoder can be optionally associated with a market. By connecting a geocoder to a market, all the shipping and billing addresses belonging to that market orders will be geocoded. The geocoded coordinates can serve many purposes: placing markers or positions on the map, validating the accuracy and reliability of an address, performing target marketing, location-based promotions, and other ecommerce operations.

Commerce Layer currently supports [Google](/core-api-reference/google_geocoders.md) and [Bing](/core-api-reference/bing_geocoders.md) geocoder integration.

You can set up a geocoder from the admin UI. All you need to do is choose a meaningful name that helps you identify it within your organization and add the API key provided by the selected geocoding service.

<details>

<summary>Data model</summary>

Check the related [ER diagram](/data-model/shipping/geocoders.md) and explore the flowchart that illustrates how the geocoder resource relates to the other API entities.

</details>

{% hint style="info" %}
This is an **immutable API**, meaning that create, update, and delete operations are not allowed on this endpoint. You can only fetch a list of geocoders or a single geocoder object. For the full set of available CRUD actions to the specific geocoder type endpoints.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.commercelayer.io/core-api-reference/geocoders.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
