diff --git a/settings/ajax/apps/ocs.php b/settings/ajax/apps/ocs.php
new file mode 100644
index 0000000000000000000000000000000000000000..c7b6b22748a7985a740dc1751a0d9a638627eebb
--- /dev/null
+++ b/settings/ajax/apps/ocs.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Copyright (c) 2012 Thomas Tanghus <thomas@tanghus.net>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+// Init owncloud
+require_once('../../../lib/base.php');
+
+OC_JSON::checkAdminUser();
+OC_JSON::callCheck();
+$l = OC_L10N::get('core');
+
+if(OC_Config::getValue('appstoreenabled', true)==false){
+	OCP\JSON::success(array('type' => 'external', 'data' => array()));
+}
+
+$enabledApps=OC_App::getEnabledApps();
+
+if(is_null($enabledApps)) {
+	OCP\JSON::error(array('data' => array('message' => $l->t('Unable to load list from App Store'))));
+}
+
+$apps=array();
+
+// apps from external repo via OCS
+$catagoryNames=OC_OCSClient::getCategories();
+if(is_array($catagoryNames)){
+	$categories=array_keys($catagoryNames);
+	$page=0;
+	$externalApps=OC_OCSClient::getApplications($categories,$page);
+	foreach($externalApps as $app){
+		// show only external apps that aren't enabled yet
+		$local=false;
+		foreach($enabledApps as $a){
+			if($a['name'] == $app['name']) {
+				$local=true;
+			}
+		}
+
+		if(!$local) {
+			if($app['preview']=='') {
+				$pre='trans.png';
+			} else {
+				$pre=$app['preview'];
+			}
+			$apps[]=array(
+				'name'=>$app['name'],
+				'id'=>$app['id'],
+				'active'=>false,
+				'description'=>$app['description'],
+				'author'=>$app['personid'],
+				'license'=>$app['license'],
+				'preview'=>$pre,
+				'internal'=>false,
+				'internallabel'=>'3rd Party App',
+			);
+		}
+	}
+}
+
+OCP\JSON::success(array('type' => 'external', 'data' => $apps));
+