Inicio Rápido
Prueba la API con un simple comando curl:
curl -H "X-API-Key: test_key_123456" https://cpostal.mx/api/v1/codigo-postal/06600
Respuesta:
{
"success": true,
"data": {
"codigo_postal": "06600",
"estado": "Ciudad de México",
"municipio": "Cuauhtémoc",
"ciudad": "Ciudad de México",
"colonias": [
{
"colonia": "Juárez",
"tipo_asentamiento": "Colonia",
"zona": "Urbano"
}
],
"total_colonias": 1
},
"meta": {
"version": "1.0.0",
"timestamp": "2024-01-15T10:30:00+00:00"
}
}
Autenticación
Todas las peticiones requieren una API key válida. Puedes enviarla de dos formas:
1. Header HTTP (recomendado)
curl -H "X-API-Key: tu_api_key" https://cpostal.mx/api/v1/estados
2. Parámetro en URL
curl "https://cpostal.mx/api/v1/estados?api_key=tu_api_key"
Nota: El método del header es más seguro ya que evita que la key aparezca en logs de servidor o historial del navegador.
Rate Limiting
La API tiene límites de peticiones por hora para garantizar un servicio estable para todos los usuarios.
| Header | Descripción |
|---|---|
X-RateLimit-Limit |
Peticiones permitidas por hora |
X-RateLimit-Remaining |
Peticiones restantes en la ventana actual |
X-RateLimit-Reset |
Timestamp Unix cuando se reinicia el contador |
API Key de prueba: La key test_key_123456 tiene un rate limit reducido y es compartida. Para uso en producción, solicita tu propia key con límites personalizados.
Endpoints
/api/v1/
Retorna información general de la API y los endpoints disponibles.
curl -H "X-API-Key: test_key_123456" https://cpostal.mx/api/v1/
/api/v1/codigo-postal/{cp}
Obtiene información detallada de un código postal específico.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
cp |
string | Código postal de 5 dígitos |
Ejemplo
curl -H "X-API-Key: test_key_123456" https://cpostal.mx/api/v1/codigo-postal/54700
{
"success": true,
"data": {
"codigo_postal": "54700",
"estado": "México",
"municipio": "Cuautitlán Izcalli",
"ciudad": "Cuautitlán Izcalli",
"cp_administracion": "54701",
"colonias": [
{"colonia": "Bosques del Lago", "tipo_asentamiento": "Fraccionamiento", "zona": "Urbano"},
{"colonia": "Centro Urbano", "tipo_asentamiento": "Colonia", "zona": "Urbano"}
],
"total_colonias": 2
}
}
/api/v1/buscar?q={texto}
Busca colonias o municipios por nombre. Retorna máximo 50 resultados.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
q |
string | Texto a buscar (mínimo 3 caracteres) |
Ejemplo
curl -H "X-API-Key: test_key_123456" "https://cpostal.mx/api/v1/buscar?q=polanco"
{
"success": true,
"data": {
"query": "polanco",
"results": [
{
"codigo_postal": "11510",
"colonia": "Polanco I Sección",
"tipo_asentamiento": "Colonia",
"municipio": "Miguel Hidalgo",
"estado": "Ciudad de México",
"zona": "Urbano"
}
],
"total": 1,
"max_results": 50
}
}
/api/v1/estados
Lista los 32 estados de la República Mexicana.
Ejemplo
curl -H "X-API-Key: test_key_123456" https://cpostal.mx/api/v1/estados
{
"success": true,
"data": {
"estados": [
{"id": 1, "nombre": "Aguascalientes"},
{"id": 2, "nombre": "Baja California"},
{"id": 9, "nombre": "Ciudad de México"}
],
"total": 32
}
}
/api/v1/estados/{estado}/municipios
Lista los municipios de un estado específico.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
estado |
string|int | ID numérico o nombre del estado |
Ejemplo
curl -H "X-API-Key: test_key_123456" https://cpostal.mx/api/v1/estados/9/municipios
{
"success": true,
"data": {
"estado": {"id": 9, "nombre": "Ciudad de México"},
"municipios": [
{"id": 10, "nombre": "Álvaro Obregón"},
{"id": 2, "nombre": "Azcapotzalco"},
{"id": 15, "nombre": "Cuauhtémoc"}
],
"total": 16
}
}
Códigos de Error
| Código HTTP | Error Code | Descripción |
|---|---|---|
| 400 | INVALID_CP |
Código postal inválido (debe ser 5 dígitos) |
| 400 | QUERY_TOO_SHORT |
Búsqueda muy corta (mínimo 3 caracteres) |
| 401 | UNAUTHORIZED |
API key no proporcionada o inválida |
| 403 | FORBIDDEN |
API key desactivada o expirada |
| 404 | NOT_FOUND |
Recurso no encontrado |
| 429 | RATE_LIMIT_EXCEEDED |
Límite de peticiones excedido |
| 500 | SERVER_ERROR |
Error interno del servidor |
Formato de respuesta de error
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "API key requerida. Envíala en el header X-API-Key o como parámetro api_key",
"status": 401
},
"meta": {
"version": "1.0.0",
"timestamp": "2024-01-15T10:30:00+00:00"
}
}
Ejemplos de Código
JavaScript (Fetch API)
const API_KEY = 'test_key_123456';
const BASE_URL = 'https://cpostal.mx/api/v1';
// Buscar por código postal
async function buscarCodigoPostal(cp) {
const response = await fetch(`${BASE_URL}/codigo-postal/${cp}`, {
headers: {
'X-API-Key': API_KEY
}
});
const data = await response.json();
if (data.success) {
console.log('Estado:', data.data.estado);
console.log('Municipio:', data.data.municipio);
data.data.colonias.forEach(col => {
console.log(`- ${col.colonia} (${col.tipo_asentamiento})`);
});
} else {
console.error('Error:', data.error.message);
}
return data;
}
// Buscar colonias
async function buscarColonias(texto) {
const response = await fetch(`${BASE_URL}/buscar?q=${encodeURIComponent(texto)}`, {
headers: {
'X-API-Key': API_KEY
}
});
return await response.json();
}
// Ejemplo de uso
buscarCodigoPostal('06600');
buscarColonias('polanco');
Solicitar API Key de Producción
Para obtener una API key con límites personalizados para tu aplicación, contáctanos:
info@cpostal.mx