Zip Code API

The Zip Code API enables you look up detailed information for every ZIP Code in the United States. You can input ZIP Codes directly, or search for ZIP Codes using city and state parameters.

/v1/zipcode

HTTP GET

Returns a list of ZIP Code details matching the input parameters.

Parameters

At least one of the following parameters must be provided

zip (optional) - The ZIP Code to look up.

city (optional) - Full name of the city to search (case-sensitive).

state (optional) - 2-letter abbreviation of the state (case-insensitive).

Headers

X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!

https://api.api-ninjas.com/v1/zipcode?city=&state=

Sample Response

[
  {
    "zip_code": "97201",
    "valid": true,
    "city": "Portland",
    "state": "OR",
    "county": "Multnomah County",
    "timezone": "America/Los_Angeles",
    "area_codes": [
      "503",
      "971"
    ],
    "country": "US",
    "lat": "45.5074",
    "lon": "-122.6898"
  },
  {
    "zip_code": "97202",
    "valid": true,
    "city": "Portland",
    "state": "OR",
    "county": "Multnomah County",
    "timezone": "America/Los_Angeles",
    "area_codes": [
      "971"
    ],
    "country": "US",
    "lat": "45.4803",
    "lon": "-122.6451"
  },
  ...
]

import requests

city = 'Portland'
state = 'OR'
api_url = 'https://api.api-ninjas.com/v1/zipcode?city={}&state={}'.format(city, state)

response = requests.get(api_url + city, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print(response.text)
else:
    print("Error:", response.status_code, response.text)
var city = 'Portland'
var state = 'OR'
$.ajax({
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/zipcode?city=' + city + '&state=' + state,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
        console.log(result);
    },
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
    }
});
const request = require('request');

var city = 'Portland';
var state = 'OR'
request.get({
  url: 'https://api.api-ninjas.com/v1/zipcode?city=' + city + '&state=' + state,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
  },
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
});
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/zipcode?city=Portland&state=OR");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
System.out.println(root.path("fact").asText());
let city = "Portland".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let state = "OR".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: "https://api.api-ninjas.com/v1/zipcode?city="+city+"&state="+state!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
}
task.resume()
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.