Getting Mail Right in St Petersburg
Russian postal codes are six digits and they matter more than people outside the country realize. If you're shipping packages, registering a business address, or just trying to get a courier to show up at the right door, using the correct code saves you from watching your delivery sit at the sorting facility while someone calls you in Russian to figure out what went wrong. The short version: St Petersburg postal codes sit in the 190000–199999 range, and the exact six digits map to a very specific street segment or even a single building. The format is straightforward once you stop treating it like an American ZIP code. US ZIP codes cover large delivery routes. A single St Petersburg six-digit code can correspond to one building, one block, or occasionally one post office box section. The first two digits, 19, identify the federal subject (St Petersburg city proper). The remaining four digits narrow it down to a district, then a street, then a range of buildings on that street. For example, 190000 is the central post office on Nevsky Prospekt, but that doesn't mean every address on Nevsky Prospekt shares it. It means mail routed through that facility gets sorted by the more specific digits that follow. Here is how the ranges actually break down in practice. Central district (Tsentralny) covers roughly 190000 through 191019. Petrogradsky Island runs into the 197000s. Vasilevsky Ostrov falls in the 199000s. Kolpino and the southern suburbs sit around 196000. Krasnoye Selo is in the 196100s. Primorsky district is mostly 197000 through 197800. These are approximations, not hard walls, because the postal authority renumbers streets and reassorts routes when new developments open.
I learned this the hard way during a move in 2022. I had an old listing for an apartment near Lagutina Street in the Vasilevsky area. The ad said the postal code was 199104. I shipped a box there using the code from the listing, and it bounced back to sender after three days. The issue was that the building had been reassigned a new code after a municipal update, and the old code was still floating around on older websites. The workaround was simple but tedious: I called the local post office directly using the number listed on pochta.ru for the 199xxx exchange, gave them the exact street address and building number, and they confirmed the current code was 199161. Three weeks later I found out that some logistics companies like CDEK and DHL actually run their own code validation against an internal database that lags behind the official postal updates by months.
How to Find the Correct Code
The official source is the Russian Post website at pochta.ru. There is a section called " " where you can search by region, district, street, and building. You type in "-," pick the district, and then search the street. The results show the code along with the associated post office and delivery route. It is not always instant. During peak hours the search can take twenty seconds per query because the backend is old and slow, but it is accurate when it returns a result. If you are checking an address you received from a person rather than a public directory, verify it against two sources before relying on it. Cross-reference the pochta.ru result with Yandex Maps or 2GIS. Both platforms list postal codes alongside their map data, and they sometimes catch updates faster than the official system. If both agree, you are probably safe. If they disagree, call the post office that serves that code and confirm which one is current.
Get the Full Details

Common Mistakes That Waste Time
People who are not familiar with the system make the same errors repeatedly. The biggest one is assuming that a well-known landmark has one code. It does not. The Hermitage Museum, for instance, sits at 190000, but the surrounding buildings on Palace Square and the adjacent streets each have their own distinct codes. Shipping to "the Hermitage, St Petersburg, 190000" works for a large institutional shipment, but it will not reach a private apartment nearby if that apartment uses 190006 or 190005. Another mistake is using the Moscow code format by accident. Moscow codes start with 10xxxx or 11xxxx. If you paste a Moscow code into a St Petersburg address form, the parcel routes to Moscow and comes back, or worse, sits in a St Petersburg facility with no delivery attempt because the code and the address do not match. This happens frequently with online shoppers who copy codes from a product page that pulled the data incorrectly. A third pitfall involves new residential complexes. Developers register a building before the postal authority updates its routing tables. The code printed on the sales brochure or the property management paperwork may be temporary or placeholder. I have seen cases where a buyer waited six weeks for mail that was stuck at the district sorting center because the code pointed to a post office that had not yet been assigned to deliver to that building. The fix is to ask the management office or the developer for confirmation from the local post office, not just to trust the paperwork.
What the System Does Not Cover Well
The postal code system in St Petersburg is reliable for standard deliveries, but it has real blind spots. PO boxes at the main post office on Moskovsky Prospekt have their own coding structure that does not always align with street-level addresses. If you are receiving mail at a post office box, the code on your rental agreement may not match the code used for package drop-off points nearby. Check both separately. Industrial zones and business parks present another issue. A warehouse in the Kirovsky industrial area might share a street name with a residential zone in a different district. The postal codes differentiate them, but only if the address includes the correct building number and suffix. A generic address like "ulitsa Srednyaya, building 5" is not enough. You need the full street name and the district specified, otherwise the routing engine guesses and guesses wrong about half the time. International shippers sometimes run into a third problem: customs forms require the postal code, and if the code is wrong, the customs clearance desk flags the shipment for manual review. This adds two to four business days to delivery. I have watched a €400 shipment get held at the St Petersburg customs terminal for five days because the sender used a code from an outdated directory. The goods were fine. The code was not.
Practical Workflow for Getting It Right
Before you fill out any form, gather the exact address in Russian. Latin transliterations cause matching failures on most Russian systems. Write it as it appears on the building plaque or the lease: -, , , if applicable. Then run it through pochta.ru. If the result returns multiple codes for the same street, check whether the codes are split by building range. Most streets with more than fifty buildings have multiple codes assigned by odd/even numbers or by individual structures. For businesses, register the postal code with your legal address at the tax authority using the same verified code. Mismatched codes between your bank records and your tax registration can trigger audits or delay invoices. I once spent a morning on hold with a bank because their system rejected an invoice where the postal code on the invoice did not exactly match the code on file. The difference was a single digit. The bank required a formal letter from the post office confirming the correct code before processing anything. If you are a regular shipper, keep a small spreadsheet of verified codes for your frequent addresses. Update it every six months. Postal reassignments happen quietly and without fanfare, and the online directories do not always push alerts about them. A quick cross-check during a routine month can save you from a surprise return-to-sender later.

When the Code Is Not Enough
Even with the correct code, some deliveries fail. Couriers in St Petersburg often cannot find an entrance if the building has multiple entry points, a gated yard, or a loading dock that is not marked on the address line. The postal code gets the package to the right district. The courier gets it to the right door only if the address line is specific enough. Include the entrance number, floor, and apartment if you are providing instructions to a delivery driver. A code alone does not solve that problem. Remote areas on the outskirts, like Kudrovo or Yuzhny, sometimes have codes that look correct but are served by post offices with long wait times for outgoing mail. If speed matters, consider using a courier service that operates its own logistics network instead of relying on the national postal system for time-sensitive items. The cost is higher, but the delivery window is predictable, and the tracking is actual tracking rather than status updates that say "processed at facility" for three days straight. The bottom line is that the postal code system works when you treat it as a precise addressing tool rather than a shorthand. Verify the code. Verify the street. Verify the building. Do it once per address and you will rarely deal with returns or delays. Do it carelessly and you will learn the hard way how fast a package can disappear into a routing loop inside a sorting center.