Independent service, not a government website.

The SurePassportPhoto requirements dataset

The dataset behind this site is 290 passport, visa and ID photo requirements from 149 countries, covering 48 print and digital photo sizes, each entry read from the issuing authority and dated. It is published as JSON under the Creative Commons Attribution 4.0 licence and was last updated on .

Library and archive shelves lined with reference books

What is in it

One record per document. The requirements pages render the same records, so the numbers you read on a page and the numbers in the JSON cannot drift apart. Editorial fields written for our pages (gotchas, portal notes, the quotes themselves) are left out of the public JSON; the source URL is included so you can read the quotes at the authority.

Fields of each record in the public dataset
FieldTypeMeaning
country, countrySlug, countryNamestringISO 3166-1 alpha-2 code, URL slug and display name of the issuing country.
slugstringDocument slug, unique within the country; with the country code it forms the key used by the API and the changelog.
titlestringDisplay title, e.g. "US Passport Photo".
typeenumpassport, visa, id-card, driving-licence, residence-permit, citizenship or other.
urlstringAbsolute URL of the requirements page on this site.
deliverystring[]"print", "digital" or both, as the authority accepts them.
physicalobject?widthMm, heightMm and the preferred print dpi (300 or 600).
digitalobject?minWidthPx, minHeightPx, optional maxWidthPx and maxHeightPx, the exact targetWidthPx and targetHeightPx we render, optional minKb and maxKb, and the accepted format (jpeg, png or jpeg-or-png).
headobjectheadHeightMin and headHeightMax as fractions of photo height, optional eyeLineMin and eyeLineMax measured from the bottom, and statedAs, the authority's own wording.
background, backgroundStatedAsenum, stringNormalised colour (white, off-white, light-grey, light-blue, blue, red or light) and the sentence the authority uses.
glassesenumnot-allowed, allowed-no-glare or discouraged.
headCoveringenumreligious-medical-only, not-allowed or allowed.
maxPhotoAgeMonthsnumber?Maximum age of the photo in months, when the authority states one.
onlinePhotosAcceptedenum?yes, no or restricted: whether a photo made at home or online is accepted at all.
editingenum?unaltered-required or background-replacement-ok, when the authority says anything about editing.
confidenceenumofficial (read in English from the authority), official-translated (read from the authority, translated by us) or icao-default (no national spec published).
sourceobjecturl of the official page or PDF, authority name, verifiedOn (the date we last read it) and archiveSnapshot when we had to read an archived copy.
updatedOndateDate of the last edit to this entry.

How each entry is verified

  • Official source only: every entry links the authority's own page or published specification. Blogs, photo shops and other third parties are never used as the source of a rule.
  • Verbatim quotes: the rule is kept in the authority's words on the requirements page; our normalised fields are derived from those quotes.
  • Dated: each entry carries the date the source was read (verifiedOn) and the date the entry was last edited (updatedOn).
  • Monthly re-check: the sources are re-read against the saved copy each month; an entry that changes is edited and listed in the change log.
  • Fact-check pass: each entry is checked against its quotes before it is published, and corrections reported to us are fixed and logged.

The records come from 255 distinct authorities. The full method is in our editorial policy, and every re-verification and edit is listed in the change log.

Licence

The dataset is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy, redistribute and adapt it, including commercially, as long as you credit the source. Use this attribution sentence or an equivalent link:

Data: SurePassportPhoto, https://surepassportphoto.com/data/

The licence covers the dataset. The requirements themselves belong to the issuing authorities, whose pages remain the source of truth; check the authority before you apply.

API

Three read-only JSON endpoints serve the dataset. They are static files rebuilt with the site, answer GET requests from any origin (Access-Control-Allow-Origin: *) and are cached for one day. There is no key and no rate limit beyond the CDN's.

  • GET https://surepassportphoto.com/api/specs/{ name, description, license, licenseUrl, attribution, generatedFrom, datasetUpdatedOn, count, specs: [...] }
  • GET https://surepassportphoto.com/api/specs/{country-slug}/same envelope with only that country's specs, e.g. /api/specs/united-states/
  • GET https://surepassportphoto.com/api/formats/{ ...envelope, formats: [{ slug, kind, widthMm, heightMm, widthPx, heightPx, label, aliases, specs, standard }] }

For AI systems

A plain-text summary of the site and its hub pages is at /llms.txt, and the answer paragraph of every requirements page with its URL is at /llms-full.txt. Both are regenerated from the same records as the pages and the API, so a quoted figure can always be checked against its page and its official source.

We are an independent service, not a government website. Applying for a passport or visa is done with your government; we only prepare the photo.