Launching Iggy Self Serve APIs

July 16, 2021

Our mission at Iggy is to make information about the world accessible. We’ve taken our first steps toward this over the last few months. Starting today you can query more than 175 geographic datasets using the Iggy API.

There are many challenges when using and integrating geographic or location data into apps, pipelines, maps, and models (We’ve written about this here, here, and oh here too). First, you need to find a source for that data, evaluate it alongside others, transform it into a useful format, and join it with your data. All of this is uniquely hard with geographic data, mostly because that data often comes in a form that is not usable without special software! Once you can open it, you have to explore the dataset, describe it, and understand the possible ranges of values. You have to find documentation — if it even exists — that explains how the data is structured. For some datasets, you need to maintain a pipeline to deal with updates. You have to monitor it and fix things when the data source inevitably changes. All of these things take a ton of time and resources, distract developers from their core jobs, and leave end users wanting.

Today we’re launching our developer-first, ergonomic APIs on top of a super distinctive database backed by really smart abstractions. We’re developer-first, full stop. Our database is one of the most interesting that you’ll ever encounter. We curate, normalize, update, and maintain data as varied as daily wildfire risk, road networks, socio-demographics, environmental hazards, severe weather… the list goes on and on. The abstractions part is important because it is the very thing that makes our product so usable and sets us apart. What does it look like to get the abstractions right? Well, first off, you don’t need to know anything about geography to access our data. You don’t need to “speak geospatial”. You don’t need to download a massive file. You don’t need to set up a Postgres database with a PostGIS extension. You don’t need to learn about spatial indexing. You also don’t need any special software. You just need to make a simple API call in your language of choice. If we can get those abstractions right, developers can do what they do best: build new products, businesses, and futures.

Introducing Iggy Self Serve

Today, we are opening up access to our APIs so that anyone can sign up for an Iggy account. New accounts come with 50,000 free requests, with priced subscriptions thereafter. With your Iggy account, you’ll have access to more than 175 datasets spanning everything from demographics to boundaries to daily fire detections. And the Iggy data catalog will continue to grow rapidly over the coming months.

Iggy Datasets are available via our API, which lets users look up data that can answer questions like: “What Zip Code is this point in?”, “What is the nearest school?”, and “How prone is this area to earthquakes?”. You can answer questions like these and many more without the need to source or maintain the data and without any infrastructure to setup — it’s just a simple API request.

Some examples of the APIs in action

You can look up detailed properties from the American Community Survey without needing to decipher attribute codes or do any joining. Let’s say you are a Real Estate investor and want to know how many people commute by bicycle around San Francisco. To start, we have a dataset of latitude, longitude coordinates in SF, which we pass to Iggy’s API and specify the acs_census_tract_commute dataset:

r = requests.get(
   "<https://api.askiggy.com/properties/v1/datasets/acs_census_tract_commute/select/point>",
   params={"latitude": latitude, "longitude": longitude},
   headers={"X-Iggy-Token": api_token},
)

This simple request will tell us the bicycle commuting data for each point according to its census tract. You can see the full example code here.

Number of bicycle commuters in various SF census tracts

The API also lets you download full geographic features (aka the ‘shapes’ of the things you’re interested in), enabling you to do further analysis or display the results on a map. Let’s say you work at an insurance company and want to get all of the fire stations within 3km of downtown Denver, CO for underwriting purposes:

r = requests.get("<https://api.askiggy.com/features/v1/datasets/hifld_fire_stations/select/buffered-point>",
   params={"latitude": latitude, "longitude": longitude, "radius": 3000},  # 3km
   headers={"X-Iggy-Token": api_token},
)

This returns a list of GeoJSON Features, including their properties. Check out our data catalog for details of the properties included with each dataset.

Fire stations within 3km of downtown Denver

You can see the full example code here.

What’s next?

From here, we’ll continue to expand the number of available datasets, update datasets as new data becomes available, and improve access to these datasets with batch endpoints and bulk delivery.

Sign up, grab your API token to get started, and explore our data catalog. We think you’ll like what you see.

We are so glad you’re here and can’t wait to see what you build!

Team Iggy

PS: We’re hiring :)

Thanks to Anne Cocos.