{
  "id": 3414495,
  "title": "How I built a self-updating visa database from 13,507 passport-destination pairs",
  "url": "https://urgent.news/2026/08/26/how-i-built-a-self-updating-visa-database-from-13-507-passport",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-26T02:54:33.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/jones_william_01015943a08/how-i-built-a-self-updating-visa-database-from-13507-passport-destination-pairs-983"
  },
  "original_language": "en",
  "account": "For over a decade, the author managed international onboarding at a hardware shipping company. Travelers frequently asked if visas were required for entry into specific countries. The author decided to build a database with 13,507 passport-to-destination pairs to solve this problem. Visa rules are complex, with different entry requirements based on the passport holder's nationality. The dataset includes visa-free entry limits, eTA/ESTA requirements, eVisa availability, and visa-required flags with application portal links. The dataset is updated regularly using a policy-monitoring script that monitors US Federal Register and government visa-policy sources. The author wrapped the dataset in a public lookup tool to make it user-friendly, and it is available in English and Spanish. The dataset is open and machine-readable, ready for use by travel platforms, researchers, or anyone needing visa information. However, the author emphasizes that the dataset is not a substitute for consulting the destination embassy or consulate before traveling, as visa rules can change rapidly and details may vary by nationality.",
  "summary": "For 12 years I handled international onboarding at a company that shipped hardware to 90+ countries. Every month someone asked me the same thing: \"Do we need a visa for our engineer going to Brazil? What about the client in Singapore on an Indian passport?\" And every month I'd open five tabs, cross-reference three outdated travel sites, and still guess wrong on stay limits. So instead of Googling…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}