UTM to lat/lon converter
Zone 33 north with easting 500,000 m and northing 4,649,776.22482 m sits at latitude 41.9999999991° and longitude 15°, right on the zone's central meridian. Enter zone, hemisphere, easting and northing and get WGS84 degrees back. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- UTM zone number
- 33
- Hemisphere
- N
- UTM easting in meters
- 500,000
- UTM northing in meters
- 4,649,776.22482
- Latitude
- 41.9999999991
- Longitude
- 15
- Latitude
- 41.9999999991
- Longitude
- 15
This UTM to lat lon converter turns a Universal Transverse Mercator position — zone number from one to sixty, northern or southern hemisphere, easting and northing in meters — into WGS84 geodetic latitude and longitude. Surveyors, GIS pipelines, and field apps still store points in UTM because the local meter grid is convenient for distance and area, yet maps, APIs, and GPS consumers almost always need degrees. The engine applies the standard Snyder inverse transverse Mercator series on the WGS84 ellipsoid with scale factor zero point nine nine nine six, false easting five hundred thousand meters, and a ten million meter false northing in the southern hemisphere. Known checks include the central meridian of zone thirty-three near fifteen degrees east when easting is five hundred thousand, and equator crossings when northern northing is near zero. The path is pure finite arithmetic with no network geocoding, no random jitter, and no date-dependent shortcuts.
What each UTM number tells you
UTM divides the Earth into sixty longitude bands of six degrees each. Zone one covers one hundred eighty west through one hundred seventy-four west; zone numbers increase eastward so zone thirty-three is centered on fifteen degrees east. Within a zone, easting is meters east of a false origin five hundred thousand meters west of the central meridian, so an easting of five hundred thousand sits on that meridian.
Northing is meters north of the equator in the northern hemisphere, or meters north of a ten million meter false origin in the southern hemisphere so that southern values stay positive. Hemisphere must be N or S (north or south are also accepted). This calculator returns the WGS84 latitude and longitude of that grid point, not a military grid reference string, not a UPS polar coordinate, and not a forward UTM from degrees.
Where UTM to lat/lon conversion fits in GIS, survey, and software
GIS students use the same conversion when a course introduces transverse Mercator after plate carrée and asks for the latitude of a given easting and northing. Contest and interview practice often needs a fast offline source of lat-lon so candidates can verify hand calculations under time pressure. Product tools use the inverse when a support engineer pastes zone and meter coordinates from a ticket and needs geographic context in one step.
Pair it with geohash decode or tile-to-lat-lon helpers when you are building a small lab of free, deterministic mapping utilities, and keep this tool focused on the single question: given a UTM zone, hemisphere, easting, and northing, where is that point on Earth in WGS84 degrees.
What you can do with it
Survey CSV and field notes to degrees
Paste zone, hemisphere, easting, and northing from a controller export and get WGS84 lat/lon for maps and APIs.
GIS homework and teaching demos
Check textbook inverse-UTM answers without re-implementing Snyder series on a calculator by hand.
FAQ
What does the UTM to lat/lon converter cost?
It is free in your browser on this page.
What happens if the zone is outside 1–60?
UTM zone numbers must be integers from 1 to 60 inclusive.
Why is non-positive easting rejected?
UTM easting is measured from a 500000 m false origin and is designed to stay positive inside a zone.
Why are results rounded to a precision?
Default precision is 10 decimal places; you can set precision from 0 to 15.
Should I remove the ten million metre offset from a southern northing?
No. Enter the northing exactly as your southern map or file gives it and choose the southern hemisphere. The converter applies the ten million metre false origin itself, which is why southern northings are large positive numbers.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/utm-to-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"zone":33,"hemisphere":"N","easting":500000,"northing":4649776.22482}'const res = await fetch("https://api.kit.forhosting.com/geo/utm-to-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"zone": 33,
"hemisphere": "N",
"easting": 500000,
"northing": 4649776.22482
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/utm-to-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"zone": 33,
"hemisphere": "N",
"easting": 500000,
"northing": 4649776.22482
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/utm-to-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"zone":33,"hemisphere":"N","easting":500000,"northing":4649776.22482}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"zone":33,"hemisphere":"N","easting":500000,"northing":4649776.22482}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/utm-to-latlon", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"zone": 33,
"hemisphere": "N",
"easting": 500000,
"northing": 4649776.22482
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.utm_to_latlon",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
min_zone | 1 |
max_zone | 60 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What UTM inputs mean and what the response contains
The response echoes the validated zone and hemisphere, the easting and northing used, latitude and longitude rounded to the requested precision, short lat and lon aliases, the central meridian in degrees, a datum tag WGS84, the method tag utm_inverse_snyder, the precision used, and a compact formula string for documentation. There is no reverse address lookup, no network call to a gazetteer, and no random jitter: the engine either projects a finite geodetic point inside the supported zone range or rejects the input with invalid_input. Rejected cases include missing zone, hemisphere, easting, or northing, a zone outside one through sixty, non-positive easting, negative northing, non-finite numbers, and unrecognised hemisphere labels.
How fields are read and how lat/lon stay reproducible
Easting must be strictly positive because a non-positive value lies outside the design range of the false-easting convention and would not represent a usable grid position in ordinary survey practice. Northing must be non-negative; southern positions still use large positive northings under the ten million meter offset. The preferred fields are zone for the UTM band, hemisphere for N or S, easting and northing in meters, but aliases utm_zone and zone_number for zone, hemi and ns for hemisphere, E, x, and east for easting, and N, y, and north for northing are accepted so query strings, spreadsheets, and typed forms can reuse the same contract. Zone must be an integer from one to sixty inclusive; anything outside that range fails with invalid_input and an explicit message that UTM uses sixty six-degree bands. Values may arrive as JSON numbers or as decimal strings; floats with exponents are fine when finite, while empty strings, Infinity, and NaN are rejected so a bad cell does not become a wrong meridian. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for latitude and longitude, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing WGS84 UTM yourself.
Where UTM to lat/lon conversion fits in GIS, survey, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Deterministic GIS test fixtures
Generate reproducible latitude and longitude for unit tests of UTM zones, central meridians, and meter grids.
Technical questions
Which datum and projection are used?
WGS84 ellipsoid with standard UTM parameters: k0 = 0.9996, false easting 500000 m, southern false northing 10000000 m.