--- title: Interacting with the Host sidebar_position: 6 --- # Interacting with the Host Extensions interact with Superset through well-defined, versioned APIs provided by the `@apache-superset/core` (frontend) and `apache-superset-core` (backend) packages. These APIs are designed to be stable, discoverable, and consistent for both built-in and external extensions. **Frontend APIs** (via `@apache-superset/core)`: The frontend extension APIs in Superset are organized into logical namespaces such as `authentication`, `commands`, `extensions`, `sqlLab`, and others. Each namespace groups related functionality, making it easy for extension authors to discover and use the APIs relevant to their needs. For example, the `sqlLab` namespace provides events and methods specific to SQL Lab, allowing extensions to react to user actions and interact with the SQL Lab environment: ``` typescript export const getCurrentTab: () => Tab | undefined; export const getDatabases: () => Database[]; export const getTabs: () => Tab[]; export const onDidChangeEditorContent: Event; export const onDidClosePanel: Event; export const onDidChangeActivePanel: Event; export const onDidChangeTabTitle: Event; export const onDidQueryRun: Event; export const onDidQueryStop: Event; ``` The following code demonstrates more examples of the existing frontend APIs: ``` typescript import { core, commands, sqlLab, authentication, Button } from '@apache-superset/core'; import MyPanel from './MyPanel'; export function activate(context) { // Register a new panel (view) in SQL Lab and use shared UI components in your extension's React code const panelDisposable = core.registerView('my_extension.panel',