Esta API de Localidades te permite obtener información sobre provincias, localidades y códigos postales. Puedes buscar por tipo (ej. provincia o localidad), nombre o directamente por un código postal.
A continuación, verás cómo autenticarte, cómo consumir el endpoint principal y un demo interactivo para probarlo.
Para realizar peticiones, debes incluir la cabecera X-API-KEY con el valor de tu clave personal.
Si aún no la tienes, solicítala en la parte superior de la página mediante el botón Solicitar API Key.
GET /v1/api/buscar?query={texto}
Host: api-localidadcp.ghi-web.com
X-API-KEY: TU_API_KEY
Este es el único endpoint disponible para realizar búsquedas. Puedes buscar por nombre, tipo o código postal utilizando el siguiente formato:
GET https://api-localidadcp.ghi-web.com/v1/api/buscar?query={texto}
Encabezados:
X-API-KEY: tu_api_key
Respuesta (JSON):
{
"tipo": "Provincia",
"nombre": "Buenos Aires",
"localidades": [
{
"id": 1,
"nombre": "11 DE SEPTIEMBRE",
"codigo_postal": "1657"
},
{
"id": 2,
"nombre": "12 DE AGOSTO",
"codigo_postal": "2701"
},
...
]
}
Reemplaza {texto} por el valor que deseas buscar (ej. Córdoba, Villa María o 1900).
A continuación, se presentan varias formas de consumir el endpoint de búsqueda utilizando diferentes lenguajes y tecnologías:
curl -X GET "https://api-localidadcp.ghi-web.com/v1/api/buscar?query=Córdoba" \
-H "X-API-KEY: TU_API_KEY"
fetch('https://api-localidadcp.ghi-web.com/v1/api/buscar?query=Córdoba', {
method: 'GET',
headers: {
'X-API-KEY': 'TU_API_KEY'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
import axios from 'axios';
axios.get('https://api-localidadcp.ghi-web.com/v1/api/buscar', {
params: { query: 'Córdoba' },
headers: { 'X-API-KEY': 'TU_API_KEY' }
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error:', error);
});
import axios from 'axios';
interface Localidad {
id: number;
nombre: string;
codigo_postal: string;
}
interface RespuestaProvincia {
tipo: string;
nombre: string;
localidades: Localidad[];
}
axios.get('https://api-localidadcp.ghi-web.com/v1/api/buscar', {
params: { query: 'Córdoba' },
headers: { 'X-API-KEY': 'TU_API_KEY' }
})
.then(response => {
const resultados = response.data;
console.log(resultados);
})
.catch(error => {
console.error('Error:', error);
});
const axios = require('axios');
const url = 'https://api-localidadcp.ghi-web.com/v1/api/buscar';
const params = { query: 'Córdoba' };
const headers = { 'X-API-KEY': 'TU_API_KEY' };
axios.get(url, { params, headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error:', error);
});
import requests
url = "https://api-localidadcp.ghi-web.com/v1/api/buscar"
params = {
"query": "Córdoba"
}
headers = {
"X-API-KEY": "TU_API_KEY"
}
response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(f"Error: {response.status_code}")
import aiohttp
import asyncio
async def fetch_data(query, api_key):
url = "https://api-localidadcp.ghi-web.com/v1/api/buscar"
headers = {
"X-API-KEY": api_key
}
params = {
"query": query
}
async with aiohttp.ClientSession() as session:
async with session.get(url, headers=headers, params=params) as response:
if response.status == 200:
data = await response.json()
print(data)
else:
print(f"Error: {response.status}")
# Ejecutar la función
asyncio.run(fetch_data("Córdoba", "TU_API_KEY"))
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("https://api-localidadcp.ghi-web.com/v1/api/buscar?query=Córdoba")
request = Net::HTTP::Get.new(uri)
request["X-API-KEY"] = "TU_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
if response.code.to_i == 200
data = JSON.parse(response.body)
puts data
else
puts "Error: #{response.code}"
end
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type Localidad struct {
ID int `json:"id"`
Nombre string `json:"nombre"`
CodigoPostal string `json:"codigo_postal"`
}
type RespuestaProvincia struct {
Tipo string `json:"tipo"`
Nombre string `json:"nombre"`
Localidades []Localidad `json:"localidades"`
}
func main() {
url := "https://api-localidadcp.ghi-web.com/v1/api/buscar?query=Córdoba"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "TU_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
if resp.StatusCode == 200 {
var respuesta RespuestaProvincia
err := json.Unmarshal(body, &respuesta)
if err != nil {
fmt.Println("Error al parsear JSON:", err)
return
}
fmt.Println("Tipo:", respuesta.Tipo)
fmt.Println("Nombre:", respuesta.Nombre)
fmt.Println("Localidades:")
for _, loc := range respuesta.Localidades {
fmt.Printf(" - %s (CP: %s)\n", loc.Nombre, loc.CodigoPostal)
}
} else {
fmt.Printf("Error: %s\n", resp.Status)
}
}
Para usar Postman, sigue estos pasos:
https://api-localidadcp.ghi-web.com/v1/api/buscar?query=Córdoba
A continuación, puedes probar el endpoint de búsqueda ingresando cualquier criterio (ej. provincia, localidad o código postal):