diff --git a/htdocs/api/index.php b/htdocs/api/index.php
index fc4f8bb8dfd60335d1ef5797303fae36098be703..e0abd839b6629896a59694ec5512ffa99ad8e537 100644
--- a/htdocs/api/index.php
+++ b/htdocs/api/index.php
@@ -65,8 +65,6 @@ $api->r->addAPIClass('Luracast\\Restler\\Explorer');
 $api->r->setSupportedFormats('JsonFormat', 'XmlFormat');
 $api->r->addAuthenticationClass('DolibarrApiAccess','');
 
-$listofapis = array();
-
 $modulesdir = dolGetModulesDirs();
 foreach ($modulesdir as $dir)
 {
@@ -80,25 +78,19 @@ foreach ($modulesdir as $dir)
     {
         while (($file = readdir($handle))!==false)
         {
-            if (is_readable($dir.$file) && preg_match("/^(mod.*)\.class\.php$/i",$file,$reg))
+            if (is_readable($dir.$file) && preg_match("/^mod(.*)\.class\.php$/i",$file,$reg))
             {
-                $modulename=$reg[1];
+                $module = $part = strtolower($reg[1]);
 
-                // Defined if module is enabled
-                $enabled=true;
-                $module=$part=$obj=strtolower(preg_replace('/^mod/i','',$modulename));
-                //if ($part == 'propale') $part='propal';
-                if ($module == 'societe') {
-					$obj = 'thirdparty';
-				}
                 if ($module == 'categorie') {
                     $part = 'categories';
-					$obj = 'category';
 				}
                 if ($module == 'facture') {
                     $part = 'compta/facture';
-					$obj = 'facture';
 				}
+
+                // Defined if module is enabled
+                $enabled=true;
                 if (empty($conf->$module->enabled)) $enabled=false;
 
                 if ($enabled)
@@ -118,17 +110,14 @@ foreach ($modulesdir as $dir)
                     {
                         while (($file_searched = readdir($handle_part))!==false)
                         {
-                            if (is_readable($dir_part.$file_searched) && preg_match("/^(api_.*)\.class\.php$/i",$file_searched,$reg))
+                            if (is_readable($dir_part.$file_searched) && preg_match("/^api_(.*)\.class\.php$/i",$file_searched,$reg))
                             {
-                                $classname=$reg[1];
-                                $classname = str_replace('Api_','',ucwords($reg[1])).'Api';
-                                $classname = ucfirst($classname);
+                                $classname = ucwords($reg[1]);
                                 require_once $dir_part.$file_searched;
-                                if (class_exists($classname)) 
+                                if (class_exists($classname))
                                 {
                                     dol_syslog("Found API classname=".$classname);    
-                                    $api->r->addAPIClass($classname,'');
-                                    $listofapis[]=array('classname'=>$classname, 'fullpath'=>$file_searched);
+                                    $api->r->addAPIClass($classname);
                                 }
                             }
                         }
diff --git a/htdocs/societe/class/api_contact.class.php b/htdocs/societe/class/api_contacts.class.php
similarity index 91%
rename from htdocs/societe/class/api_contact.class.php
rename to htdocs/societe/class/api_contacts.class.php
index 5144c000b4d634ba9aa2ba21bf0b574b89432a1a..d49be1bd4f14b882a82200cccfc8b6060d537bc8 100644
--- a/htdocs/societe/class/api_contact.class.php
+++ b/htdocs/societe/class/api_contacts.class.php
@@ -20,14 +20,12 @@ use Luracast\Restler\RestException;
 //require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
 
 /**
- * API class for contact object
+ * API class for contacts
  *
- * @smart-auto-routing false
  * @access protected 
  * @class  DolibarrApiAccess {@requires user,external}
- * 
  */
-class ContactApi extends DolibarrApi
+class Contacts extends DolibarrApi
 {
 	/**
 	 *
@@ -44,9 +42,6 @@ class ContactApi extends DolibarrApi
 
 	/**
 	 * Constructor
-	 *
-	 * @url	contact/
-	 * 
 	 */
 	function __construct() {
 		global $db, $conf;
@@ -62,7 +57,6 @@ class ContactApi extends DolibarrApi
 	 * @param 	int 	$id ID of contact
 	 * @return 	array|mixed data without useless information
 	 * 
-	 * @url	GET contact/{id}
 	 * @throws 	RestException
 	 */
 	function get($id) {
@@ -96,15 +90,10 @@ class ContactApi extends DolibarrApi
 	 * @param int		$limit		Limit for list
 	 * @param int		$page		Page number
 	 * @return array Array of contact objects
-	 *
-	 * @url	GET /contact/list
-	 * @url	GET /contact/list/{socid}
-	 * @url	GET	/thirdparty/{socid}/contacts
-	 * @url	GET	/customer/{socid}/contacts
      * 
 	 * @throws RestException
 	 */
-	function getList($socid = 0, $sortfield = "c.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) {
+	function index($socid = 0, $sortfield = "c.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) {
 		global $db, $conf;
 
 		$obj_ret = array();
@@ -191,8 +180,6 @@ class ContactApi extends DolibarrApi
 	 *
 	 * @param   array   $request_data   Request datas
 	 * @return  int     ID of contact
-     * 
-	 * @url	POST contact/
 	 */
 	function post($request_data = NULL) {
 		if (!DolibarrApiAccess::$user->rights->societe->contact->creer)
@@ -215,8 +202,6 @@ class ContactApi extends DolibarrApi
 	 * @param int   $id             Id of contact to update
 	 * @param array $request_data   Datas   
 	 * @return int 
-     * 
-	 * @url	PUT contact/{id}
 	 */
 	function put($id, $request_data = NULL) {
 		if (!DolibarrApiAccess::$user->rights->societe->contact->creer)
@@ -251,11 +236,9 @@ class ContactApi extends DolibarrApi
 	 *
 	 * @param   int     $id Contact ID
 	 * @return  integer
-   * 
-	 * @url	DELETE contact/{id}
 	 */
 	function delete($id) {
-		if (!DolibarrApiAccess::$user->rights->contact->supprimer)
+		if (!DolibarrApiAccess::$user->rights->societe->contact->supprimer)
 		{
 			throw new RestException(401);
 		}
@@ -282,7 +265,7 @@ class ContactApi extends DolibarrApi
 	 */
 	function _validate($data) {
 		$contact = array();
-		foreach (ContactApi::$FIELDS as $field)
+		foreach (Contacts::$FIELDS as $field)
 		{
 			if (!isset($data[$field]))
 				throw new RestException(400, "$field field missing");
diff --git a/htdocs/user/class/api_user.class.php b/htdocs/user/class/api_users.class.php
similarity index 94%
rename from htdocs/user/class/api_user.class.php
rename to htdocs/user/class/api_users.class.php
index e89a5faac0bf42a0ec5e9ca159c538bfea06b2fd..7b2396434de64d82bdb284c258c79708558d0275 100644
--- a/htdocs/user/class/api_user.class.php
+++ b/htdocs/user/class/api_users.class.php
@@ -20,14 +20,12 @@ use Luracast\Restler\RestException;
 //require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
 
 /**
- * API class for user object
+ * API class for users
  *
- * @smart-auto-routing false
  * @access protected 
  * @class  DolibarrApiAccess {@requires user,external}
- * 
  */
-class UserApi extends DolibarrApi
+class Users extends DolibarrApi
 {
 	/**
 	 *
@@ -44,9 +42,6 @@ class UserApi extends DolibarrApi
 
 	/**
 	 * Constructor
-	 *
-	 * @url	user/
-	 * 
 	 */
 	function __construct() {
 		global $db, $conf;
@@ -62,7 +57,6 @@ class UserApi extends DolibarrApi
 	 * @param 	int 	$id ID of user
 	 * @return 	array|mixed data without useless information
 	 * 
-	 * @url	GET user/{id}
 	 * @throws 	RestException
 	 */
 	function get($id) {
@@ -85,6 +79,7 @@ class UserApi extends DolibarrApi
 	}
 
 	/**
+	 * TODO move to the /contacts/ API
 	 * Create useraccount object from contact
 	 *
 	 * @param   int   $contactid   Id of contact
@@ -133,8 +128,6 @@ class UserApi extends DolibarrApi
 	 *
 	 * @param array $request_data New user data
 	 * @return int
-	 *
-	 * @url POST user/
 	 */
 	function post($request_data = NULL) {
 	    // check user authorization
@@ -170,8 +163,6 @@ class UserApi extends DolibarrApi
 	 * @param int   $id             Id of account to update
 	 * @param array $request_data   Datas   
 	 * @return int 
-     * 
-	 * @url	PUT user/{id}
 	 */
 	function put($id, $request_data = NULL) {
 		//if (!DolibarrApiAccess::$user->rights->user->user->creer) {
@@ -194,7 +185,7 @@ class UserApi extends DolibarrApi
 			$this->useraccount->$field = $value;
 		}
 
-		if ($this->useraccount->update($id, DolibarrApiAccess::$user, 1, '', '', 'update'))
+		if ($this->useraccount->update(DolibarrApiAccess::$user, 1))
 			return $this->get($id);
 
         return false;
@@ -207,9 +198,9 @@ class UserApi extends DolibarrApi
 	 * @param   int     $group Group ID
 	 * @return  int
      * 
-	 * @url	GET user/{id}/setGroup/{group}
+	 * @url	GET {id}/setGroup/{group}
 	 */
-	function setGroup($id,$group) {
+	function setGroup($id, $group) {
 		//if (!DolibarrApiAccess::$user->rights->user->user->supprimer) {
 			//throw new RestException(401);
 		//}
@@ -232,8 +223,6 @@ class UserApi extends DolibarrApi
 	 *
 	 * @param   int     $id Account ID
 	 * @return  array
-     * 
-	 * @url	DELETE user/{id}
 	 */
 	function delete($id) {
 		//if (!DolibarrApiAccess::$user->rights->user->user->supprimer) {
@@ -262,7 +251,7 @@ class UserApi extends DolibarrApi
 	 */
 	function _validate($data) {
 		$account = array();
-		foreach (UserApi::$FIELDS as $field)
+		foreach (Users::$FIELDS as $field)
 		{
 			if (!isset($data[$field]))
 				throw new RestException(400, "$field field missing");