Complete reference to BMW engine codes — M, N, B, S series. Identify your engine from the VIN, build sheet, or engine stamp. Includes displacement, fuel type, and generation.
BMW engine codes follow a consistent pattern: a letter (family) + two digits (displacement) + optional suffix. The letter indicates the engine family: M (older), N (modern), B (latest modular), S (high-performance).
Full decoder table, variant notes, and how to verify your actual engine below.
The table below lists the major BMW engine families and their common codes. For a complete list of every variant, refer to the individual Engine Knowledge Centre pages.
| Family | Code | Displacement | Fuel | Typical Applications |
|---|---|---|---|---|
| M (1980s–2000s) | M47 | 2.0L | Diesel | E46 320d, E90 320d |
| M | M57 | 3.0L | Diesel | E46 330d, E60 530d |
| N (2000s–2010s) | N47 | 2.0L | Diesel | F30 320d, E90 318d |
| N | N57 | 3.0L | Diesel | F10 530d, F15 X5 30d |
| N | N20 | 2.0L | Petrol | F30 320i, F10 520i |
| N | N55 | 3.0L | Petrol | F30 335i, F10 535i |
| N | N63 | 4.4L | Petrol (V8) | F10 550i, F15 X5 50i |
| B (2014+) | B47 | 2.0L | Diesel | G20 320d, G30 520d |
| B | B57 | 3.0L | Diesel | G30 530d, G05 X5 30d |
| B | B58 | 3.0L | Petrol | G20 340i, G30 540i |
| S (M Performance) | S55 | 3.0L | Petrol | F80 M3, F82 M4 |
| S | S63 | 4.4L | Petrol (V8) | F90 M5, F85 X5 M |
| Older (M20, M30, M40, etc.) | M20, M30, M40/M42/M43/M44 | Various | Petrol | E30, E34, E36 |
Data compiled from BMW workshop manuals and production records [THIRD-PARTY — BMW TSB].
BMW engine codes always start with a letter that defines the engine family and era.
The digits after the letter indicate the approximate displacement in litres (e.g., N47 = 2.0L, B58 = 3.0L). The final letter(s) denote variant and generation.
The suffix after the displacement code provides additional detail:
Sometimes the full code includes a letter for the generation (e.g., N47D20C vs N47D20A). The full variant can be identified from the engine stamp or VIN. For a detailed breakdown, refer to the engine number location guide.
Not all BMW engines follow the exact pattern. Some older engines (e.g., M20) use a different numbering system. Additionally, engine codes can sometimes be confused with chassis codes. Always cross-check the engine number on the block itself, as this is the definitive identifier.
For cars after 2010, the engine code is also embedded in the VIN (positions 4–7). The VIN decoder tool can help extract this automatically. If you're still unsure, consult our engine code guide for model-specific fitment.
The most reliable method is to read the engine number stamped on the engine block. This is usually located on the front left side (when viewed from the driver's seat) or on the top of the block near the intake manifold. The full engine number includes the code, variant, and unique serial number. You can also find the code on the build sheet (usually under the bonnet or inside the driver's door jamb) or decode the VIN using online tools (we recommend our VIN decoder). For older models, the engine code may be on a sticker on the timing cover.
If you have the VIN, the 4th–7th digits often indicate the engine type. For example, a VIN starting with WBA7A... might decode to a B58 engine. However, this can be ambiguous; the engine stamp is definitive.
Every Figure SourcedData from BMW workshop manuals and verified specialist interviews.
Last Verified April 2026Reviewed with current BMW production data.
20+ Vetted BMW SpecialistsReal-world verification of engine codes.
100% IndependentNo manufacturer influence – unbiased technical reference.
If you're unsure which BMW engine you have, use our diagnostic wizard or get a specialist consultation.
COMPARE QUOTES NOW USE THE VIN DECODER →