# Coordinate Reference Systems (CRS) & GDA-2020

Use this guide to choose supported input and response coordinate systems, send CRS headers, and confirm the coordinates returned by an API.

For the spatial endpoints listed below, the documented default response CRS is **GDA94**. Check the endpoint before requesting another CRS. Maps vector tiles and Datasets downloads use their own tile or file coordinate systems.

## Choose a CRS

| CRS | EPSG URI | Typical use |
| --- | --- | --- |
| [GDA94](https://www.icsm.gov.au/datum/geocentric-datum-australia-1994-gda94) | `https://www.opengis.net/def/crs/EPSG/0/4283` | Default for existing Geoscape integrations. |
| GDA2020 | `https://www.opengis.net/def/crs/EPSG/0/7844` | Australian datasets and workflows aligned to GDA2020. |
| WGS84 | `https://www.opengis.net/def/crs/EPSG/0/4326` | Global mapping and systems that expect WGS84. |
| [AGD66](https://www.icsm.gov.au/datum/australian-geodetic-datum-196684-agd) | `https://www.opengis.net/def/crs/EPSG/0/4202` | Legacy Australian spatial data. |

For background on Australia's datum transition and GDA2020, see the [ICSM GDA2020 guidance](https://www.icsm.gov.au/gda2020).

GDA94, GDA2020, and WGS84 are different coordinate reference systems. Choose the CRS that matches the data you are combining with the API response. If your mapping or spatial system expects WGS84, request it explicitly.

## Request a CRS

The CRS is selected using the `Accept-Crs` header on endpoints that support CRS negotiation. The `Accept-Crs` mechanism follows the [OGC content negotiation by CRS specification](https://github.com/opengeospatial/conneg-by-crs/blob/master/18-072-Content-Negotiation-by-CRS.md).

Use the complete URI in angle brackets:
```shell
curl "https://api.psma.com.au/v2/addresses/geocoder?address=1%20Swanston%20Street%20Melbourne%20VIC%203000" \
  -H "Authorization: $GEOSCAPE_API_KEY" \
  -H "Accept: application/geo+json" \
  -H "Accept-Crs: <https://www.opengis.net/def/crs/EPSG/0/7844>"
```

To list multiple CRSs in preference order, separate their URIs with commas and use optional `;q=` values. For example, `<https://www.opengis.net/def/crs/EPSG/0/7844>, <https://www.opengis.net/def/crs/EPSG/0/4283>;q=0.5` prefers GDA2020 over GDA94. See [MDN's explanation of quality values](https://developer.mozilla.org/en-US/docs/Glossary/quality_values).

The current API reference documents `Accept-Crs` request support for the following APIs:

- [Addresses API](/apis/addresses)
- [Admin Boundaries API](/apis/admin-boundaries)
- [Buildings API](/apis/buildings)
- [Land Parcels API](/apis/land-parcels)
- [Predictive API](/apis/predictive)

For these APIs, send the header to request a supported CRS for the spatial response. Check the individual endpoint reference for its supported values and default.

## Supply input coordinates

On point and bounding-box endpoints that document `Content-Crs`, that request header identifies the input coordinate system. `Accept-Crs` independently selects the response coordinate system. Both default to GDA94 where documented.

Use the exact `https://` URI and angle brackets shown in the reference. The current CRS parser rejects `http://` URIs. For example, `<https://www.opengis.net/def/crs/EPSG/0/7844>` identifies GDA2020.

## Confirm the response CRS

Read the `Content-Crs` response header. It identifies the CRS used for the coordinates in that response. Do not assume that the requested CRS was applied without checking the response.

The response may also include `Accept-Crs`, which lists the CRSs accepted by the service. The endpoint reference shows the headers and supported values for that operation.

## Integration notes

- CRS selection is optional on the endpoints that document it. Use the endpoint’s published default when you omit the header
- Store the CRS alongside coordinates when persisting or exchanging spatial data.
- Transform coordinates only when you understand both the source and target CRS. Avoid applying a second transformation to coordinates already returned in your chosen CRS.
- Geographic coordinate pairs are ordered `[longitude, latitude]`. Read the CRS header before interpreting coordinate units
- Coordinate precision is endpoint-specific. Decimal places do not establish the accuracy of the source location

## Next steps

- [Try the Addresses API quickstart](/guides/addresses/quickstart)
- [Browse the API Reference](/reference)
- [Preserve response attribution](/guides/attribution)
