ForHosting KIT · Developer Utilities

Check passport validity for a travel date

Use this passport validity checker to compare an expiry date with a planned departure and return.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

It applies a common travel-screening rule: the passport must remain valid for at least six calendar months after the return date. The result shows the exact threshold, whether the passport meets it, how many days of validity remain after return, and any shortfall. This is a planning check, not an official entry decision; requirements can differ by destination, nationality, document type, route, and transit country.

Enter the three dates from your actual itinerary

Start with the expiry date printed on the passport, then enter the planned departure and return dates in YYYY-MM-DD format. Use the date on which the traveler expects to finish the international trip, not the date a booking was purchased or the date an application is submitted. The checker rejects an itinerary when the departure is after the return because that order cannot describe the planned trip. It also validates every date as a real Gregorian calendar date, so values such as February 30 do not silently produce a misleading answer. Names, passport numbers, nationality, and other personal details are neither needed nor requested. If a journey has several international segments, use the final return date for this conservative six-month check, then separately review every destination and transit point. Run the calculation again whenever the itinerary changes, since moving the return by even a few days also moves the minimum acceptable expiry date. The calculation is deterministic and does not use the current date, so the same three inputs always produce the same result.

Understand the calendar-month threshold

The required validity date is calculated by adding six calendar months to the planned return date. This is not treated as a fixed number of days, because calendar months have different lengths. For example, a return on October 15 produces a threshold of April 15. When the corresponding day does not exist in the target month, the calculation uses that month’s final valid day: six months after August 31 is the last day of February, including February 29 in a leap year. A passport meets the rule when its expiry date is on or after the calculated threshold. The response also reports the total number of calendar days between return and expiry, which can be negative if the passport expires before the traveler returns. The shortfall is zero when the rule is met; otherwise it states how many additional days are needed to reach the threshold. These fields make the decision auditable while keeping the central answer straightforward: a true or false result against one clearly displayed date.

Treat the result as a planning screen, not official advice

Six months beyond travel is a widely used rule of thumb, but it is not universal and the relevant reference point may differ. A country may require validity beyond arrival rather than return, accept a shorter period, impose blank-page rules, distinguish ordinary from emergency passports, or apply different terms according to citizenship and visa status. Airlines and transit countries can also perform their own document checks. For that reason, a passing result means only that the dates satisfy the calendar rule implemented here; it does not guarantee boarding, transit, admission, or visa approval. After checking the dates, confirm the current requirement with the destination government, every transit-country authority, and the operating carrier. Renew early if the result fails or sits close to the boundary, especially when tickets are changeable or delays could extend the trip. The browser calculation can be used without an account, while automated checks through the API cost $0.002 per request. No network lookup is performed, so this tool never substitutes an outdated rules database for an official source.

Screen a passport before booking

Compare the printed expiry date with a proposed itinerary before committing to flights or accommodation.

Check travelers in a group

Run the same consistent six-calendar-month test for each traveler without collecting passport numbers or names.

Recheck after an itinerary change

Calculate the new threshold when a return date moves and see the exact number of shortfall days.

Does every country require six months of passport validity?

No. Rules vary by destination, citizenship, route, document type, and visa status. Confirm current requirements with official authorities and the carrier.

Is the six-month period counted from departure or return?

This checker deliberately uses the planned return date as a conservative common-rule screen and adds six calendar months to it.

How are month-end dates handled?

If the same day does not exist six months later, the threshold becomes the last valid day of that target month.

Does a passport expiring exactly on the threshold pass?

Yes. An expiry date equal to or later than required_valid_until meets the rule implemented by this checker.

Does a passing result guarantee entry or boarding?

No. It checks only the three supplied dates against one calendar rule and cannot account for current government, visa, transit, airline, or passport-condition requirements.

What does the API request cost?

Each API request costs $0.002. The same deterministic calculation is also available free in the browser.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/travel2/passport-expiry-travel-check

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/travel2/passport-expiry-travel-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"passport_expiry_date":"2027-04-20","travel_date":"2026-09-10","return_date":"2026-09-20"}'
{
  "passport_expiry_date": "2027-04-20",
  "travel_date": "2026-09-10",
  "return_date": "2026-09-20"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "travel2.passport_expiry_travel_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →