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:
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:
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
* = 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:
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:
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:
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:
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
* = 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:
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:
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:
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(arraypairs(array
* = 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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: