BYTETOOLS

Georef Argentina API

Free official Argentine geography API with no key: provinces, departments, municipalities, localities, street normalisation and reverse geocoding. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Georef Argentina API?

Georef is the Argentine government's free, key-free API for national territorial data. It serves provinces, departments, municipalities, census localities and settlements with centroids, normalises street addresses, and reverse-geocodes coordinates to the administrative units that contain them.

Argentine administrative names are messy in practice — the same locality appears as "CABA", "Ciudad Autónoma de Buenos Aires" and "Capital Federal" across three government datasets — and Georef exists to fix exactly that. It is the normalisation service behind the national open data programme, so its identifiers are the ones other Argentine public datasets are keyed on.

The `campos` parameter deserves attention because it does more than trim the payload. Requesting `centroide` as a field flattens the nested `centroide.lat` and `centroide.lon` into the response, and the parameters echo back in `parametros` so you can see exactly what the server understood. The rate limit headers are unusually informative too: separate second, minute, hour and day counters come back on every response, which makes it easy to pace a bulk normalisation job without guessing.

Quick facts

Base URL
https://apis.datos.gob.ar/georef/api
Authentication
No API key or account. Argentine open government data, free to reuse including commercially.
Rate limit
Tiered and reported on every response: roughly 200 requests per second, 6,000 per minute, 154,000 per hour and 3,000,000 per day per IP.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Georef Argentina API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. List Argentine provinces with their centroids

GET https://apis.datos.gob.ar/georef/api/provincias?campos=id,nombre,centroide

curl
curl 'https://apis.datos.gob.ar/georef/api/provincias?campos=id,nombre,centroide'
JavaScript (fetch)
const res = await fetch("https://apis.datos.gob.ar/georef/api/provincias?campos=id,nombre,centroide");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://apis.datos.gob.ar/georef/api/provincias?campos=id,nombre,centroide", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "cantidad": 24,
  "inicio": 0,
  "parametros": {
    "campos": [
      "id",
      "nombre",
      "centroide.lat",
      "centroide.lon"
    ]
  },
  "provincias": [
    {
      "centroide": {
        "lat": -34.6144420654301,
        "lon": -58.4458763250916
      },
      "id": "02",
      "nombre": "Ciudad Autónoma de Buenos Aires"
    },
    {
      "centroide": {
        "lat": -38.6419828626673,
        "lon": -70.1198972237318
      },
      "id": "58",
      "nombre": "Neuquén"
    },
    {
      "centroide": {
        "lat": -33.7611035381154,
        "lon": -66.0252312714021
      },
      "id": "74",
      "nombre": "San Luis"
    },
    {
      "centroide": {
        "lat": -30.7088227091528,
        "lon": -60.9506872769706
      },
      "id": "82",
      "nombre": "Santa Fe"
    },
    {
      "centroide": {
        "lat": -29.6849372775783,
        "lon": -67.1817575814487
      },
      "id": "46",
      "nombre": "La Rioja"
    },
    {
      "centroide": {
        "lat": -27.3359537960762,
        "lon": -66.9478972451295
      },
      "id": "10",
      "nombre": "Catamarca"
    },
    {
      "centroide": {
        "lat": -26.948283501723,
        "lon": -65.3647655803683
      },
      "id": "90",
      "nombre": "Tucumán"
    },
    {
      "centroide": {
        "lat": -26.3869871835867,
        "lon": -60.765116260356
      },
      "id": "22",
      "nombre": "Chaco"
    },
    {
      "centroide": {
        "lat": -24.8950871761481,
        "lon": -59.9321901121647
      },
      "id": "34",
      "nombre": "Formosa"
    },
    {
      "centr

Parameters

ParameterTypeRequiredDescription
camposqueryOptionalComma-separated fields to return. `basico`, `estandar` and `completo` are shorthand presets. id,nombre,centroide
nombrequeryOptionalFilter by name. Matching is accent- and case-insensitive and tolerates minor spelling variation. Neuquén
provinciaqueryOptionalRestrict departments, municipalities or localities to one province, by id or name. 82
lat / lonqueryOptionalReverse geocode: returns the units containing the point via `/ubicacion`. -34.6144
max / inicioqueryOptionalPage size and offset. `max` defaults to 10 and tops out at 5,000. 50
formatoqueryOptional`json` by default; `csv` and `geojson` are also available. geojson
(direcciones)pathOptional`/direcciones?direccion=` parses and normalises a free-text Argentine street address.

Response fields

cantidadinteger
How many records this response contains — not the total available.
totalinteger
Total matching records, returned when you page with `inicio`.
parametrosobject
Echo of the parameters as the server interpreted them, including expanded field shorthands.
provincias / departamentos / localidadesarray
The result list, named after the resource you queried.
idstring
Official INDEC code as a zero-padded string. "02" is not 2, so never parse it as a number.
nombrestring
Canonical name with correct accents — the value to store for display.
centroide.lat / centroide.lonfloat
Centroid of the unit, as separate numeric fields rather than a GeoJSON pair.

What you can build with the Georef Argentina API

  • Normalise inconsistent Argentine province and locality names across datasets
  • Populate a province → department → locality selector
  • Reverse-geocode coordinates to Argentine administrative units
  • Parse free-text Argentine street addresses into structured components
  • Join business data to INDEC codes for official statistics

Common errors and how to fix them

Leading zeros disappear from ids

The id is a string such as "02" and JSON parsers in loosely typed languages coerce it.

Fix: Keep ids as strings end to end. A province id that becomes the integer 2 will no longer match anything.

Empty result list with HTTP 200

The name filter matched nothing.

Fix: Name matching is fuzzy but not unlimited. Drop accents and try a shorter fragment, or query by `id` if you have one.

Only ten results

`max` defaults to 10.

Fix: Set `max` explicitly, up to 5,000, and page with `inicio` beyond that. `total` tells you how far you have to go.

429 Too Many Requests

One of the per-second, per-minute, per-hour or per-day counters is exhausted.

Fix: Read the `X-RateLimit-Remaining-*` headers, which report all four windows separately, and pace the job against the tightest one.

Georef Argentina API — frequently asked questions

Is the Georef Argentina API free?

Yes, free with no key or registration, published as Argentine open government data. The quotas are generous enough for bulk normalisation work — three million requests per day per IP.

What is Georef normally used for?

Normalising Argentine place names and addresses so that datasets from different agencies can be joined. Because it returns official INDEC codes, it is the practical bridge between free-text names and national statistics.

Can it parse a full street address?

Yes. The `/direcciones` endpoint takes a free-text Argentine address, splits out the street, number and locality, and returns the normalised components with their official identifiers.

Why are province ids strings?

Because they are INDEC codes with leading zeros, and dropping the zero produces a different code. Buenos Aires City is "02", not 2 — treat the field as an opaque string throughout.

Tools that pair with this API

Georef Argentina is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.