What Is an EPSG Code?
Learn what an EPSG code identifies, why codes such as EPSG:4326 and EPSG:3857 matter in GIS, and what the number does—and does not—tell you about a coordinate reference system.
Explain EPSG codes as authoritative identifiers for registered geodetic definitions, while distinguishing the identifier from the CRS definition itself and preparing readers for more specific CRS-selection and transformation questions.
An EPSG code is a numerical identifier for a definition in the EPSG Geodetic Parameter Dataset. In everyday GIS work, you will most often encounter one as a short way of identifying a coordinate reference system (CRS): EPSG:4326, for example, identifies the WGS 84 geographic 2D CRS, while EPSG:3857 identifies WGS 84 / Pseudo-Mercator, commonly known as Web Mercator.
The code is not itself a projection, datum or collection of coordinates. It points to a registered definition containing the information software needs to understand a particular reference system.
That makes EPSG codes useful shorthand. Instead of passing around a long formal CRS definition, two GIS applications can agree that a dataset uses EPSG:4326 and refer to the same registered object.
What does EPSG stand for?
EPSG originally stood for the European Petroleum Survey Group, an organisation formed in the 1980s by geodetic specialists from European-based petroleum companies. One of its early projects was to assemble consistent definitions of coordinate reference systems and other geodetic parameters used across different countries and software systems.
The dataset was made public in the 1990s. In 2005, the original European Petroleum Survey Group was dissolved and its work became part of what is now the International Association of Oil & Gas Producers (IOGP). The letters EPSG were retained because the name had already become widely recognised; today EPSG functions as the brand name of the dataset rather than as an abbreviation for a current organisation.
Its use has also expanded far beyond the petroleum industry. The EPSG Dataset is now widely used by GIS software, mapping agencies, surveying applications, geospatial libraries and data formats to identify coordinate reference systems and coordinate operations.
What does a code such as EPSG:4326 actually identify?
Consider:
EPSG:4326There are two parts:
EPSG : 4326
│ │
│ └── identifier
└───────── authorityEPSG identifies the authority or registry from which the definition comes.
4326 identifies a particular CRS in that registry.
Looking up CRS code 4326 in the EPSG Dataset gives considerably more information than the four-digit number suggests. The registered object is named WGS 84, is classified as a geographic 2D CRS, uses an ellipsoidal coordinate system, has latitude and longitude axes, and uses degrees as its angular unit.
The code therefore acts somewhat like a catalogue number.
It is compact and convenient, but its usefulness depends on the authoritative definition behind it.
An EPSG code is not the same thing as a CRS
The distinction may sound pedantic, but it prevents several common misunderstandings.
A coordinate reference system is the actual framework that relates coordinates to positions in the world. Its definition can contain information about the reference frame or datum, coordinate system, axes, units, area of use and, for a projected CRS, the conversion used to create its planar coordinates.
An EPSG code is simply an identifier for a registered definition.
For example:
EPSG:4326 identifies a CRS.
But the number 4326 does not mathematically define WGS 84. Software that recognises the identifier uses the corresponding definition from its CRS database.
This is also why the same CRS can sometimes be represented in several ways. A system might refer to it using an EPSG identifier, a WKT definition, or another standards-compliant identifier. OGC's WKT standard, for example, permits a CRS definition to contain an identifier such as ID["EPSG",4326].
The short identifier and the full definition serve different purposes.
EPSG:4326 and EPSG:3857 are not versions of the same CRS
The similarity of the notation can make EPSG numbers look hierarchical:
EPSG:4326
EPSG:3857
EPSG:32632They are not.
You should not interpret a larger number as newer, more accurate or more specialised than a smaller one. The numerical code is an identifier, not a measurement or ranking.
EPSG:4326 identifies the WGS 84 geographic 2D CRS. Its coordinates use latitude and longitude in degrees.
EPSG:3857 identifies WGS 84 / Pseudo-Mercator, a projected CRS with easting and northing coordinates in metres whose registered scope is web mapping and visualisation.
They represent locations differently and serve different purposes.
If those two codes are the reason you encountered EPSG identifiers in the first place, EPSG:4326 vs EPSG:3857: WGS 84 and Web Mercator Explained goes into that practical distinction in detail.
An EPSG code does not mean “projection code”
It is common to hear phrases such as:
What EPSG projection is this?
or:
What's the EPSG for this projection?
Those questions are understandable, but they blur several different concepts.
A CRS may be geographic, in which case there may be no map projection involved at all. EPSG:4326 is the obvious example: it is a geographic CRS, not a projected CRS.
A projected CRS, on the other hand, includes a conversion from an underlying geographic CRS to a Cartesian coordinate system. Web Mercator's CRS, EPSG:3857, is one such example.
So an EPSG CRS code identifies the complete registered coordinate reference system, not merely its projection method.
That distinction will be explored more directly in Geographic vs Projected Coordinate Systems.
EPSG codes identify more than coordinate reference systems
There is a technical nuance that everyday GIS interfaces often hide.
The EPSG Dataset contains more than CRSs. It also contains definitions for coordinate operations, reference frames/datums, ellipsoids, coordinate systems, units, extents and other geodetic objects. Those objects can have EPSG codes too.
The EPSG Registry explicitly notes that every item in the Dataset has an EPSG code. Code values are unique within the relevant parts of its relational data model, but the same numerical value can sometimes occur for different kinds of objects. Coordinate reference systems and coordinate operations are a notable exception because those two top-level object types share a code range.
So, technically:
“EPSG code” does not always mean “EPSG CRS code”.
In ordinary GIS conversation, however, a notation such as:
EPSG:4326is conventionally interpreted as a CRS identifier. OGC explicitly defines the shortened EPSG:identifier form for registered coordinate reference systems, with EPSG:4326 corresponding to the EPSG CRS definition numbered 4326.
For most GIS users, that is the convention that matters day to day.
Does an EPSG code tell you the coordinate order?
Indirectly, yes—but you need the definition rather than the digits.
The CRS registered as EPSG:4326 formally has axes ordered latitude, longitude.
That surprises many developers because GeoJSON and numerous software APIs commonly use longitude followed by latitude.
There is no contradiction in the EPSG number itself. The difference arises because the CRS definition has a formal axis order while a data format or software interface may define its own coordinate serialisation convention.
This is exactly why treating 4326 as synonymous with “longitude, latitude” can cause problems.
Latitude vs Longitude: Which Comes First? covers that distinction in more detail, including the difference between EPSG:4326 axis order and the longitude-latitude convention used by GeoJSON and OGC CRS84.
Does an EPSG code tell you which CRS you should use?
No.
An EPSG identifier tells you which registered object you are referring to. It does not tell you that the object is appropriate for your particular task.
Suppose you discover that a CRS uses metres. That does not automatically make it suitable for measuring areas or distances in your study region. Likewise, a CRS being widely supported does not mean it is appropriate for every location.
A CRS definition can include an area of use and scope precisely because coordinate reference systems are not universally interchangeable. The EPSG record for EPSG:3857, for example, explicitly gives its scope as web mapping and visualisation.
Choosing a CRS therefore requires looking beyond the identifier to questions such as:
Is it geographic or projected?
Which datum or reference frame does it use?
What are its units?
What area is it intended for?
What is its stated scope?
What properties matter for your analysis?
Is a particular coordinate transformation required?
The EPSG number helps you communicate the answer once you have chosen the CRS. It does not make the choice for you.
Can a dataset have the wrong EPSG code?
Yes.
An EPSG code in metadata is a claim about what the coordinates mean. The mere presence of a recognised code does not prove that the claim is correct.
Suppose coordinates were actually created in CRS A but the dataset is labelled as CRS B. GIS software will interpret the numbers according to B because that is what the metadata says. The result can be a layer in the wrong location.
Replacing the code with another one is also not automatically a reprojection. Assigning a CRS and transforming coordinates are different operations: correcting an erroneous identifier changes the interpretation of existing coordinates, while reprojection calculates new coordinates in another CRS.
If a layer is already misplaced and you do not know which case applies, Why Is My GIS Data Appearing in the Wrong Place? provides a more useful diagnostic sequence than trying EPSG codes until one appears to work.
Are EPSG codes permanent?
EPSG codes are intended to be stable identifiers.
The EPSG Registry describes its codes as stable, unique and permanent identifiers for Dataset content. When an existing record is found to be incorrect or superseded, the general policy is not to recycle or delete its identity but to deprecate the record and, where appropriate, replace it with another definition.
This matters when working with old datasets or software.
A recognised EPSG code may still refer to a deprecated object. The number has not necessarily become meaningless, but the Registry may recommend a replacement or indicate that the definition should no longer be used for new work.
So when the CRS matters operationally—particularly for high-accuracy or long-lived datasets—it is worth checking the actual Registry entry rather than relying on an old list of codes copied into documentation years ago.
Can you invent your own EPSG code?
No.
You can create a custom coordinate reference system, and software can represent one using a WKT definition or other CRS description. But assigning an arbitrary number and calling it EPSG:12345 does not make it an EPSG CRS.
The EPSG prefix asserts that the identifier belongs to the EPSG authority and corresponds to a registered definition.
This distinction matters for interoperability. If two systems both understand EPSG:4326, they can resolve that identifier to a recognised definition. A locally invented “EPSG” number has no such shared meaning and may conflict with a real EPSG object.
If a custom CRS needs wider formal recognition, registration is a governance question rather than a naming trick.
How should you look up an EPSG code?
When you need to verify a CRS, the strongest source is the EPSG Registry itself, rather than a search-result snippet or an unofficial code list.
A useful CRS record can tell you more than its name. Depending on the object, you can inspect information such as:
CRS type;
coordinate system and axis order;
units;
datum or reference frame;
base CRS;
conversion;
scope;
area of use;
remarks;
validity or deprecation status.
The broader EPSG Dataset is maintained by IOGP and contains both CRS definitions and the coordinate transformations and conversions needed to change coordinates between reference systems.
GIS software and libraries such as PROJ usually carry copies or derived representations of this information so that identifiers like EPSG:4326 can be resolved locally. But when something appears ambiguous or consequential, checking the authoritative record removes a great deal of guesswork.
The number is the shorthand, not the meaning
EPSG codes became ubiquitous because they solve a very practical communication problem.
A complete coordinate reference system definition can be complex. GIS applications need a concise, interoperable way to say:
These coordinates use this particular reference system.
EPSG:4326 is much easier to exchange than a full formal definition of WGS 84.
But the convenience of the identifier can conceal what sits behind it.
An EPSG code does not tell you, merely from its digits, whether a CRS is geographic or projected. It does not tell you whether its coordinates are suitable for measuring area. It does not guarantee that the code attached to a dataset is correct. And it does not mean that every object in the EPSG Dataset is a CRS.
It identifies a registered definition.
Once you know that, EPSG codes become much easier to reason about:
the CRS gives coordinates their geographic meaning; the EPSG code gives that CRS a concise, shared identity.
References
IOGP — Understanding the EPSG Geodetic Parameter Dataset. Describes the EPSG Dataset as a repository of the parameters required to define CRSs and coordinate operations, and explains its maintenance and distribution.
EPSG Registry — EPSG and OGC URIs. Defines EPSG codes as stable identifiers for Dataset objects and explains how codes are used for CRSs and other geodetic objects.
EPSG Registry — History of the EPSG Dataset. Documents the origin of the European Petroleum Survey Group, transition to IOGP stewardship, and continued use of EPSG as the Dataset's brand name.
Open Geospatial Consortium — Name Type Specification. Defines the shortened
EPSG:identifierform for registered coordinate reference systems and its expansion to an OGC CRS identifier.EPSG Registry — WGS 84 (EPSG:4326) and WGS 84 / Pseudo-Mercator (EPSG:3857). Authoritative records used here as examples of geographic and projected CRS identifiers.