Saltar a contenido

Listar cuestionarios

Todos los cuestionarios

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

Devuelve todos los cuestionarios de la declaración con sus secciones, grupos, preguntas y respuestas actuales.

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/cuestionarios" \
  -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/cuestionarios",
    headers=headers
)
cuestionarios = response.json()

for cuest in cuestionarios:
    print(f"Cuestionario {cuest['idcuestionario']}: {cuest['titulo']}")
    for seccion in cuest.get("secciones", []):
        print(f"  Sección: {seccion['seccion']}")
        for grupo in seccion.get("grupos", []):
            print(f"    Grupo {grupo['idgrupo']} ({grupo['grupo']}): {len(grupo.get('preguntas', []))} preguntas")

Respuesta exitosa (200)

[
  {
    "idcuestionario": 20,
    "titulo": "Cuestionario de Soporte Web (ICS)",
    "tipo": 1,
    "descripcion": "Cuestionario relativo al soporte web utilizado para presentar la información a la ciudadanía",
    "porcentajecumplimentado": 45.5,
    "aclaracionesentidad": "",
    "secciones": [
      {
        "seccion": "Lugar de publicación",
        "descripcion": "",
        "porcentajecumplimentado": 50.0,
        "grupos": [
          {
            "idgrupo": 10,
            "grupo": "Accesibilidad web",
            "preguntas": [
              {
                "id": 150,
                "idpregunta": 301,
                "codigo": "ICS-01",
                "titulo": "Dispone de formulario de quejas y sugerencias",
                "descripcion": "",
                "respuesta": [
                  {
                    "id": 1,
                    "tipo": "checkbox",
                    "nombre": "Sí/No",
                    "valores": null,
                    "validado": false,
                    "valorcampo": false
                  }
                ],
                "totalrespuestas": 1,
                "respuestascontestadas": 0,
                "alegacionhabilitada": false,
                "alegacionnota": 0,
                "alegacionvalorada": false,
                "comentariorevision": ""
              },
              {
                "id": 151,
                "idpregunta": 302,
                "codigo": "ICS-02",
                "titulo": "URL del formulario de quejas",
                "descripcion": "",
                "respuesta": [
                  {
                    "id": 1,
                    "tipo": "texto",
                    "nombre": "URL",
                    "valores": null,
                    "validado": false,
                    "valorcampo": ""
                  }
                ],
                "totalrespuestas": 1,
                "respuestascontestadas": 0,
                "alegacionhabilitada": false,
                "alegacionnota": 0,
                "alegacionvalorada": false,
                "comentariorevision": ""
              }
            ]
          }
        ]
      }
    ]
  }
]

Campos del cuestionario

Campo Tipo Descripción
idcuestionario int ID del cuestionario (usar en GET /cuestionarios/{id} y PUT)
titulo string Nombre descriptivo del cuestionario
tipo int Tipo de cuestionario
descripcion string Descripción del cuestionario
porcentajecumplimentado decimal Porcentaje de preguntas respondidas
aclaracionesentidad string Texto de aclaraciones de la entidad
secciones array Secciones del cuestionario

Campos de la sección

Campo Tipo Descripción
seccion string Nombre de la sección
descripcion string Descripción de la sección
porcentajecumplimentado decimal Porcentaje de preguntas respondidas en esta sección
grupos array Grupos de preguntas dentro de la sección

Campos del grupo

Campo Tipo Descripción
idgrupo int ID del grupo
grupo string Nombre del grupo
preguntas array Preguntas del grupo

Campos de la pregunta

Campo Tipo Descripción
id int ID de la pregunta en el catálogo
idpregunta int ID para usar en el PUT (ID del registro de remisión)
codigo string Código visual de la pregunta (puede estar vacío)
titulo string Texto de la pregunta
descripcion string Descripción adicional de la pregunta
respuesta array (JSONB) Componentes de respuesta con valores actuales (ver tipos de componentes)
totalrespuestas int Número total de componentes de respuesta
respuestascontestadas int Número de componentes con valor no vacío
alegacionhabilitada bool Si la entidad puede presentar alegación en esta pregunta
alegacionnota decimal Nota de alegación asignada por el revisor
alegacionvalorada bool Si la alegación ha sido valorada
comentariorevision string Comentario del revisor sobre la respuesta

ID correcto para el PUT: idpregunta, no id

Al enviar respuestas con PUT, el campo id del body debe contener el valor de idpregunta del GET (ID del registro de remisión). El campo id del GET (ID del catálogo) NO se usa en el PUT.


Cuestionario individual

GET /apientidades/v1/declaraciones/{iddeclaracion}/cuestionarios/{idcuestionario}

Devuelve un cuestionario específico con todas sus preguntas y las respuestas actuales.

Parámetros de ruta

Parámetro Tipo Descripción
iddeclaracion int ID de la declaración
idcuestionario int ID del cuestionario (campo idcuestionario del listado)

Ejemplo de petición

curl -s "https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/cuestionarios/20" \
  -H "Authorization: Bearer $TOKEN" | jq .
response = requests.get(
    f"{BASE_URL}/declaraciones/5001/cuestionarios/20",
    headers=headers
)
cuestionario = response.json()
print(f"Cuestionario: {cuestionario['titulo']}")

La respuesta tiene la misma estructura que un elemento del array del listado general.

Errores posibles

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