diff --git a/core/api/src/main/java/org/onosproject/ui/UiExtensionService.java b/core/api/src/main/java/org/onosproject/ui/UiExtensionService.java
new file mode 100644
index 0000000..330fbb7
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/ui/UiExtensionService.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.ui;
+
+import java.util.List;
+
+/**
+ * Service for registering user interface extensions.
+ */
+public interface UiExtensionService {
+
+    /**
+     * Registers the specified user interface extension.
+     *
+     * @param extension GUI extension to register
+     */
+    void register(UiExtension extension);
+
+    /**
+     * Unregisters the specified user interface extension.
+     *
+     * @param extension GUI extension to unregister
+     */
+    void unregister(UiExtension extension);
+
+    /**
+     * Returns the list of user interface extensions.
+     *
+     * @return list of extensions
+     */
+    List<UiExtension> getExtensions();
+
+    /**
+     * Returns the user interface extension that contributed the specified view.
+     *
+     * @param viewId view identifier
+     * @return user interface extension
+     */
+    UiExtension getViewExtension(String viewId);
+}
