ZIP Code Lookup avatar

ZIP Code Lookup

Pricing

$0.35 / 1,000 postal codes

Go to Apify Store
ZIP Code Lookup

ZIP Code Lookup

Look up ZIP and postal codes in bulk across selected countries, or find postal codes from a city and state or province. Get structured country, place, region, and coordinate data without a source API key.

Pricing

$0.35 / 1,000 postal codes

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

📮 Look up ZIP and postal codes

Developers, data teams, and operations users can run a ZIP code lookup on one list and get structured postal identity, country, place, region, and available latitude/longitude data. Use the rows in location filters, country checks, and data cleanup workflows.

Use cases

📦 Returned ZIP lookup rows

Each saved dataset row represents one lookup for one postal value and country code. A row can include the postal code, country, places, region, latitude, longitude, and a found flag. The same value checked for several country codes can produce separate rows. When a postal range is expanded, each expanded value is returned as its own lookup row.

▶️ Run a ZIP code lookup

  1. Choose Postal code lookup or City and state reverse lookup.
  2. Add postalCodes and countryCodes, or add city, region, and countryCodes for reverse mode.
  3. Choose the result detail, unmatched-value policy, sort field, and optional place limit.
  4. Start the run and open the default dataset.

Use one lookup direction per run. Fields in the other Target Options section are ignored. If maxPlacesPerCode is empty, the Actor returns all available results until the source is exhausted.

⚙️ Input

The public input uses JSON or the Apify form. target and countryCodes are required; the other fields depend on the lookup direction.

Input fields

FieldTypeWhat it does
targetstring (required)Choose postalCodeLookup for postal or ZIP values, or cityStateLookup for a reverse lookup.
postalCodesarray of stringsAdd one or more exact postal or ZIP values or numeric ranges such as 00501-00503. Leading zeros are kept. Used for postal lookup mode.
postalCodes[]stringOne exact postal or ZIP value or numeric range inside postalCodes.
maxPlacesPerCodeinteger (optional)Cap the place records returned for each postal code. Leave it empty to return all available results until the source is exhausted.
citystring (optional)City to use for the reverse lookup.
regionstring (optional)State or province to use for the reverse lookup.
countryCodesarray of strings (required)Add one or more ISO 3166-1 alpha-2 country codes. The same lookup values are checked for each code.
countryCodes[]stringOne ISO 3166-1 alpha-2 country code inside countryCodes.
detailLevelstringChoose postalCode, place, or full to control how much detail each row keeps.
notFoundPolicystringChoose omit to leave out unmatched values or keep to save no-result records.
sortBystringOrder returned rows by postalCode, place, region, latitude, or longitude.

This is the public input from a successful current-beta default-input run:

{
"target": "postalCodeLookup",
"postalCodes": [
"10001"
],
"countryCodes": [
"US"
],
"detailLevel": "full",
"notFoundPolicy": "omit",
"sortBy": "postalCode"
}

🧾 Output

Postal lookup and city-and-state reverse lookup use the same dataset row shape. Optional fields can be absent when the selected detail level or source data does not provide them. With notFoundPolicy set to keep, an unmatched value is saved with found: false.

Dataset fields

FieldTypeWhat it does
postalCodestringPostal or ZIP value returned by the lookup.
countrystring (optional)Country name when available.
countryCodestringISO 3166-1 alpha-2 country code used for this row.
placesarray of objects (optional)Place details linked to the postal code when place data is included.
places[].placestringPlace name.
places[].regionstring (optional)State, province, or other region when available.
places[].latitudenumber (optional)Place latitude when available.
places[].longitudenumber (optional)Place longitude when available.
foundbooleantrue when the lookup found a postal record; false for a retained no-result row.

Example matched row

This complete row came from a current-beta full-detail run:

{
"postalCode": "10001",
"country": "United States",
"countryCode": "US",
"places": [
{
"place": "New York City",
"region": "New York",
"latitude": 40.7484,
"longitude": -73.9967
}
],
"found": true
}

With notFoundPolicy set to keep, a no-match row from the same current-beta run can look like this:

{
"postalCode": "10001",
"countryCode": "CA",
"found": false
}

💳 Pricing

Pay per event

This Actor uses pay-per-event pricing. The current event price is $0.00035 for one successful postal or ZIP lookup saved to your dataset.

🔌 Integrations

Apify workflow

Run the Actor from Apify Console or the Apify API, then read the structured rows from the default dataset. You can export the dataset in the formats offered by Apify.

❓ FAQ

Can I check the same ZIP values in more than one country?

Yes. Add more than one ISO 3166-1 alpha-2 country code. The same submitted postal values are checked for each code, and each row includes the country code used.

Can I find postal codes from a city and state?

Yes. Choose City and state reverse lookup, then enter the city, state or province, and one or more country codes.

What happens when a postal value has no match?

By default, the unmatched value is omitted. Choose Keep no-result records to save its postal code and country code with found: false.

What does leaving Max places per postal code empty do?

It returns all available results until the source is exhausted. Set a positive value when you want to cap the place records for each postal code.

Can I use this for USPS address verification or ZIP code lookup by address?

No. This Actor looks up submitted postal or ZIP values and supports city-and-state reverse lookup. It is not a full street-address geocoder and does not provide USPS address verification for questions such as “what is the ZIP code for this address?”

Can it find my ZIP code from my location or Google Maps?

No. The Actor does not detect a location or read Google Maps. Submit a postal or ZIP value, or use city-and-state reverse lookup with a country code.

Do I need a source API key?

No source API key is required. Add the country code and the lookup values you want to check.

Can one postal code have more than one place?

Yes. When the source returns more than one place, the places are kept in the places array. Use maxPlacesPerCode if you want to cap that list.

Can I sort the returned rows?

Yes. Use sortBy to order rows by postal code, place, region, latitude, or longitude.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré