The simplest geolocation middleware for Express that sets location data on the request object.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


NPM Version NPM Downloads Build Status

The simplest geolocation middleware for Express that sets location data on the request object.

Email Verifier Icon



To use this library, you'll need to create a free GeoIPify account:

If you haven't done this yet, please do so now.


To install express-simple-geoip using npm, simply run:

$ npm install express-simple-geoip

In the root of your project directory.


Once you have express-simple-geoip installed, you can use it to easily get the physical location of a given IP address for every incoming HTTP request your web service gets.

This library gives you access to all sorts of geographical location data that you can use in your application in any number of ways.

const express = require("express");
const simpleGeoIP = require("express-simple-geoip");

let app = express();


app.get("/", (req, res) => {
  console.log(req.geoip);   // print the incoming requester's geoip data
  // ...


If you run this minimal Express app and then visit the / URL, you'll see some geolocation data printed to the console that looks something like this (based on your inbound IP address):

  "country": "US",
  "region": "California",
  "city": "Mountain View",
  "lat": 37.40599,
  "lng": -122.078514,
  "postalCode": "94043",
  "timezone": "-08:00"

This library is built on top of the excellent node-simple-geoip library. It will automatically tack geoip data onto each incoming req object as req.geoip.

So all you need to do in your code is:

  1. Initialize the simpleGeoIP middleware, passing in your GeoIPify API key
  2. Use the data found in req.geoip
  3. ???
  4. Profit!

Pretty simple, right?!


0.1.1: 04-18-2018

  • Removing images from npm package.

0.1.0: 04-18-2018

  • First release!