{"openapi":"3.1.0","info":{"title":"PermutaES para asistentes de IA","version":"1.1.0","description":"Información y catálogos de PermutaES, plataforma gratuita para encontrar permutas de plaza entre funcionarios en España, y creación de borradores de anuncio que la persona confirma por correo. Siga las reglas_para_responder de informacion_permutaes."},"servers":[{"url":"https://permutaes.es"}],"paths":{"/api/ia/informacion_permutaes":{"get":{"operationId":"informacion_permutaes","summary":"Qué es PermutaES y cómo funciona","description":"Resumen de qué es PermutaES (plataforma gratuita para encontrar permutas de plaza entre funcionarios en España), qué hace y qué no, los colectivos que cubre, los enlaces útiles y las reglas que debes seguir al hablar de ella.","x-openai-isConsequential":false,"parameters":[],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/preguntas_frecuentes":{"get":{"operationId":"preguntas_frecuentes","summary":"Preguntas frecuentes sobre permutas","description":"Busca en las preguntas frecuentes oficiales de PermutaES (requisitos, plazos, documentos, cadenas, privacidad, tramitación). Pasa en `texto` las palabras clave de la duda del usuario. Sin `texto` devuelve la lista de preguntas disponibles.","x-openai-isConsequential":false,"parameters":[{"name":"texto","in":"query","required":false,"description":"Palabras clave de la duda, por ejemplo: años para la jubilación","schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/cifras":{"get":{"operationId":"cifras","summary":"Cifras actuales de PermutaES","description":"Número actual de anuncios de permuta activos, por colectivo (docentes, sanidad, AGE...) y por comunidad autónoma, y permutas conseguidas. Úsala para responder cuántos profesores, sanitarios, etc. hay apuntados.","x-openai-isConsequential":false,"parameters":[],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/listar_colectivos":{"get":{"operationId":"listar_colectivos","summary":"Colectivos que cubre PermutaES","description":"Lista los colectivos de empleados públicos para los que PermutaES busca permutas (código, nombre, descripción, alcance del buscador y guía). El `codigo` sirve de filtro para `buscar_cuerpos`.","x-openai-isConsequential":false,"parameters":[],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/buscar_cuerpos":{"get":{"operationId":"buscar_cuerpos","summary":"Buscar cuerpos o categorías profesionales","description":"Busca el cuerpo, escala o categoría profesional del usuario (por ejemplo 'Profesores de Enseñanza Secundaria' o 'Cuerpo de Maestros'). Devuelve el `id` de cada cuerpo, que hace falta para listar sus especialidades y crear un anuncio.","x-openai-isConsequential":false,"parameters":[{"name":"sector","in":"query","required":false,"description":"Código del colectivo, por ejemplo docente_loe","schema":{"type":"string","maxLength":40}},{"name":"texto","in":"query","required":false,"description":"Parte del nombre del cuerpo","schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/listar_especialidades":{"get":{"operationId":"listar_especialidades","summary":"Especialidades de un cuerpo","description":"Lista las especialidades de un cuerpo (por ejemplo Inglés, Matemáticas o Educación Física dentro de Profesores de Enseñanza Secundaria). Si el cuerpo no tiene especialidades, la lista viene vacía. Necesita el `cuerpo_id` de `buscar_cuerpos`.","x-openai-isConsequential":false,"parameters":[{"name":"cuerpo_id","in":"query","required":true,"description":"Identificador del cuerpo (UUID) devuelto por buscar_cuerpos","schema":{"type":"string","pattern":"^[0-9a-fA-F-]{36}$"}}],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/buscar_municipios":{"get":{"operationId":"buscar_municipios","summary":"Buscar un municipio","description":"Busca municipios de España por nombre (admite 'A Coruña', 'Las Palmas', sin tildes...). Devuelve el `codigo_ine`, que hace falta para indicar la plaza actual y los destinos deseados. Si hay varios con el mismo nombre, pregunta al usuario por la provincia o usa `provincia`.","x-openai-isConsequential":false,"parameters":[{"name":"texto","in":"query","required":true,"description":"Nombre del municipio","schema":{"type":"string","maxLength":80,"minLength":2}},{"name":"provincia","in":"query","required":false,"description":"Provincia para acotar, por ejemplo Pontevedra","schema":{"type":"string","maxLength":60}},{"name":"limite","in":"query","required":false,"description":"Máximo de resultados (1 a 20, por defecto 10)","schema":{"type":"integer","minimum":1,"maximum":20}}],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/listar_servicios_salud":{"get":{"operationId":"listar_servicios_salud","summary":"Servicios de salud autonómicos","description":"Lista los servicios de salud (SAS, SERGAS, SACYL, ICS...). Solo hace falta para anuncios del personal sanitario estatutario, que tienen que indicar su servicio de salud.","x-openai-isConsequential":false,"parameters":[],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/listar_comunidades":{"get":{"operationId":"listar_comunidades","summary":"Comunidades autónomas y provincias","description":"Lista las comunidades autónomas con sus provincias y sus códigos. Sirve para indicar destinos amplios (toda una provincia o comunidad) al crear un borrador de anuncio, sin tener que listar municipio a municipio.","x-openai-isConsequential":false,"parameters":[],"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}},"/api/ia/crear_borrador_anuncio":{"post":{"operationId":"crear_borrador_anuncio","summary":"Preparar un borrador de anuncio de permuta","description":"Prepara un BORRADOR de anuncio de permuta en nombre del usuario y le envía un correo de confirmación. NO publica nada: el anuncio solo se publica cuando el usuario abre el enlace del correo, revisa los datos, elige su alias y su contraseña y confirma.","x-openai-isConsequential":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["correo","usuario_confirma_envio_correo","cuerpo_id","municipio_actual_codigo"],"properties":{"correo":{"description":"Correo electrónico del usuario, donde recibirá el enlace de confirmación","type":"string","maxLength":254},"usuario_confirma_envio_correo":{"description":"true SOLO si el usuario te ha dicho que quiere recibir el correo de PermutaES en esa dirección","type":"boolean"},"cuerpo_id":{"description":"Identificador del cuerpo (buscar_cuerpos)","type":"string","pattern":"^[0-9a-fA-F-]{36}$"},"especialidad_id":{"description":"Identificador de la especialidad (listar_especialidades). Obligatorio si el cuerpo tiene especialidades","type":"string","pattern":"^[0-9a-fA-F-]{36}$"},"servicio_salud_codigo":{"description":"Código del servicio de salud (listar_servicios_salud). Solo para personal sanitario","type":"string","maxLength":40},"municipio_actual_codigo":{"description":"codigo_ine del municipio de la plaza actual (buscar_municipios)","type":"string","pattern":"^\\d{5}$"},"plazas_deseadas":{"description":"codigo_ine de los municipios concretos a los que aceptaría irse","type":"array","items":{"type":"string","pattern":"^\\d{5}$"},"maxItems":300},"provincias_deseadas":{"description":"Códigos de provincias enteras a las que aceptaría irse (listar_comunidades)","type":"array","items":{"type":"string","pattern":"^\\d{2}$"},"maxItems":20},"ccaa_deseadas":{"description":"Códigos de comunidades autónomas enteras a las que aceptaría irse (listar_comunidades)","type":"array","items":{"type":"string","pattern":"^\\d{2}$"},"maxItems":10},"fecha_toma_posesion_definitiva":{"description":"Fecha de toma de posesión definitiva en su destino actual, AAAA-MM-DD. Si no la sabe, no la inventes: la pedirá la página de confirmación","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"anyos_servicio_totales":{"description":"Años de servicio totales (0 a 50). Si no lo sabe, no lo inventes","type":"integer","minimum":0,"maximum":50},"permuta_anterior_fecha":{"description":"Fecha de su última permuta, AAAA-MM-DD, solo si ha permutado antes","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"observaciones":{"description":"Texto libre y PÚBLICO (máx. 500). Sin correos, teléfonos ni enlaces","type":"string","maxLength":500}}}}}},"responses":{"200":{"description":"Datos en JSON.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Argumentos no válidos."},"429":{"description":"Demasiadas peticiones o límite diario alcanzado."},"503":{"description":"No disponible ahora mismo; reintentar en un minuto."}}}}}}