Documentación de API

Guía completa para integrar PanamaData API en tus aplicaciones

Inicio Rápido

Todas las peticiones requieren tu API Key en el header X-API-KEY

curl -H "X-API-KEY: tu-api-key" \     https://apipanama.ddinnova.net/api/v1/provinces
¿No tienes una API Key? Regístrate gratis para obtener tu clave de acceso.

Autenticación

Incluye tu API Key en cada petición usando el header HTTP:

Header Valor
X-API-KEY tu-api-key-aqui
Importante: Nunca expongas tu API Key en código del lado del cliente (JavaScript en el navegador). Úsala solo en backend.
GET

Información General

/api/v1/info

Obtiene información general sobre la República de Panamá (capital, población, moneda, etc.).

Ejemplo de Petición
curl -X GET "https://apipanama.ddinnova.net/api/v1/info" \     -H "X-API-KEY: tu-api-key"
Respuesta Exitosa (200 OK)
{
  "data": {
    "name": "Panamá",
    "description": "...",
    "capital": "Ciudad de Panamá",
    "surface_area": 75420,
    "population": 4351267,
    "languages": ["Español"],
    "currency_name": "Balboa / Dólar estadounidense",
    "iso_code": "PAN",
    "region": "América Central",
    "flags": {
        "svg": "https://...",
        "png": "https://..."
    }
  }
}

Endpoints Disponibles

GET

Provincias

/api/v1/provinces

Obtiene la lista completa de provincias de Panamá con sus códigos ISO.

Ejemplo de Petición
curl -X GET "https://apipanama.ddinnova.net/api/v1/provinces" \     -H "X-API-KEY: tu-api-key"
Respuesta Exitosa (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "Panamá",
      "code": "PA-1"
    },
    {
      "id": 2,
      "name": "Colón",
      "code": "PA-2"
    }
    // ... más provincias
  ]
}
GET

Distritos

/api/v1/districts

Obtiene todos los distritos de Panamá, opcionalmente filtrados por provincia.

Parámetros de Query
Parámetro Tipo Descripción
province_id integer Opcional. Filtra distritos por ID de provincia
Ejemplo de Petición
curl -X GET "https://apipanama.ddinnova.net/api/v1/districts?province_id=1" \     -H "X-API-KEY: tu-api-key"
Respuesta Exitosa (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "Panamá",
      "province_id": 1,
      "province_name": "Panamá"
    }
    // ... más distritos
  ]
}
GET

Playas

/api/v1/beaches

Obtiene información sobre las playas de Panamá.

Ejemplo de Petición
curl -X GET "https://apipanama.ddinnova.net/api/v1/beaches" \     -H "X-API-KEY: tu-api-key"
Respuesta Exitosa (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "Playa Blanca",
      "location": "Coclé",
      "description": "..."
    }
    // ... más playas
  ]
}
GET

Lugares Turísticos

/api/v1/tourist-places

Obtiene información sobre lugares turísticos de Panamá.

Ejemplo de Petición
curl -X GET "https://apipanama.ddinnova.net/api/v1/tourist-places" \     -H "X-API-KEY: tu-api-key"
Respuesta Exitosa (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "Casco Viejo",
      "category": "Histórico",
      "description": "..."
    }
    // ... más lugares
  ]
}

Códigos de Estado HTTP

Código Significado Descripción
200 OK Petición exitosa
401 Unauthorized API Key inválida o faltante
403 Forbidden API Key válida pero sin permisos para este endpoint
429 Too Many Requests Has excedido el límite de peticiones de tu plan
500 Internal Server Error Error en el servidor. Contacta soporte si persiste

Ejemplos de Código

JavaScript (Node.js)
const axios = require('axios');

const apiKey = 'tu-api-key';
const baseURL = 'https://apipanama.ddinnova.net/api/v1';

async function getProvinces() {
  try {
    const response = await axios.get(`${baseURL}/provinces`, {
      headers: {
        'X-API-KEY': apiKey
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

getProvinces();
Python
import requests

API_KEY = 'tu-api-key'
BASE_URL = 'https://apipanama.ddinnova.net/api/v1'

headers = {
    'X-API-KEY': API_KEY
}

response = requests.get(f'{BASE_URL}/provinces', headers=headers)

if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print(f'Error: {response.status_code}')
PHP
$apiKey = 'tu-api-key';
$baseUrl = 'https://apipanama.ddinnova.net/api/v1';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl . '/provinces');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-KEY: ' . $apiKey
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $data = json_decode($response, true);
    print_r($data);
} else {
    echo "Error: $httpCode";
}
¿Listo para empezar?

Obtén tu API Key gratis y comienza a integrar datos de Panamá en minutos.