Saltar a contenido

Tools de escritura

36 tools que cambian datos o necesitan la escritura: 26 con alcance write y 10 con alcance admin. Alcance write (o admin) y capability local/mcpserver:write (local/mcpserver:admin en las de administración). La escritura debe estar activada y la tool habilitada; si no, las tools de escritura no se listan. Consulta Activar la escritura. Las tools de cuentas (create_user, create_users, update_user, suspend_user, unsuspend_user) y las de políticas del sitio (set_site_policy_handler, create_policy, update_policy, list_policies, get_policy_acceptances) necesitan el alcance admin. list_policies y get_policy_acceptances solo leen, pero son tools de administración y también necesitan la escritura activada. Cada tool comprueba además el permiso de Moodle indicado.

Casi todas las tools de escritura aceptan dryRun. delete_activity, delete_section y grade_submission son simulaciones por defecto; consulta Calificar con dryRun. Las fechas aceptan YYYY-MM-DD (medianoche en la zona horaria del usuario), una fecha ISO 8601 con desfase o una marca de tiempo Unix.

Cursos y actividades

create_course

Crea un curso en blanco, o encola una copia en segundo plano si se envía templateCourseId. Una copia devuelve un id de tarea y su estado al momento; consulta get_task_status. La categoría se elige con categoryId, categoryName o categoryIdnumber. dryRun true valida sin crear el curso ni encolar nada.

Parámetro Tipo Obligatorio Por defecto Descripción
fullName string sí — Nombre completo del curso. (máx. 254)
shortName string sí — Nombre corto del curso, único. (máx. 255)
categoryId integer no 1 Id de la categoría. Por defecto, 1. Se ignora si se envía categoryIdnumber o categoryName.
categoryName string no — Nombre de la categoría. Si coinciden varias, el error las lista. Usa list_categories. (máx. 255)
categoryIdnumber string no — idnumber de la categoría. Tiene preferencia sobre categoryName y categoryId. (máx. 100)
summary string no "" Resumen del curso en HTML.
format string no "topics" Formato de curso habilitado.
visible boolean no true Si el curso es visible para los estudiantes.
numSections integer no 1 Número de secciones de un curso en blanco. Se ignora al copiar una plantilla. (0–52)
startDate integer or string no — Inicio del curso. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
endDate integer or string no — Fin del curso. 0 significa sin fecha de fin. En un curso semanal, enviar esta fecha la mantiene en lugar de calcularla a partir del número de secciones. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
templateCourseId integer no — Id del curso que se copia. Se copian las actividades. Los usuarios no se copian salvo que includeUserData sea true.
includeUserData boolean no false Copia las matriculaciones y los datos de usuario de la plantilla. Requiere la capability de copia de seguridad con datos de usuario.
dryRun boolean no false Si es true, comprueba permisos y nombres pero no crea el curso ni encola la copia.

Devuelve: courseId, shortName, fullName, url, taskId, status, queued, dryRun.

Alcance: write. Permisos de Moodle: moodle/course:create en la categoría; una copia necesita además moodle/backup:backupcourse y moodle/backup:backuptargetimport (moodle/backup:userinfo con datos de usuario).

Ejemplo de argumentos:

{"fullName": "Statistics 102", "shortName": "STAT102", "categoryIdnumber": "SCI", "dryRun": true}

add_section

Añade una sección al final de un curso y, opcionalmente, le pone nombre y resumen.

Parámetro Tipo Obligatorio Por defecto Descripción
courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
name string no — Nombre de la sección. Omítelo para mantener el del formato. (máx. 255)
summary string no "" Resumen de la sección en HTML.

Devuelve: courseId, section, name.

Alcance: write. Permisos de Moodle: moodle/course:update.

Ejemplo de argumentos:

{"courseId": 42, "name": "Week 5"}

add_activity

Añade una página, URL, etiqueta, recurso, tarea, cuestionario, foro o consulta (choice). Cada campo indica a qué tipos se aplica, por ejemplo [assign] o [url]; enviar un campo de otro tipo es un error. Las tareas aceptan fechas, nota máxima, tipos de entrega y una rúbrica básica. Un recurso lleva fileUrl o fileBase64 (2 MiB como máximo). Una etiqueta o una página pueden llevar imágenes (jpg, png, gif, webp o svg, como fileBase64 más fileName o como fileUrl https); se guardan en el área intro o content y el HTML usa @@PLUGINFILE@@, nunca una URI data. Los campos de finalización (ver, entregar, calificación, aprobado, mensajes del foro y fecha prevista) solo se aceptan si el módulo los admite. settings es cualquier otro campo del formulario del módulo; las claves desconocidas se rechazan. Una consulta acepta settings.option (una lista de textos), settings.limit, allowupdate y showresults (0 no publica los resultados); completionSubmit la marca como completada cuando el estudiante elige. Usa get_activity_settings para ver los campos del formulario.

Parámetro Tipo Obligatorio Por defecto Descripción
courseId integer uno de courseId / courseShortname — [all] Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
courseShortname string uno de courseId / courseShortname — [all] Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
section integer sí — [all] Número de sección. La sección 0 es la sección general.
type string sí — [all] Tipo de actividad. Valores: page, url, label, assign, quiz, forum, resource, choice.
name string no — [all] Nombre de la actividad. En una etiqueta se puede omitir y se usa la descripción. (máx. 255)
intro string no "" [all] Descripción en HTML. Es el cuerpo de una etiqueta.
content string no — [page, label] Contenido HTML de la página. También es el cuerpo de la etiqueta si intro está vacío.
images array no — [page, label] Imágenes de una etiqueta o una página. Cada una es fileBase64 más fileName, o una fileUrl https, y area intro o content. Se guardan en el área de ficheros y se referencian como @@PLUGINFILE@@. (hasta 10)
externalUrl string no — [url] URL externa. (máx. 1333)
dueDate integer or string no — [assign] Fecha de entrega de la tarea. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
timeOpen integer or string no — [quiz] Apertura del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
timeClose integer or string no — [quiz] Cierre del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
grade integer no — [assign, quiz] Calificación máxima. (0–100000)
forumType string no — [forum] Tipo de foro. Por defecto, general. Valores: general, eachuser, single, qanda, blog, news.
visible boolean no — [all] Si la actividad es visible. Por defecto, true.
allowSubmissionsFromDate integer or string no — [assign] Fecha de apertura de la tarea. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
cutoffDate integer or string no — [assign] Fecha límite (cut-off) de la tarea. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
gradingDueDate integer or string no — [assign] Fecha en la que debería estar terminada la corrección. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
submissionTypes array no — [assign] Plugins de entrega: file y/u onlinetext. (hasta 2)
rubric array no — [assign] Rúbrica opcional. Cada criterio tiene una descripción y al menos dos niveles. (hasta 20)
fileName string no — [resource] Nombre del archivo. (máx. 255)
fileUrl string no — [resource] URL pública http(s) del archivo. (máx. 1333)
fileBase64 string no — [resource] Contenido del archivo en Base64. Máximo 2 MiB una vez decodificado.
timeLimit integer no — [quiz] Tiempo límite en segundos. 0 significa sin límite.
attempts integer no — [quiz] Intentos permitidos. 0 significa ilimitados. (0–10)
gradeMethod string no — [quiz] Cómo se calcula la nota a partir de los intentos. Valores: highest, average, first, last.
navMethod string no — [quiz] Navegación: free o sequential. Valores: free, sequential.
questionsPerPage integer no — [quiz] Preguntas por página. 0 significa todas en una página. (0–50)
shuffleAnswers boolean no — [quiz] Barajar las respuestas.
review string no — [quiz] Cuándo pueden revisar el intento los estudiantes. Valores: immediately, later, afterclose, never.
settings object no — [all] Opciones del formulario del módulo, con los nombres de sus campos. Las claves desconocidas se rechazan y el error lista las válidas. Incluye visible, cmidnumber, groupmode, completion y availabilityconditionsjson.
completionView boolean no — [all] El estudiante debe ver la actividad. El módulo debe admitir finalización por visualización.
completionSubmit boolean no — [all] Exige una entrega o una elección. Solo módulos con la regla completionsubmit, como assign o choice.
completionUseGrade boolean no — [all] Exige una calificación. El módulo debe tener calificación.
completionPassGrade boolean no — [all] Exige aprobar. Envía también gradePass. El módulo debe tener calificación.
gradePass number no — [all] Nota mínima para aprobar. Obligatoria con completionPassGrade y no mayor que la nota máxima.
completionPosts integer no — [all] Mensajes que debe publicar el estudiante. Solo módulos con completionposts, como forum. 0 lo quita. (0–1000)
completionDiscussions integer no — [all] Debates que debe abrir el estudiante. Solo módulos con completiondiscussions. 0 lo quita. (0–1000)
completionReplies integer no — [all] Respuestas que debe publicar el estudiante. Solo módulos con completionreplies. 0 lo quita. (0–1000)
completionExpected integer or string no — [all] Fecha prevista de finalización. (fecha)

Campos de cada elemento de rubric:

  • description* (string): [assign] Qué evalúa este criterio. (máx. 1000)
  • levels* (array): [assign] Niveles de este criterio, del de menor puntuación al de mayor. (hasta 10) → definition, score

    * = obligatorio.

    Devuelve: cmid, courseId, type, name.

    Alcance: write. Permisos de Moodle: moodle/course:manageactivities y mod/<tipo>:addinstance (moodle/grade:managegradingforms para una rúbrica).

    Ejemplo de argumentos:

    {"courseId": 42, "section": 1, "type": "assign", "name": "Submit the field notes", "dueDate": "2026-11-20", "submissionTypes": ["file"]}
    

    update_activity

    Actualiza una página, URL, etiqueta, recurso, tarea, cuestionario, foro o consulta existente. También acepta imágenes en páginas y etiquetas, campos de finalización y settings (las claves que no envías se quedan como están). Solo cambian los campos que envías. Cada campo indica a qué tipos se aplica; un campo que no corresponde a la actividad es un error.

    Parámetro Tipo Obligatorio Por defecto Descripción
    cmid integer sí — [all] Id del módulo de curso.
    name string no — [all] Nuevo nombre de la actividad. (máx. 255)
    intro string no — [all] Nueva descripción en HTML.
    content string no — [page, label] Nuevo contenido HTML de la página.
    images array no — [page, label] Imágenes de una etiqueta o una página. Cada una es fileBase64 más fileName, o una fileUrl https, y area intro o content. Se guardan en el área de ficheros y se referencian como @@PLUGINFILE@@. (hasta 10)
    externalUrl string no — [url] URL externa. (máx. 1333)
    dueDate integer or string no — [assign] Fecha de entrega de la tarea. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
    timeOpen integer or string no — [quiz] Apertura del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
    timeClose integer or string no — [quiz] Cierre del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
    grade integer no — [assign, quiz] Calificación máxima. (0–100000)
    forumType string no — [forum] Tipo de foro. Valores: general, eachuser, single, qanda, blog, news.
    visible boolean no — [all] Si la actividad es visible.
    settings object no — [all] Opciones del formulario del módulo que se cambian, con los nombres de sus campos. Las claves desconocidas se rechazan y el error lista las válidas. Las que no envías se quedan como están.
    completionView boolean no — [all] El estudiante debe ver la actividad. El módulo debe admitir finalización por visualización.
    completionSubmit boolean no — [all] Exige una entrega o una elección. Solo módulos con la regla completionsubmit, como assign o choice.
    completionUseGrade boolean no — [all] Exige una calificación. El módulo debe tener calificación.
    completionPassGrade boolean no — [all] Exige aprobar. Envía también gradePass. El módulo debe tener calificación.
    gradePass number no — [all] Nota mínima para aprobar. Obligatoria con completionPassGrade y no mayor que la nota máxima.
    completionPosts integer no — [all] Mensajes que debe publicar el estudiante. Solo módulos con completionposts, como forum. 0 lo quita. (0–1000)
    completionDiscussions integer no — [all] Debates que debe abrir el estudiante. Solo módulos con completiondiscussions. 0 lo quita. (0–1000)
    completionReplies integer no — [all] Respuestas que debe publicar el estudiante. Solo módulos con completionreplies. 0 lo quita. (0–1000)
    completionExpected integer or string no — [all] Fecha prevista de finalización. (fecha)

    Devuelve: cmid, instanceId, courseId, type, name, section, visible, url.

    Alcance: write. Permisos de Moodle: La comprobación normal de Moodle para editar actividades (moodle/course:manageactivities); moodle/course:activityvisibility para cambiar visible.

    Ejemplo de argumentos:

    {"cmid": 314, "dueDate": "2026-11-27T23:59:00+01:00"}
    

    set_visibility

    Muestra u oculta un curso (courseId o courseShortname), una sección (ese curso y la sección) o una actividad (cmid).

    Parámetro Tipo Obligatorio Por defecto Descripción
    target string sí — Qué se muestra u oculta. Valores: course, section, activity.
    visible boolean sí — true para mostrar, false para ocultar.
    courseId integer no — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
    courseShortname string no — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
    section integer no — Número de sección cuando target es section.
    cmid integer no — Id del módulo de curso cuando target es activity.

    Devuelve: target, visible.

    Alcance: write. Permisos de Moodle: moodle/course:visibility, moodle/course:sectionvisibility o moodle/course:activityvisibility, según el objetivo.

    Ejemplo de argumentos:

    {"target": "activity", "cmid": 314, "visible": false}
    

    delete_activity

    Borra una actividad. Es una simulación salvo que dryRun sea false y confirm sea true.

    Parámetro Tipo Obligatorio Por defecto Descripción
    cmid integer sí — Id del módulo de curso.
    dryRun boolean no true Si es true (por defecto), no borra nada. Devuelve lo que se borraría.
    confirm boolean no false Debe ser true junto con dryRun false para borrar la actividad.

    Devuelve: dryRun, deleted, confirmationRequired, target.

    Alcance: write. Permisos de Moodle: moodle/course:manageactivities.

    Ejemplo de argumentos:

    {"cmid": 314}
    

    delete_section

    Borra una sección y sus actividades. La sección 0 no se puede borrar. Es una simulación salvo que se confirme.

    Parámetro Tipo Obligatorio Por defecto Descripción
    courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
    courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
    section integer sí — Número de sección. La sección 0 no se puede borrar.
    dryRun boolean no true Si es true (por defecto), no borra nada. Devuelve lo que se borraría.
    confirm boolean no false Debe ser true junto con dryRun false para borrar la sección.

    Devuelve: dryRun, deleted, confirmationRequired, target.

    Alcance: write. Permisos de Moodle: moodle/course:update.

    Ejemplo de argumentos:

    {"courseId": 42, "section": 5}
    

    build_course

    Construye un curso a partir de secciones, actividades y preguntas de cuestionario. Devuelve un id de tarea al momento; consulta get_task_status. dryRun true valida y devuelve el plan sin crear nada. La categoría se elige con categoryId, categoryName o categoryIdnumber. courseId o courseShortname construyen dentro de un curso que el usuario ya puede editar. shortName es el nombre de un curso nuevo, no otra forma de elegir uno existente.

    Parámetro Tipo Obligatorio Por defecto Descripción
    dryRun boolean no false Valida y devuelve el plan sin crear nada.
    courseId integer no — Construye dentro de este curso en lugar de crear uno. Alternativa a courseShortname. Envía solo uno de los dos.
    courseShortname string no — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
    fullName string no — (máx. 254)
    shortName string no — (máx. 255)
    categoryId integer no 1 Id de la categoría. Se ignora si se envía categoryIdnumber o categoryName.
    categoryName string no — Nombre de la categoría. Usa list_categories si varias categorías lo comparten. (máx. 255)
    categoryIdnumber string no — idnumber de la categoría. Tiene preferencia sobre categoryName y categoryId. (máx. 100)
    summary string no ""
    format string no "topics" Formato de curso habilitado.
    startDate integer or string no — Inicio del curso. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
    endDate integer or string no — Fin del curso. 0 significa sin fecha de fin. En un curso semanal, enviar esta fecha la mantiene en lugar de calcularla a partir del número de secciones. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
    visible boolean no true
    sections array no [] (hasta 52)

    Campos de cada elemento de sections:

    • number (integer): (0–52)
    • name (string): (máx. 255)
    • summary (string)
    • activities (array): (hasta 40) → type, name, intro, content, externalUrl, visible, dueDate, allowSubmissionsFromDate, cutoffDate, grade, submissionTypes, rubric, fileName, fileUrl, fileBase64, timeOpen, timeClose, timeLimit, attempts, gradeMethod, navMethod, questionsPerPage, shuffleAnswers, review, forumType, category, questions, gift, xml

      * = obligatorio.

      Devuelve: dryRun, taskId, status, course, sections[].

      Alcance: write. Permisos de Moodle: Curso nuevo: moodle/course:create en la categoría; curso existente: moodle/course:manageactivities.

      Ejemplo de argumentos:

      {"dryRun": true, "fullName": "Intro to R", "shortName": "R101", "sections": [{"number": 1, "name": "Getting started", "activities": [{"type": "page", "name": "Install R", "content": "<p>Download R from CRAN.</p>"}]}]}
      

      update_course

      Modifica un curso. Solo cambian los campos que envías. La imagen va como fileBase64 más fileName, o como una fileUrl https, con las mismas comprobaciones que set_course_image. Se guarda con update_course() del núcleo. La portada del sitio no se puede modificar.

      Parámetro Tipo Obligatorio Por defecto Descripción
      courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
      courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
      fullName string no — Nuevo nombre completo. (máx. 254)
      shortName string no — Nuevo nombre corto, único. (máx. 255)
      summary string no — Nuevo resumen en HTML. Se limpia antes de guardarlo.
      startDate integer or string no — Nuevo inicio del curso. (fecha)
      endDate integer or string no — Nuevo fin del curso. 0 = sin fecha de fin. En un curso semanal desactiva la fecha de fin calculada. (fecha)
      visible boolean no — Si los estudiantes ven el curso.
      format string no — Formato de curso activado, p. ej. topics, weeks.
      formatOptions object no — Opciones del formato: numsections, hiddensections, coursedisplay, automaticenddate. numsections añade las secciones que falten y no borra las existentes.
      enableCompletion boolean no — Activa o desactiva el seguimiento de finalización. Para activarlo, la finalización debe estar activada en el sitio.
      showGrades boolean no — Si los estudiantes ven el libro de calificaciones.
      showReports boolean no — Si los estudiantes ven sus informes de actividad.
      lang string no — Idioma forzado del curso (uno instalado), o cadena vacía para no forzarlo.
      groupMode integer no — 0 sin grupos, 1 grupos separados, 2 grupos visibles.
      groupModeForce boolean no — Fuerza el modo de grupo del curso en todas las actividades.
      fileName string no — Nombre de fichero con extensión de imagen. Obligatorio con fileBase64. Con fileUrl, si se omite, se usa la ruta de la URL. (máx. 255)
      fileBase64 string no — Imagen en base64. Máximo 2 MiB decodificada. No la envíes junto con fileUrl.
      fileUrl string no — URL https de la imagen. El cURL de Moodle rechaza los hosts y puertos bloqueados. (máx. 1333)

      Devuelve: courseId, fullName, shortName, summary, startDate, endDate, visible, format, enableCompletion, showGrades, showReports, lang, groupMode, groupModeForce, sectionCount, formatOptions.

      Alcance: write. Permisos de Moodle: Por campo: moodle/course:changefullname (fullName), moodle/course:changeshortname (shortName), moodle/course:changesummary (summary y la imagen), moodle/course:visibility (visible), moodle/course:setforcedlanguage (lang); el resto, moodle/course:update.

      Ejemplo de argumentos:

      {"courseId": 42, "endDate": "2027-06-30", "formatOptions": {"numsections": 12}}
      

      set_course_image

      Pone la imagen del curso que se ve en Mis cursos y en la lista de cursos. Envía fileBase64 y fileName, o una fileUrl https. El fichero debe ser una imagen jpg, png, gif, webp o svg permitida por las extensiones de imagen de curso del sitio, de 2 MiB como máximo. Una URL https se descarga con el cURL de Moodle, que bloquea los hosts y puertos configurados en Seguridad HTTP, y no se siguen redirecciones (protección SSRF). Sustituye la imagen anterior y purga las cachés del curso.

      Parámetro Tipo Obligatorio Por defecto Descripción
      courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
      courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
      fileName string no — Nombre de fichero con extensión de imagen. Obligatorio con fileBase64. Con fileUrl, si se omite, se usa la ruta de la URL. (máx. 255)
      fileBase64 string no — Imagen en base64. Máximo 2 MiB decodificada. No la envíes junto con fileUrl.
      fileUrl string no — URL https de la imagen. El cURL de Moodle rechaza los hosts y puertos bloqueados. (máx. 1333)

      Devuelve: courseId, fileName, bytes, url.

      Alcance: write. Permisos de Moodle: moodle/course:update.

      Ejemplo de argumentos:

      {"courseId": 42, "fileUrl": "https://example.org/cover.png"}
      

      set_course_completion

      Activa o desactiva el seguimiento de finalización de un curso. Atajo de update_course con enableCompletion. La finalización debe estar activada en el sitio para poder activarla en un curso. La finalización de actividades necesita esto antes.

      Parámetro Tipo Obligatorio Por defecto Descripción
      courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
      courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
      enabled boolean sí — True activa el seguimiento de finalización del curso; false lo desactiva.

      Devuelve: courseId, enabled.

      Alcance: write. Permisos de Moodle: moodle/course:update.

      Ejemplo de argumentos:

      {"courseId": 42, "enabled": true}
      

      set_availability

      Define las restricciones de acceso de una actividad (cmid) o de una sección (curso más section). applyTo (sections, activities o all) aplica el mismo árbol a todas las secciones y/o actividades del curso: lo combina con AND con la restricción que ya hubiera y se salta una condición que ya exista. excludeCmids deja fuera esas actividades; también se salta la actividad a la que apunta una condición de finalización, para que la condición no bloquee la actividad de la que depende. availability es un árbol de core_availability: op es & (AND) o | (OR), admite árboles anidados, y c es la lista de condiciones. Una raíz AND necesita showc y una OR, show. Condiciones: finalización de otra actividad (type: completion, cm, e 1 completada o 2 aprobada), una fecha (type: date, d >= o <, t marca de tiempo Unix) o una calificación (type: grade, id, min y max opcionales). El árbol se valida con core_availability\tree antes de guardarlo. Una lista de condiciones vacía quita la restricción de una actividad o sección; con applyTo se rechaza.

      Parámetro Tipo Obligatorio Por defecto Descripción
      target string no — activity usa cmid; section usa el curso y el número de sección. Valores: activity, section.
      cmid integer con activity — Id del módulo de curso si target es activity.
      courseId integer con section / applyTo — Id del curso si target es section o si se usa applyTo. Alternativa a courseShortname.
      courseShortname string con section / applyTo — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
      section integer con section — Número de sección si target es section. La 0 es la sección general.
      applyTo string no — Aplica un árbol a todas las secciones, a todas las actividades o a ambas. No envíes target a la vez. Valores: sections, activities, all.
      excludeCmids array no — Actividades que no se tocan cuando se usa applyTo.
      availability object sí — Árbol de core_availability (op, c, showc o show).

      Devuelve: target, courseId, cmid, section, availability, applyTo, updated, unchanged, excluded.

      Alcance: write. Permisos de Moodle: Actividades, moodle/course:manageactivities; secciones, moodle/course:update.

      Ejemplo de argumentos:

      {"courseId": 42, "applyTo": "activities", "availability": {"op": "&", "showc": [true], "c": [{"type": "date", "d": ">=", "t": 1793487600}]}}
      

      Cuestionarios y preguntas

      create_quiz

      Crea un cuestionario en una sección. dryRun true comprueba el curso y devuelve el plan sin guardar.

      Parámetro Tipo Obligatorio Por defecto Descripción
      courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
      courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
      section integer sí — Número de sección.
      name string sí — (máx. 255)
      intro string no ""
      timeOpen integer or string no — Apertura del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
      timeClose integer or string no — Cierre del cuestionario. Una fecha sin hora (YYYY-MM-DD) es la medianoche en tu zona horaria. También acepta una fecha ISO 8601 con desfase o una marca de tiempo Unix. (fecha)
      timeLimit integer no — Segundos. 0 significa sin límite.
      attempts integer no — 0 significa ilimitados. (0–10)
      grade integer no 10 (0–100000)
      gradeMethod string no — Valores: highest, average, first, last.
      navMethod string no — Valores: free, sequential.
      questionsPerPage integer no — (0–50)
      shuffleAnswers boolean no —
      review string no — Valores: immediately, later, afterclose, never.
      visible boolean no —
      dryRun boolean no false Si es true, comprueba el curso y la sección y no crea el cuestionario.

      Devuelve: dryRun, cmid, courseId, section, name, url.

      Alcance: write. Permisos de Moodle: moodle/course:manageactivities y mod/quiz:addinstance.

      Ejemplo de argumentos:

      {"courseId": 42, "section": 2, "name": "Check your understanding", "attempts": 2, "review": "afterclose"}
      

      add_quiz_questions

      Crea preguntas en el banco de preguntas del curso y las añade a un cuestionario. Tipos: multichoice, truefalse, shortanswer, numerical, match, essay.

      Parámetro Tipo Obligatorio Por defecto Descripción
      cmid integer sí — Id del módulo de curso del cuestionario.
      category string no — Nombre de la categoría del banco de preguntas. Omítelo para usar la categoría por defecto. (máx. 254)
      questions array sí — (hasta 50)

      Campos de cada elemento de questions:

      • type* (string): Valores: multichoice, truefalse, shortanswer, numerical, match, essay.
      • name* (string): (máx. 255)
      • text* (string)
      • mark (number)
      • correct (boolean)
      • caseSensitive (boolean)
      • answer (number)
      • tolerance (number)
      • answers (array): (hasta 20)
      • choices (array): (hasta 20) → text*, correct
      • pairs (array): (hasta 20) → question, answer

        * = obligatorio.

        Devuelve: cmid, categoryId, questions[].

        Alcance: write. Permisos de Moodle: mod/quiz:manage y moodle/question:add (moodle/question:managecategory para crear una categoría).

        Ejemplo de argumentos:

        {"cmid": 316, "questions": [{"type": "truefalse", "name": "Mean vs median", "text": "The median is less sensitive to outliers than the mean.", "correct": true}, {"type": "multichoice", "name": "Spread", "text": "Which measure describes spread?", "choices": [{"text": "Standard deviation", "correct": true}, {"text": "Mode"}]}]}
        

        import_questions

        Importa GIFT o Moodle XML en una categoría del banco de preguntas con los importadores de Moodle. Opcionalmente añade las preguntas nuevas a un cuestionario.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        format string sí — Formato de importación de preguntas habilitado. Valores: gift, xml.
        content string sí —
        category string no — (máx. 254)
        cmid integer no — Cuestionario al que se añaden las preguntas importadas.

        Devuelve: courseId, categoryId, questionIds[], added.

        Alcance: write. Permisos de Moodle: moodle/question:add (mod/quiz:manage para añadirlas a un cuestionario).

        Ejemplo de argumentos:

        {"courseId": 42, "format": "gift", "content": "::Q1:: 2 + 2 = {=4 ~3 ~5}", "cmid": 316}
        

        Calificación

        grade_submission

        Pone la nota y el comentario de retroalimentación en la tarea de un estudiante. Si la tarea usa rúbrica, envía un levelId para cada criterio. dryRun es true por defecto y no cambia nada. notify es false por defecto. Identifica al estudiante con userId, username o email, solo uno. El estudiante debe estar matriculado. En una tarea en grupo la nota se aplica a todo el grupo.

        Parámetro Tipo Obligatorio Por defecto Descripción
        cmid integer sí — Id del módulo de curso de la tarea.
        grade number no — Nota numérica de 0 al máximo de la tarea. Obligatoria salvo que la tarea use rúbrica.
        comment string no — Comentario de retroalimentación que ve el estudiante. Omítelo para dejar el comentario actual. (máx. 10000)
        criteria array no — Elecciones de la rúbrica. Obligatorias si la tarea usa rúbrica, un nivel por criterio. (hasta 30)
        notify boolean no false Si es true, Moodle puede enviar un email al estudiante sobre la nota. Por defecto, false.
        dryRun boolean no true Si es true, valida y describe la nota sin guardarla. Por defecto, true.
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)

        Campos de cada elemento de criteria:

        • criterionId* (integer): Id del criterio, de get_submission.
        • levelId* (integer): Id del nivel que se elige para ese criterio.
        • remark (string): Comentario opcional para este criterio. (máx. 2000)

        * = obligatorio.

        Devuelve: cmid, courseId, name, userId, fullName, status, submitted, attempt, timeModified, onlineText, files[], grade, gradeMax, gradeTime, comment, grading, dryRun, saved, notified, proposed.

        Alcance: write. Permisos de Moodle: Alcance write, escritura activada y mod/assign:grade.

        Ejemplo de argumentos:

        {"cmid": 314, "username": "ada", "grade": 8.5, "comment": "Clear method; check the units in part 2."}
        

        Matriculación, roles y grupos

        enrol_user

        Matricula a un usuario en un curso con matriculación manual. Indica userId, username o email. El rol por defecto es student. dryRun true comprueba la matriculación y no la guarda.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        role string no "student" Nombre corto del rol. La lista son los roles que existen en este sitio. (máx. 100)
        dryRun boolean no false Si es true, comprueba el usuario y el rol y no matricula a nadie.

        Devuelve: courseId, userId, role, enrolled, alreadyEnrolled, dryRun.

        Alcance: write. Permisos de Moodle: enrol/manual:enrol.

        Ejemplo de argumentos:

        {"courseId": 42, "email": "[email protected]", "role": "student"}
        

        unenrol_user

        Quita la matriculación manual de un usuario en un curso. Los demás métodos de matriculación se quedan como están. Identifica al usuario con userId, username o email. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        dryRun boolean no false Si es true, comprueba la matriculación y no la elimina.

        Devuelve: courseId, userId, removed, stillEnrolled, dryRun.

        Alcance: write. Permisos de Moodle: enrol/manual:unenrol.

        Ejemplo de argumentos:

        {"courseId": 42, "username": "ada", "dryRun": true}
        

        set_user_role

        Asigna o quita un rol en un curso. No matricula al usuario; para eso está enrol_user. Un rol que viene de la matriculación se quita con unenrol_user. action es assign o remove. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        role string sí — Nombre corto del rol, como student o editingteacher. (máx. 100)
        action string sí — assign añade el rol. remove quita una asignación de rol manual. Valores: assign, remove.
        dryRun boolean no false Si es true, comprueba el rol y no lo cambia.

        Devuelve: courseId, userId, role, action, dryRun.

        Alcance: write. Permisos de Moodle: moodle/role:assign.

        Ejemplo de argumentos:

        {"courseId": 42, "username": "ada", "role": "teacher", "action": "assign"}
        

        create_group

        Crea un grupo en un curso.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        name string sí — Nombre del grupo. (máx. 254)
        description string no "" Descripción del grupo en HTML.

        Devuelve: groupId, courseId, name.

        Alcance: write. Permisos de Moodle: moodle/course:managegroups.

        Ejemplo de argumentos:

        {"courseId": 42, "name": "Group A"}
        

        add_group_members

        Añade usuarios matriculados a un grupo. Cada miembro es userId, username o email. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        groupId integer sí — Id del grupo en ese curso.
        members array sí — Añade a estas personas. Cada elemento lleva userId, username o email. (hasta 50)
        dryRun boolean no false Si es true, comprueba el grupo y no cambia los miembros.

        Campos de cada elemento de members:

        • userId (integer): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        • username (string): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        • email (string): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)

        * = obligatorio.

        Devuelve: courseId, groupId, dryRun, members[].

        Alcance: write. Permisos de Moodle: moodle/course:managegroups.

        Ejemplo de argumentos:

        {"courseId": 42, "groupId": 9, "members": [{"username": "ada"}, {"email": "[email protected]"}]}
        

        remove_group_members

        Quita usuarios de un grupo. Cada miembro es userId, username o email. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        courseId integer uno de courseId / courseShortname — Id del curso de Moodle. Alternativa a courseShortname. Envía solo uno de los dos.
        courseShortname string uno de courseId / courseShortname — Nombre corto exacto del curso. Alternativa a courseId para el mismo curso. Envía solo uno de los dos. (máx. 255)
        groupId integer sí — Id del grupo en ese curso.
        members array sí — Quita a estas personas. Cada elemento lleva userId, username o email. (hasta 50)
        dryRun boolean no false Si es true, comprueba el grupo y no cambia los miembros.

        Campos de cada elemento de members:

        • userId (integer): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        • username (string): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        • email (string): Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)

        * = obligatorio.

        Devuelve: courseId, groupId, dryRun, members[].

        Alcance: write. Permisos de Moodle: moodle/course:managegroups.

        Ejemplo de argumentos:

        {"courseId": 42, "groupId": 9, "members": [{"userId": 57}]}
        

        Foros y mensajería

        create_forum_discussion

        Abre un debate en un foro, también en el de avisos (news). Indica cmid o forumId, no los dos. El mensaje es HTML y se limpia antes de guardarlo. Se respeta el modo de grupo. El mensaje entra en el envío de correo normal del foro.

        Parámetro Tipo Obligatorio Por defecto Descripción
        cmid integer uno de cmid / forumId — Id del módulo de curso del foro.
        forumId integer uno de cmid / forumId — Id de la instancia del foro.
        subject string sí — Asunto del debate. (máx. 255)
        message string sí — Mensaje del debate en HTML.
        groupId integer no — Id del grupo si el foro usa grupos. Si se omite, el grupo actual de quien llama.
        pinned boolean no false Fija el debate.

        Devuelve: discussionId, postId, forumId, cmid, courseId, url, pinned.

        Alcance: write. Permisos de Moodle: mod/forum:addnews en el foro de avisos y mod/forum:startdiscussion en los demás; mod/forum:pindiscussions para pinned.

        Ejemplo de argumentos:

        {"cmid": 120, "subject": "Week 3 is open", "message": "<p>The materials for week 3 are ready.</p>"}
        

        reply_forum_post

        Responde a un mensaje de un foro. El mensaje es HTML y se limpia antes de guardarlo. El debate tiene que ser visible para quien llama, también por grupos. Si no se indica asunto, se usa Re: y el asunto del mensaje original. La respuesta entra en el envío de correo normal del foro.

        Parámetro Tipo Obligatorio Por defecto Descripción
        postId integer sí — Id del mensaje al que se responde.
        message string sí — Respuesta en HTML.
        subject string no — Asunto opcional. Si se omite, Re: y el asunto original. (máx. 255)

        Devuelve: discussionId, postId, parentId, forumId, cmid, url.

        Alcance: write. Permisos de Moodle: mod/forum:replynews en el foro de avisos y mod/forum:replypost en los demás.

        Ejemplo de argumentos:

        {"postId": 5521, "message": "<p>Thanks, fixed.</p>"}
        

        send_private_message

        Envía un mensaje privado de Moodle a un id de usuario. El texto es HTML y se limpia antes de guardarlo. Se respetan las preferencias de mensajería del destinatario (cualquiera, miembros de sus cursos o solo contactos) y los bloqueos. Si ya hay una conversación individual, se reutiliza.

        Parámetro Tipo Obligatorio Por defecto Descripción
        userId integer sí — Id del destinatario.
        message string sí — Mensaje en HTML.

        Devuelve: conversationId, messageId, userId, text.

        Alcance: write. Permisos de Moodle: moodle/site:sendmessage.

        Ejemplo de argumentos:

        {"userId": 205, "message": "<p>Your resubmission is due on Friday.</p>"}
        

        reply_conversation

        Envía un mensaje a una conversación de Moodle de la que el usuario actual es miembro. El texto es HTML y se limpia antes de guardarlo. En una conversación privada se respetan además las preferencias de mensajería de la otra persona.

        Parámetro Tipo Obligatorio Por defecto Descripción
        conversationId integer sí — Id de conversación de list_conversations o send_private_message.
        message string sí — Mensaje en HTML.

        Devuelve: conversationId, messageId, text.

        Alcance: write. Permisos de Moodle: moodle/site:sendmessage y ser miembro de la conversación.

        Ejemplo de argumentos:

        {"conversationId": 17, "message": "<p>See you on Monday.</p>"}
        

        Cuentas de usuario (alcance admin)

        create_user

        Crea una cuenta en el sitio. La autenticación por defecto es manual. Si se omite la contraseña, Moodle genera una y la envía por email. La contraseña nunca aparece en la respuesta. dryRun true comprueba la cuenta y no guarda nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        username string sí — Nombre de usuario. Se guarda en minúsculas. (máx. 100)
        firstname string sí — Nombre. (máx. 100)
        lastname string sí — Apellidos. (máx. 100)
        email string sí — Dirección de email. Debe ser única salvo que el sitio permita duplicados. (máx. 100)
        auth string no "manual" Plugin de autenticación habilitado.
        password string no — Contraseña opcional. Si se omite, Moodle genera una y se la envía por email. Nunca se devuelve. (máx. 255)
        idnumber string no — Número de identificación opcional. (máx. 255)
        dryRun boolean no false Si es true, valida la cuenta y no la crea ni envía email.

        Devuelve: dryRun, userId, username, passwordGenerated, passwordSent.

        Alcance: admin. Permisos de Moodle: Alcance admin, escritura activada y moodle/user:create (sistema).

        Ejemplo de argumentos:

        {"username": "ada", "firstname": "Ada", "lastname": "Lovelace", "email": "[email protected]", "dryRun": true}
        

        create_users

        Crea hasta 20 cuentas. Si alguna fila no es válida, no se crea ninguna. Las contraseñas nunca se devuelven. dryRun true solo valida la lista.

        Parámetro Tipo Obligatorio Por defecto Descripción
        users array sí — Cuentas que se crean. (hasta 20)
        dryRun boolean no false Si es true, valida cada fila y no crea nada.

        Campos de cada elemento de users:

        • username* (string): Nombre de usuario. Se guarda en minúsculas. (máx. 100)
        • firstname* (string): Nombre. (máx. 100)
        • lastname* (string): Apellidos. (máx. 100)
        • email* (string): Dirección de email. Debe ser única salvo que el sitio permita duplicados. (máx. 100)
        • auth (string): Plugin de autenticación habilitado.
        • password (string): Contraseña opcional. Si se omite, Moodle genera una y se la envía por email. Nunca se devuelve. (máx. 255)
        • idnumber (string): Número de identificación opcional. (máx. 255)

        * = obligatorio.

        Devuelve: dryRun, users[].

        Alcance: admin. Permisos de Moodle: Alcance admin, escritura activada y moodle/user:create (sistema).

        Ejemplo de argumentos:

        {"users": [{"username": "ada", "firstname": "Ada", "lastname": "Lovelace", "email": "[email protected]"}], "dryRun": true}
        

        update_user

        Cambia nombre, apellidos, email, idnumber, ciudad, país, institución o departamento. Identifica la cuenta con userId, username o email. dryRun true no cambia nada. Esta tool no borra cuentas.

        Parámetro Tipo Obligatorio Por defecto Descripción
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Nuevo email. Omítelo para dejar el valor actual. (máx. 255)
        firstname string no — Nuevo nombre. Omítelo para dejar el valor actual. (máx. 255)
        lastname string no — Nuevos apellidos. Omítelo para dejar el valor actual. (máx. 255)
        idnumber string no — Nuevo idnumber. Omítelo para dejar el valor actual. (máx. 255)
        city string no — Nueva ciudad. Omítelo para dejar el valor actual. (máx. 255)
        country string no — Nuevo país. Omítelo para dejar el valor actual. (máx. 255)
        institution string no — Nueva institución. Omítelo para dejar el valor actual. (máx. 255)
        department string no — Nuevo departamento. Omítelo para dejar el valor actual. (máx. 255)
        auth string no — Plugin de autenticación habilitado.
        dryRun boolean no false Si es true, comprueba el cambio y no lo guarda.

        Devuelve: dryRun, userId, updated[].

        Alcance: admin. Permisos de Moodle: Alcance admin, escritura activada y moodle/user:update (sistema).

        Ejemplo de argumentos:

        {"username": "ada", "department": "Mathematics"}
        

        suspend_user

        Suspende una cuenta para que la persona no pueda entrar. La cuenta no se borra. No puedes suspenderte a ti mismo, al invitado ni a un administrador del sitio. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        dryRun boolean no false Si es true, comprueba la cuenta y no la suspende.

        Devuelve: userId, suspended, dryRun.

        Alcance: admin. Permisos de Moodle: Alcance admin, escritura activada y moodle/user:update (sistema).

        Ejemplo de argumentos:

        {"username": "ada", "dryRun": true}
        

        unsuspend_user

        Levanta la suspensión de una cuenta. dryRun true no cambia nada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        dryRun boolean no false Si es true, comprueba la cuenta y no levanta la suspensión.

        Devuelve: userId, suspended, dryRun.

        Alcance: admin. Permisos de Moodle: Alcance admin, escritura activada y moodle/user:update (sistema).

        Ejemplo de argumentos:

        {"username": "ada"}
        

        Políticas del sitio (alcance admin)

        set_site_policy_handler

        Pone sitepolicyhandler en tool_policy o lo vacía. enabled: true activa el plugin Políticas. enabled: false lo vacía si es tool_policy y se niega a quitar otro gestor distinto.

        Parámetro Tipo Obligatorio Por defecto Descripción
        enabled boolean sí — True pone sitepolicyhandler en tool_policy. False quita ese gestor.

        Devuelve: enabled, handler.

        Alcance: admin. Permisos de Moodle: moodle/site:config.

        Ejemplo de argumentos:

        {"enabled": true}
        

        create_policy

        Crea una política del sitio y su primera versión con tool_policy\api::form_policydoc_add. name, summary y content son obligatorios. type es site por defecto, audience es all y optional es false (obligatoria). Con activate: true la versión pasa a ser la vigente; si no, queda como borrador.

        Parámetro Tipo Obligatorio Por defecto Descripción
        name string sí — Nombre de la política. (máx. 1333)
        type string no — Si se omite al crear, site. Valores: site, privacy, thirdparty, other.
        audience string no — Si se omite al crear, all. Valores: all, loggedin, guests.
        optional boolean no — True si el usuario puede rechazarla. False, el valor por defecto al crear, significa que es obligatoria.
        revision string no — Etiqueta de revisión. Si va vacía, Moodle usa la fecha de creación. (máx. 1333)
        summary string sí — Resumen en HTML. Se limpia antes de guardarlo.
        content string sí — Texto completo de la política en HTML. Se limpia antes de guardarlo.
        activate boolean no — True la convierte en la versión vigente. False, el valor por defecto, guarda un borrador.

        Devuelve: policyId, versionId, currentVersionId, name, type, audience, optional, revision, summary, content, status.

        Alcance: admin. Permisos de Moodle: tool/policy:managedocs.

        Ejemplo de argumentos:

        {"name": "Terms of use", "summary": "<p>Short version.</p>", "content": "<p>Full text.</p>", "activate": true}
        

        update_policy

        Modifica una política del sitio con tool_policy\api. versionId es por defecto la versión vigente o, si no hay, el borrador más reciente. minorChange: true sobrescribe esa versión (no una archivada); si no, se guarda una versión nueva. activate: true la hace vigente. inactivate: true archiva la versión vigente. Envía activate o inactivate, no los dos.

        Parámetro Tipo Obligatorio Por defecto Descripción
        policyId integer sí — Id del documento de la política.
        versionId integer no — Versión que se edita. Si se omite, la vigente o el borrador más reciente.
        minorChange boolean no — True sobrescribe la versión. False, el valor por defecto, guarda una versión nueva.
        activate boolean no — True hace vigente la versión guardada.
        inactivate boolean no — True archiva la versión vigente y deja la política sin versión vigente.
        name string no — Nombre de la política. (máx. 1333)
        type string no — Si se omite al crear, site. Valores: site, privacy, thirdparty, other.
        audience string no — Si se omite al crear, all. Valores: all, loggedin, guests.
        optional boolean no — True si el usuario puede rechazarla. False, el valor por defecto al crear, significa que es obligatoria.
        revision string no — Etiqueta de revisión. Si va vacía, Moodle usa la fecha de creación. (máx. 1333)
        summary string no — Resumen en HTML. Se limpia antes de guardarlo.
        content string no — Texto completo de la política en HTML. Se limpia antes de guardarlo.

        Devuelve: policyId, versionId, currentVersionId, name, type, audience, optional, revision, summary, content, status.

        Alcance: admin. Permisos de Moodle: tool/policy:managedocs.

        Ejemplo de argumentos:

        {"policyId": 3, "content": "<p>Updated text.</p>", "activate": true}
        

        list_policies

        Lista las políticas del sitio y sus versiones. El estado de cada versión es draft, active o archived. policyId limita la lista a una política. No cambia nada, pero como las demás tools de administración necesita la escritura activada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        policyId integer no — Si se indica, solo devuelve esa política.

        Devuelve: policies[].

        Alcance: admin. Permisos de Moodle: tool/policy:managedocs.

        Ejemplo de argumentos:

        {}
        

        get_policy_acceptances

        Lista quién ha aceptado, rechazado o aún no ha respondido a una versión de una política. Se puede filtrar por curso y por un usuario. accepted, declined y pending cuentan a todos los que coinciden; acceptances está limitado por limit. Una política solo para invitados no tiene aceptaciones de usuarios. No cambia nada, pero como las demás tools de administración necesita la escritura activada.

        Parámetro Tipo Obligatorio Por defecto Descripción
        versionId integer sí — Id de la versión de la política.
        courseId integer no — Solo usuarios matriculados en este curso. Alternativa a courseShortname.
        courseShortname string no — Nombre corto exacto del curso. Alternativa a courseId. (máx. 255)
        limit integer no 100 Máximo de usuarios devueltos. Los recuentos incluyen a todos los que coinciden. (1–500)
        userId integer no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email.
        username string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)
        email string no — Una de tres formas alternativas de identificar al mismo usuario. Rellena solo uno de userId, username o email. (máx. 100)

        Devuelve: policyId, versionId, name, revision, accepted, declined, pending, truncated, acceptances[].

        Alcance: admin. Permisos de Moodle: tool/policy:viewacceptances.

        Ejemplo de argumentos:

        {"versionId": 7, "courseId": 42}