US ZIP Code Lookup avatar

US ZIP Code Lookup

Pricing

from $1.50 / 1,000 items

Go to Apify Store
US ZIP Code Lookup

US ZIP Code Lookup

Get detailed location data including city, state, coordinates, and population from US ZIP codes.

Pricing

from $1.50 / 1,000 items

Rating

0.0

(0)

Developer

bite-sized-insights

bite-sized-insights

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 hours ago

Last modified

Categories

Share

Get detailed location data including city, state, coordinates, and population from US ZIP codes.

Simply provide a list of ZIP codes and get back structured location data for each one.

No login required. No cookies needed. Pay-per-event pricing.

Why Choose This Actor?

"Enrich your data with US location information in seconds"

Our US ZIP Code Lookup actor provides:

  • Very Fast Responses: Parallel processing for large batches
  • Cost-Effective: Pay only for the ZIP codes you look up: $1.50 / 1k zip codes
  • Rich Data: Get city, state, coordinates, population, and more

Quick Start

  1. Open the actor on Apify and go to the Input tab.
  2. Paste the example input below (or edit the prefilled list).
  3. Click Start and wait for the run to finish.
  4. Open the Output (dataset) tab to view or export the results as JSON, CSV or Excel.
{
"zipcodes": ["00601"]
}

Example output item:

{
"zip": "00601",
"lat": "18.18027",
"lng": "-66.75266",
"city": "Adjuntas",
"state_id": "PR",
"state_name": "Puerto Rico",
"zcta": "TRUE",
"parent_zcta": "",
"population": "16669",
"density": "99.9",
"county_fips": "72001",
"county_name": "Adjuntas",
"county_weights": "{\"72001\": 98.74, \"72141\": 1.26}",
"county_names_all": "Adjuntas|Utuado",
"county_fips_all": "72001|72141",
"imprecise": "FALSE",
"military": "FALSE",
"timezone": "America/Puerto_Rico",
"error": null
}

Usage Examples

Resolve a Single ZIP Code

{
"zipcodes": ["10001"]
}

Resolve Multiple ZIP Codes

{
"zipcodes": ["90210", "10001", "60601"]
}

Returns one record per ZIP code found, with the same fields as the example output item in Quick Start (here three records, for 90210, 10001 and 60601).

Input Parameters

ParameterTypeRequiredDefaultDescription
zipcodesarrayYes-List of US ZIP codes to resolve (5 digits each). 1-1000 per run; duplicates are ignored, invalid or too many codes fail the run

Output Fields

FieldTypeDescription
zipstringZIP code
latstringLatitude
lngstringLongitude
citystringCity name
state_idstringState abbreviation (e.g., "CA", "PR")
state_namestringFull state name
zctastringIs this a ZCTA (ZIP Code Tabulation Area) - "TRUE"/"FALSE"
parent_zctastringParent ZCTA if applicable
populationstringPopulation estimate
densitystringPopulation density per sq mile
county_fipsstringPrimary county FIPS code
county_namestringPrimary county name
county_weightsstringJSON object with county FIPS and percentage weights
county_names_allstringAll county names (pipe-separated)
county_fips_allstringAll county FIPS codes (pipe-separated)
imprecisestringLocation is imprecise - "TRUE"/"FALSE"
militarystringIs military ZIP code - "TRUE"/"FALSE"
timezonestringTimezone (e.g., "America/New_York")
errornull/stringError message if lookup failed

Free plan

Free-plan users get 5 runs in total. Each free run processes only the first 10 codes in your input (the rest is ignored without an error) and returns at most 10 results.

Pricing

CostDescription
$0.0001 / startCharged per actor run
$1.50 / 1,000 zip codesCharged per ZIP code returned

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("bite-sized-insights/us-zip-codes").call(
run_input={
"zipcodes": ["90210", "10001", "60601", "02134"]
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['zip']}: {item['city']}, {item['state_id']}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('bite-sized-insights/us-zip-codes').call({
zipcodes: ['90210', '10001', '60601']
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(`${item.zip}: ${item.city}, ${item.state_id}`);
});

Use Cases

  • Data Enrichment: Add location data to customer records
  • Address Validation: Verify ZIP codes exist and get city/state
  • Geographic Analysis: Get coordinates for mapping
  • Shipping/Logistics: Determine regions and timezones

Going global?

Looking for postal code data in other countries? Check out our other actors:

Notes

  • ZIP codes must be provided as strings (e.g., "02134" not 2134)
  • Invalid or non-existent ZIP codes will not appear in results
  • Results are returned in no particular order
  • Large requests are automatically split into batches and processed in parallel

Need help? Open an issue on the actor's repository or contact support through Apify Console.