Creating a Moodle User via Web Services

We can do lots of stuff in moodle via api but I found the technical doc confusing and lacking…

Here, we’re going to allow external system to talk to moodle via soap, in fact to create a user in moodle. Here are the steps.

1. In moodle, go to site admin -> advance feature -> enable web services.

2. site admin -> web services -> external services -> add (add a new service called from_wordpress and checked “enabled” and “authorised users only”. After clicking on submit, you will be asked to add functions. Lets add “core_user_create_users” function for example.

3. Under site admin -> web services -> external services again, click on “authorized users” and add your admin user.

4. under site admin -> web services -> manage protocol, turn on the soap protocol and turn off the rest of the protocol for the sake of security.

5. under site admin -> web services -> manage token -> add, select the admin user and choose the from_wordpress service. You will now get a token that you can use in other apps.

6. now to connect to moodle via soap, your url should be something like this:


and using native php soap library, your code could be along the lines of:

$functionname = 'core_user_create_users';
$user1 = new stdClass();
$user1->username = 'abcd';
$user1->password =  'Password123!';
$user1->firstname = 'ali';
$user1->lastname = 'asdsad';
$user1->email = '';
$user1->city = 'apo';
$user1->country = 'addfa';
$user1->auth = 'manual';
$params = array($user1);

$serverurl = '';
///Do the main soap call
$client = new SoapClient($serverurl);
try {
  $resp = $client->__soapCall($functionname, array($params));
catch (SoapFault $e) {

* the moodle comes with minimal documentation at http://your_moodle_site/admin/webservice/documentation.php

Author: bpeh

Bernard Peh is a great passioner of web technologies and one of the co-founder of Website Design and Reviews. He works with experienced web designers and developers everyday, developing and designing commercial websites. He specialises mainly in SEO and PHP programming.

2 thoughts on “Creating a Moodle User via Web Services”

  1. For this,
    $client = new SoapClient($serverurl);

    which class is required to include?

    as we are creating an object of SoapClient class. so this class should be included.

Comments are closed.