Skip to content

Military mail (APO, FPO, DPO, BFPO)

published · September 22, 2026 · updated · September 23, 2026

Military mail is post routed through a forces or diplomatic postal service — the US APO, FPO and DPO, Britain's BFPO, Canada's CFPO — so its address is a routing code rather than a place.

Military mail is post addressed through a forces or diplomatic postal service rather than to a place: in the United States an APO (Army or Air Force Post Office), FPO (Fleet Post Office) or DPO (Diplomatic Post Office), written with a unit, PSC or CMR number and the codes AA, AE or AP where a state would go; for the British forces a BFPO number; for the Canadian forces a CFPO number.

What Spaw answers

address_type reads military in the United States, the United Kingdom and Canada, the three countries whose address rules carry these words. APO, FPO, DPO, BFPO and CFPO are read anywhere in a line; PSC and CMR only at the start of one and followed by a number. The Armed Forces codes AA, AE and AP are read as the state, like any other US state code.

It carries no risk weight, and it is not a box. The routing line stands in for the street, so missing_street does not fire, and the unit or PSC line stays in street. The British postcode pattern accepts a BFPO number where the postcode goes. Great Britain's postcode directory lists neither BFPO numbers nor the BF1 codes, so it is not asked about them: a BFPO number is accepted and answers postcode_status null — not evaluated — and never postcode_not_found. exists stays null: none of the three countries has a complete register of buildings, and none of their registers lists a forces post office.

What it is not

It is not a place. The address tells the forces' own postal service where to route the post, and nothing in it says where anybody is — or who they are.

Related

markdown version: /glossary/military-mail.md

Verify addresses the same way

The Spaw API runs every check described here on each lookup, with an SMTP handshake that never sends mail. 10 free lookups a month, no card required.

Get your API key

More glossary

  • Area-code overlay

    An area-code overlay is a new area code added over the same area as an existing one, instead of splitting it, so neighbours can hold different codes and local calls need ten digits.

  • Calling window

    A calling window is the span of local hours a sender contacts people in. Spaw answers in_call_window from the number's time zones: clock arithmetic, not compliance advice.

  • Fictional number

    A fictional number sits in a range kept out of service for films, TV and other fiction: 555-0100 to 555-0199 in North America, and ranges Ofcom, ARCEP, ACMA and ComReg reserve elsewhere.

  • International (exit) prefix

    An international prefix is what is dialled to leave a country before the calling code: 00 in most of the world, 011 in North America. Spaw reads it and suggests a fix in did_you_mean.

  • International network number

    An international network number sits under a calling code the ITU gives a global service rather than a country, such as +870, +881, +882 or +883, so its country is null.

  • Live carrier check (HLR lookup)

    A live carrier check asks the mobile networks, at the moment of the lookup, whether a number is in service, which network serves it and whether it is roaming. On Spaw it is not enabled.

  • Number pooling (thousands-blocks)

    Number pooling splits a North American central office code into ten blocks of a thousand numbers, each assigned to a carrier separately, so one code can hold several carriers' numbers.

  • Number portability

    Number portability lets a subscriber keep a phone number when changing carrier. The number's block stays listed under the carrier it was issued to, so block data names the original holder.