Blog
RSSNotes on data, forms, and building APIs.
Start here
Home and mobile are both phone columns
Walk through a mixed-country CSV with two phone columns. Choose checks, supply row-level countries, understand duplicates, and read the download.
Read the walkthroughWhat to show when autocomplete has no suggestions
Build address forms that handle empty suggestions, location changes, stale responses, keyboard selection, and manual entry, with a downloadable offline example.
Read articleAn API version belongs with the code
Migrate an API integration with explicit version pins, consumer fixtures, staged rollout and a tested rollback. Includes an offline Carrier adapter example.
Read articleAll articles
78 articles
An IBAN check isn't an account check
IBAN validation checks the format and checksum. It gives you a clean number to work with, without claiming the account exists.
Which day's exchange rate?
A currency conversion needs a date as well as a rate. Historical lookups use the last published rate on or before the date you ask for.
Store the code. Show the name.
Keep country, state, district, city and postal data usable across searches, translated labels, form edits and later updates.
Valid enough for what?
Choose the checks your application actually needs. Separate valid format, verified facts, and unknown results across email, phone, and address data.
One limit for extra usage
Included lookup allowances are separate by product, but additional paid usage shares one monthly dollar limit for the team.
A card brand has a code and a name
BIN returns brand for application logic and brand_name for display. Keep the distinction when handling co-brands, missing values, and card prefixes.
A timezone conversion keeps the same instant
Local dates can differ while Unix seconds stay the same. Use the Time response to carry both the clock reading and the moment it represents.
An API version belongs with the code
Migrate an API integration with explicit version pins, consumer fixtures, staged rollout and a tested rollback. Includes an offline Carrier adapter example.
What to show when autocomplete has no suggestions
Build address forms that handle empty suggestions, location changes, stale responses, keyboard selection, and manual entry, with a downloadable offline example.
County, department, or district
The district endpoint keeps a consistent response while type tells you what kind of administrative area it describes.
Free email does not mean disposable
Email's free, disposable, and domain_type fields describe different things about an address. None of them proves someone's job or enrollment.
A temperature reading is not a temperature change
Converting a temperature reading and converting a change in temperature need different arithmetic. Measurement keeps the two types separate.
The population number has a period
A population estimate needs its observation year or period. The day you fetch it cannot tell you which period the estimate describes.
The search result shows what matched
A NAICS result can match an activity term that is absent from its title. The match field explains why the result appeared.
Which area belongs in the denominator?
Choose land area or total area for population density using Country API fields, while keeping missing values and the estimate's observation period.
Let me tell you what this column is
The bulk preview lets you identify a column that detection skipped and supply any required country without starting the upload over.
When Excel drops the zero from a ZIP code
Bulk can restore missing leading zeros in a US ZIP column when the country is known, while keeping other countries' postal formats intact.
Put the tool on your own site
Embed ParseAPI lookup tools on your website with theme settings and a preview. Visitors use the tool with your team's API allowance.
The response carries the next request
Use coordinates from a postal lookup for weather, elevation and time requests, and reuse country and state codes across related APIs.
The weather has an emoji field
Weather responses include a condition code, a readable description, and an emoji you can use in a small display.
The holiday moved and the JSON says so
The substitute field identifies an observed holiday that moved from its usual date, while regions tells you where it applies.
Lists give you a code and a name
Country, state, and district lists pair a readable name with the code you need for the next lookup.
Nearest city has a limit
Point lookups leave the nearest city null when it is more than 200 km away, while elevation and timezone can still resolve.
A city you can pin
Search for a city by name, then save its id so later lookups keep pointing to the city the user chose.
The next clock change is a field
next_dst gives the next known clock change and the offset after it, so scheduling interfaces can show when local time will change.
We do not sell credits
Bulk jobs give you a price for the file before payment, with automatic refunds for unknown results and no credit pack to buy.
A key that belongs in view source
Public keys let a frontend use your plan directly. Give each key an allowed domain list, including localhost for development.
The name arrives in all caps
/caller keeps the caller ID record as supplied, including capital letters and shortened names. An empty record is returned as null.
Country lookups include currency
A country response includes its currency code, name, and symbol. Follow the code when you need the full currency record.
The first request is the onboarding
A new API account starts with one request to run, the key already filled in, and an example of the response.
The missing coordinates looked real
Some missing Belgian address coordinates had been converted into plausible locations in France. Those points needed to be excluded before calculating postcode coordinates.
Home and mobile are both phone columns
Walk through a mixed-country CSV with two phone columns. Choose checks, supply row-level countries, understand duplicates, and read the download.
Twenty characters is enough
New API keys have 20 characters after the prefix. Older keys keep working.
Run a request from the docs
Run supported examples in your browser, inspect the live response, and copy a request with your own key when signed in.
127.0.0.1 is not an error
A local IP address can be valid without having a location. Why /ip returns null fields for loopback and private addresses.
Call it what people search for
Why the tariff endpoint moved from /hts to /tariff while the code in its response is still called hts.
Gender null is an answer
A name can parse successfully while gender and salutation stay null. The name data has to support the extra fields.
A VAT number can be valid without being registered
VAT format and checksum checks are separate from a registry lookup. The response keeps those answers in separate fields.
We put the data on GitHub
ParseAPI lists publishes JSON and CSV reference files on GitHub under CC0, with daily exchange-rate updates and monthly updates for the other lists.
A point in the ocean has a timezone
Coordinates in open ocean return a nautical timezone. Its Etc/GMT id has a backwards sign, but the offset field reads normally.
City search ranks, it does not alphabetize
City search puts exact primary-name matches first, then ranks matching names by population to make the results useful in a picker.
Where the weather reading came from
A weather response includes when the observation was made and how far away its station is, so the reading has some context.
The typo knew where it was going
The didyoumean field suggests a full email address when the domain is a known typo, without trying to correct the name before the @.
A late data update isn't an API outage
Pulse separates whether the API answers requests from whether its background data updates are on time.
Copy the text you can see
API setup snippets copy the complete key-based configuration, so the clipboard matches the code block.
Looking up a street address
An address can parse correctly without matching an official record. /address returns the standardized parts and a separate registration result.
A country column already answers the question
Bulk reads country context from each row, so an international file does not have to be forced through one country picker.
A dead number parses fine
Phone validation checks the numbering plan. HLR adds assignment and reachability status, which answer different questions.
A phone column is four questions
A phone list can need validation, carrier details, caller ID, or live status. Choose the checks on one quote and get the results in one file.
The checkout is for the choice you already made
Why ParseAPI's subscription checkout carries the selected plan, price and allowance straight into payment instead of showing the plan chooser again.
Carrier is its own endpoint
Carrier lookup moved from phone deep to /carrier. It answers a different question, with its own URL, page, and monthly allowance.
The price belongs next to the product
The phone pages had the price too far down. Moving it beside the example made the first screen answer the obvious question.
A country lookup includes its land neighbors
The borders field lists neighboring country codes, ready to use in another country lookup.
You can use the plan without writing code
A paid plan covers file jobs as well as API requests. You can use it entirely through bulk uploads or share it between files and an integration.
Drop the whole file
Upload a CSV, Excel, or Numbers file, choose the columns to check, and download your original rows with the results added beside them.
Group the catalog by what you have
Choose a ParseAPI endpoint by the input you have: a name, number, domain, IP address, place, coordinate, or code.
Start with a continent
List the countries and territories in a continent, then follow their codes into the country endpoint.
The native name is a sibling, not the default
Postal lookups return a primary place name and a separate native form when it differs. Use the _local fields for city, state, and district labels.
District is the neutral word
Why the API uses district for counties, departments, and similar administrative areas, while keeping their local type.
Why I called it point
Point takes a coordinate and returns information about that location. The name leaves room for more than elevation.
Below sea level is a real number
Elevation can be negative. Over open ocean, it describes the seafloor rather than the surface of the water.
Why the route is called nearby
Search for nearby postal codes by keeping the starting postcode in the path and adjusting the radius with the miles query parameter.
Bots get named, not just flagged
The bot flag is useful for filtering traffic. A recognized crawler also gets a name, category, and vendor in the deep response.
Why the dashboard says Activity
The request history became Activity, and billing moved below the pages you use to work with the API.
Lakes and rivers still resolve
A point on inland water can still have a country and state. The lookup follows administrative boundaries, not just dry land.
Booleans are plain words
Why flags like bot and mobile use short names and JSON booleans, without prefixes or numeric codes to decode.
MP is two places
MP can identify Madhya Pradesh or the Northern Mariana Islands. Keeping the country with a state code removes the ambiguity.
One code, three routes
The district code from a coordinate or postal lookup can be used directly to retrieve the county record.
A state carries its own districts list
Fetch the districts within a state using the state and country codes your application already has.
A country carries its own states list
Populate a state or province picker with one request using the country the user has already selected.
Email flags the inbox, not just the syntax
Email format, domain mail setup, and a role name such as admin or support are separate checks. Here is what each field tells you.
A phone number comes back in three formats
/phone returns a normalized number for storage and national and international formats for display in the same response.
Why the bot has a name
Parsebot identifies itself when it fetches data, with a page and an email address for the people running those servers.
The bug that looked like a browser problem
A signup failure first appeared as a Safari download. The signup flow was still expecting billing information that had moved to teams.
A key belongs to one team, many keys can share one plan
Use separate keys for apps and environments while keeping their usage, rate limit, and billing under one team.
One key, every API
Use the same secret API key for postal, IP, email, phone, and the rest of the API, with one team managing access and usage.
The wordmark is lowercase on purpose
ParseAPI is the written name. The wordmark keeps its lowercase parse, uppercase API, and braces.
One route. Two depths.
Use ?deep=true to request additional API response fields without moving existing fields. Learn when deep is omitted, empty, or populated.