Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Web service API functions

From MoodleDocs

Moodle 2.0


Color meaning
Implemented
Must be implemented
Suggested


Web service protocols

Name Moodle Ver. Description Issue
AMF 2.0 Adobe protocol to communicate with Flash/Flex apps
REST (returning XML) 2.0 XML data accessed through a REST API (not restful)
REST (returning JSON) 2.X JSON data accessed through a REST API (not restful) MDL-29242
REST (returning JSONP) 2.X Would be very useful for client-side JavaScript
JSON 2.2 JSON server receives a JSON encoded params and return JSON encoded values. MDL-21341
SOAP 2.0 Very important for interoperating with Java and .Net applications. There was a partial implementation JAVA/.Net in Moodle 2.0, but it does not work for anything but the most trivial functions. It is fully working with PHP clients. MDL-20804, MDL-28988, MDL-28989
XMLRPC 2.0 XML remote-procedure call.

Web service functions

Naming convention

Tracker issue: MDL-29106

Component Draft naming convention Current naming Annotation
module mod_forum_create_posts moodle_mod_forum_create_posts()
enrolment plugin enrol_manual_enrol_users moodle_enrol_manual_enrol_users()
local plugin local_hub_get_courses local_hub_get_courses
user core_user_create_users() moodle_user_create_users() core_component_functionname
course core_course_create_courses() moodle_course_create_courses()
course core_course_create_categories() moodle_category_create_categories()
role core_role_assign_roles() moodle_role_assign()
enrol core_enrol_get_enrolled_users() moodle_enrol_get_enrolled_users()
  • fullcomponent = frankenstyle like core_xxxx or mod_xxxx
  • classname = fullcomponent_external
  • methodname = verb_noun(s)
  • WS function names = fullcomponent_methodname

API Roadmap

Tracker issue: MDL-29934

Moodle 2.2 name Moodle 2.0/2.1 name Moodle Ver. Description Issue
User
core_user_create_users() moodle_user_create_users() 2.0 Create users - admin function
core_user_delete_users() moodle_user_delete_users() 2.0 Delete users - admin function
core_user_update_users() moodle_user_update_users() 2.0 Update users
core_user_get_users_by_id() moodle_user_get_users_by_id() 2.0 Get users by id
core_user_get_course_user_profiles() moodle_user_get_course_participants_by_id() 2.1 Get course user profiles by id
core_user_get_users() 2.2 Get users from a specifed key/value MDL-29938
core_user_get_completed_users_per_course() 2.2 Get users who completed the course MDL-28320
core_user_get_completed_courses_per_user() 2.2 Get courses that a user completed MDL-28319
Course
core_course_get_courses() moodle_course_get_courses() 2.0 Return course details
core_course_create_courses() moodle_course_create_courses() 2.0 Create new courses
core_course_update_courses() 2.2 including moving categories
core_course_delete_courses() 2.2 MDL-13130
core_course_get_course_contents() 2.2 including sections, activities etc MDL-28646
core_course_get_recent_activity() 2.2 also works for site course MDL-13135
Group
core_group_create_groups() moodle_group_create_groups() 2.0 Creates new groups
core_group_get_groups() moodle_group_get_groups() 2.0 Returns group details.
core_group_get_course_groups() moodle_group_get_course_groups() 2.0 Returns all groups in specified course
core_group_delete_groups() moodle_group_delete_groups() 2.0 Deletes all specified groups
core_group_get_group_members() moodle_group_get_groupmembers() 2.0 Returns group members
core_group_add_group_members() moodle_group_add_groupmembers() 2.0 Adds group members
core_group_delete_group_members() moodle_group_delete_groupmembers() 2.0 Deletes group members
Role
core_role_assign_roles() moodle_role_assign() 2.0 Manual role assignments
core_role_unassign_roles() moodle_role_unassign() 2.0 Manual role unassignments
Enrol
NONE moodle_enrol_get_enrolled_users() 2.0 get some minimal information about the users enrolled in a course (DEPRECATED)
core_enrol_get_enrolled_users() moodle_user_get_users_by_courseid() 2.1 Get enrolled users by course id
core_enrol_get_users_courses() moodle_enrol_get_users_courses() 2.0 get list of course ids that a user is enrolled in (if you are allowed to see that)
Enrol/manual
enrol_manual_enrol_users() moodle_enrol_manual_enrol_users() 2.0 Manual enrol users
enrol_manual_unenrol_users() 2.2 Manual unenrol users
enrol_ manual_update_enrolments() 2.2
Enrol/cohort
enrol_cohort_create() 2.2 MDL-29472
enrol_cohort_delete() 2.2 MDL-29935
enrol_cohort_update() 2.2 MDL-29936
enrol_cohort_remove_user() 2.2 MDL-29939
enrol_cohort_add_user() 2.2 MDL-29473
Enrol/self
enrol_self_enrol() 2.2
enrol_self_unenrol() 2.2
Webservice
core_webservice_get_site_info() moodle_webservice_get_siteinfo() 2.1 Return some site info / user info / list web service functions
Message
core_message_send_instant_messages() moodle_message_send_instantmessages() 2.1 Send instant messages
core_message_get_instant_messages() 2.2 params for unread etc
core_message_create_contacts() 2.2
core_message_delete_contacts() 2.2
Notes
core_notes_create_notes() moodle_notes_create_notes() 2.1 Create notes
core_notes_delete_notes() 2.2
Events
core_XXXX_trigger_event() 2.2 triggers an event
Calendar
core_calendar_create_calendar_events() 2.2
core_calendar_update_calendar_events() 2.2
core_calendar_delete_calendar_events() 2.2
Private file
core_files_get_files() moodle_file_get_files() 2.0 browse moodle files
core_files_upload() moodle_file_upload() 2.0 upload a file to moodle (DEPRECATED)
core_files_create_files() 2.2 can also do folders via a flag
core_files_update_files() 2.2
core_files_delete_files() 2.2
Category
core_course_create_categories() 2.2
core_course_delete_categories() 2.2
core_course_update_categories() 2.2
core_course_get_categories() 2.2
Grade
core_grades_get_grades() 2.2 for user, course, activity etc
core_grades_get_scales() 2.2
core_grades_get_outcomes() 2.2
core_grades_update_grades() 2.2 including feedback
core_grades_create_grades() 2.2
Ratings
core_rating_get_ratings() 2.2
core_rating_create_ratings() 2.2
core_rating_update_ratings() 2.2
core_rating_delete_ratings() 2.2
Comments
core_XXXXX_get_comments() 2.2
core_XXXXX_create_comments() 2.2
core_XXXXX_update_comments() 2.2
core_XXXXX_delete_comments() 2.2
Forum
mod_forum_get_forums() 2.2
mod_forum_create_forums() 2.2
mod_forum_update_forums() 2.2
mod_forum_delete_forums() 2.2
mod_forum_get_discussions() 2.2
mod_forum_create_discussions() 2.2
mod_forum_update_discussions() 2.2
mod_forum_delete_discussions() 2.2
mod_forum_get_posts() 2.2
mod_forum_create_posts() 2.2
mod_forum_update_posts() 2.2
mod_forum_delete_posts() 2.2