Saltar a contenido

Consultar publicidad activa

GET /apientidades/v1/declaraciones/{iddeclaracion}/pa

Devuelve el árbol jerárquico completo de publicidad activa de la declaración, incluyendo tipos, categorías y obligaciones con el estado actual de cada una (URLs proporcionadas, aclaraciones, autoevaluación).

Parámetros de ruta

Parámetro Tipo Descripción
iddeclaracion int ID de la declaración

Ejemplo de petición

curl -s "https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/pa" \
  -H "Authorization: Bearer $TOKEN" | jq .
import requests

BASE_URL = "https://apientidades-pro.transparenciacanarias.org/apientidades/v1"
headers = {"Authorization": f"Bearer {token}"}

response = requests.get(f"{BASE_URL}/declaraciones/5001/pa", headers=headers)
arbol = response.json()

# Recorrer el árbol y contar obligaciones cumplimentadas
total = 0
cumplimentadas = 0
for tipo in arbol:
    for cat in tipo.get("categorias", []):
        for ob in cat.get("obligaciones", []):
            total += 1
            if ob.get("enlaces") and len(ob["enlaces"]) > 0:
                cumplimentadas += 1

print(f"Obligaciones cumplimentadas: {cumplimentadas}/{total}")
var response = await client.GetAsync($"{baseUrl}/declaraciones/5001/pa");
var json = await response.Content.ReadAsStringAsync();
var arbol = JsonConvert.DeserializeObject<List<TipoPADto>>(json);

foreach (var tipo in arbol)
{
    Console.WriteLine($"Tipo: {tipo.tipo}");
    foreach (var cat in tipo.categorias)
    {
        foreach (var ob in cat.obligaciones)
        {
            var estado = ob.enlaces?.Count > 0 ? "Con datos" : "Sin datos";
            Console.WriteLine($"  [{ob.id}] {ob.obligacion}: {estado}");
        }
    }
}

Respuesta exitosa (200)

[
  {
    "idtipo": 1,
    "tipo": "Información institucional y organizativa",
    "peso": 30,
    "color": "#1e40af",
    "porcentajecumplimentado": 45.5,
    "autoevaluacion": 6.2,
    "categorias": [
      {
        "idcategoria": 10,
        "categoria": "Información sobre la institución",
        "peso": 50,
        "porcentajecumplimentado": 45.5,
        "obligaciones": [
          {
            "id": 7001,
            "idobligacion": 100,
            "obligacion": "Organigrama actualizado",
            "descripcion": "Organigrama que identifique a los responsables...",
            "peso": 5,
            "aclaracionesentidad": "Publicado en la sección de organización",
            "nocumpleobligacion": false,
            "opcionpublicacion": 0,
            "notaautoevaluacion": 6.5,
            "enlaces": [
              {
                "id": 1234,
                "url": "https://portal.entidad.es/transparencia/organigrama",
                "valida": true,
                "aceptado": false,
                "orden": 0
              }
            ],
            "autoevaluacion": [
              {
                "id": 949162,
                "idcriterio": 1,
                "criterio": "Contenido",
                "valor": 5,
                "valorinicial": 0
              },
              {
                "id": 949163,
                "idcriterio": 2,
                "criterio": "Actualización",
                "valor": 0,
                "valorinicial": 0
              }
            ]
          }
        ]
      }
    ]
  }
]

Campos del nivel Tipo

Campo Tipo Descripción
idtipo int ID del tipo de publicidad activa
tipo string Nombre descriptivo del tipo
peso int Peso en la nota total (%)
color string Color para presentación visual (hex)
porcentajecumplimentado decimal Porcentaje de obligaciones cumplimentadas
autoevaluacion decimal Nota media de autoevaluación del tipo (escalar)
categorias array Categorías del tipo

Campos del nivel Categoría

Campo Tipo Descripción
idcategoria int ID de la categoría
categoria string Nombre de la categoría
peso int Peso dentro del tipo (%)
porcentajecumplimentado decimal Porcentaje de obligaciones cumplimentadas
obligaciones array Obligaciones de la categoría

Campos de la obligación

Campo Tipo Descripción
id int ID para usar en PUT (ID de la remisión PA en esta declaración)
idobligacion int ID del catálogo de obligaciones (referencia, no usar en PUT)
obligacion string Nombre descriptivo de la obligación
descripcion string Descripción detallada
peso int Peso dentro de la categoría
aclaracionesentidad string Texto de aclaraciones introducido por la entidad
nocumpleobligacion bool Si la entidad ha declarado no cumplir esta obligación
opcionpublicacion int Opción de publicación actual (0-3)
notaautoevaluacion decimal Nota de autoevaluación calculada para esta obligación
enlaces array URLs publicadas (ver campos de enlace)
autoevaluacion array Valores de autoevaluación por criterio (ver campos de autoevaluación)

Campos de un enlace

Campo Tipo Descripción
id int ID del enlace (solo lectura)
url string URL completa donde se publica la información
valida bool Si la URL ha sido verificada como accesible
aceptado bool Si el evaluador del Comisionado ha aceptado el enlace (solo lectura)
orden int Orden de presentación (0 = primera)

Campos de un ítem de autoevaluación

Campo Tipo Descripción
id int ID del ítem a usar en el PUT (ID en declaracionesevaluacionespavalores)
idcriterio int ID del criterio de evaluación (referencia)
criterio string Nombre del criterio (ej: "Contenido", "Actualización")
valor int Valor actual asignado por la entidad (0-100)
valorinicial int Valor inicial antes de modificaciones

ID correcto para actualizar

Al hacer PUT, use el campo id de la obligación (ej: 7001), NO el campo idobligacion (ej: 100). El id es el identificador único dentro de esta declaración concreta. El idobligacion es solo una referencia al catálogo.

ID de autoevaluación en el PUT

Al enviar autoevaluación en el PUT, use el campo id de cada ítem del array autoevaluacion[] (ej: 949162). No use idcriterio. El id identifica el registro concreto de este criterio en esta declaración.

Errores posibles

Código Descripción
401 Token ausente, expirado o inválido
404 La declaración no existe o no pertenece a la entidad