Geocodio drop-in replacement

Geocodio focuses on the United States and Canada. geocodio.mygeocode.com answers its geocode and reverse endpoints in the same shape, and takes addresses anywhere in the world.

Change one hostname

Original host
  • api.geocod.io
Use insteadgeocodio.mygeocode.com
Key parameterapi_key (optional: any address gets 2,500 requests a day with no key; put your My Geocode key here for credit, packages and a usage history)
Before
curl "https://api.geocod.io/v1.7/geocode?q=1109+N+Highland+St,+Arlington+VA&api_key=YOUR_GEOCODIO_KEY"
After
curl "https://geocodio.mygeocode.com/v1.7/geocode?q=1109+N+Highland+St,+Arlington+VA&api_key=YOUR_MYGEOCODE_KEY"

Why people move

The same interface, worldwide coverage, and no per-lookup pricing tiers to track.

Same free allowance, key or not. Requests to geocodio.mygeocode.com count toward the same 2,500 free requests a day your address, or your key, gets on our own endpoints. Above that, prepaid credit at €0.0001 per request, or €50 a month for an Unlimited key. Signing up takes a name and an email address, and no card.

See pricing Get a free key

Endpoints

Path on geocodio.mygeocode.comWhat it doesBacked by
/v1.7/geocode?q=...Forward geocodingForward geocoding
/v1.7/reverse?q=lat,lngReverse geocodingReverse geocoding
/v1.7/geocode (POST, JSON array)Batch forward geocodingForward geocoding
/v1.7/reverse (POST, JSON array)Batch reverse geocodingReverse geocoding

Example response

This is what the request above returns. Field names, nesting and types follow Geocodio. Only the data behind them is ours.

Response from geocodio.mygeocode.com
{
  "input": {
    "address_components": {
      "number": "1109",
      "predirectional": "N",
      "street": "Highland",
      "suffix": "St",
      "city": "Arlington",
      "state": "VA",
      "country": "US"
    },
    "formatted_address": "1109 N Highland St, Arlington VA"
  },
  "results": [
    {
      "address_components": {
        "number": "1109",
        "street": "N Highland",
        "suffix": "St",
        "formatted_street": "N Highland St",
        "city": "Arlington",
        "state": "VA",
        "zip": "22201",
        "country": "US"
      },
      "formatted_address": "1109 N Highland St, Arlington, VA 22201, United States",
      "location": {
        "lat": 38.886396,
        "lng": -77.094856
      },
      "accuracy": 0.99,
      "accuracy_type": "range_interpolation",
      "source": "My Geocode"
    },
    {
      "address_components": {
        "number": "1109",
        "street": "S Highland",
        "suffix": "St",
        "formatted_street": "S Highland St",
        "city": "Arlington",
        "state": "VA",
        "zip": "22204",
        "country": "US"
      },
      "formatted_address": "1109 S Highland St, Arlington, VA 22204, United States",
      "location": {
        "lat": 38.861063,
        "lng": -77.088554
      },
      "accuracy": 0.68,
      "accuracy_type": "range_interpolation",
      "source": "My Geocode"
    }
  ]
}

Details and differences

No key is needed for the first 2,500 requests a day. To use a My Geocode key, put it where your Geocodio key went: the api_key query parameter. The X-API-Key header, Authorization: Bearer and HTTP Basic authentication (the key as the user name) work on every host too, so client libraries that authenticate their own way keep working unchanged.

  • Batch requests work: post a JSON list or an object. The answer is results with one entry per input, each carrying the query it came from (the object key when you posted an object) and its own response.
  • Reverse batches take the same shape, with lat,lon strings as the input.
  • A batch takes up to 10,000 entries, as Geocodio does, and each entry counts as one lookup, as Geocodio counts them. A batch larger than what is left of the day’s allowance is refused whole with Geocodio’s error rather than partly processed.
  • fields=timezone appends the time zone: its name, standard UTC offset in hours, whether it observes daylight saving time, and its abbreviation.
  • fields also takes cd, stateleg, school, census, acs-demographics, acs-economics, acs-families, acs-housing, acs-social, ffiec, riding, provriding, statcan, uk-westminster, uk-devolved and uk-local, with current legislators on the district fields. ACS figures are by census tract. A field that cannot be filled is named in _warnings, as Geocodio does.
  • fields=zip4 answers zip4 as null: ZIP+4 data is not open.

If your client depends on a field or behaviour that is not listed here, tell us. Compatibility gaps get fixed quickly because they are usually small.

Other drop-in hosts

How the drop-ins work, the overview, and the JavaScript library drop-ins.