diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/AnnotatedTimeLine.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/AnnotatedTimeLine.java
index 94ea60c..8e39c7b 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/AnnotatedTimeLine.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/AnnotatedTimeLine.java
@@ -57,6 +57,8 @@
  */
 public class AnnotatedTimeLine extends VisualizationWidget {
 
+  public static final String ANNOTATED_TIMELINE_API = "annotatedtimeline";
+
   /**
    * Constructs an annotated timeline widget in the specified parent and style. 
    * A visualization widget by default will auto-resize to fill its parent.
@@ -83,4 +85,9 @@
     super( parent, style );
   }
   
+  @Override
+  public String getGoogleAPI () {
+    return ANNOTATED_TIMELINE_API;
+  }
+  
 }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Gauge.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Gauge.java
index 5dac2b0..aefa00b 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Gauge.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Gauge.java
@@ -52,6 +52,8 @@
  */
 public class Gauge extends VisualizationWidget {
 
+  public static final String GAUGE_API = "gauge";
+
   /**
    * Constructs a gauge widget in the specified parent and style. 
    * A visualization widget by default will auto-resize to fill its parent.
@@ -77,5 +79,10 @@
   public Gauge( final Composite parent, final int style ) {
     super( parent, style );
   }
+  
+  @Override
+  public String getGoogleAPI() {
+    return GAUGE_API;
+  }
 
 }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Geomap.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Geomap.java
index b583c26..99c5649 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Geomap.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Geomap.java
@@ -56,6 +56,8 @@
  */
 public class Geomap extends VisualizationWidget {
 
+  public static final String GEOMAP_API = "geomap";
+
   /**
    * Constructs a geomap widget in the specified parent and style. 
    * A visualization widget by default will auto-resize to fill its parent.
@@ -81,5 +83,10 @@
   public Geomap( final Composite parent, final int style ) {
     super( parent, style );
   }
+  
+  @Override
+  public String getGoogleAPI() {
+    return GEOMAP_API;
+  }
 
 }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/IntensityMap.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/IntensityMap.java
index e30e956..b1066cf 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/IntensityMap.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/IntensityMap.java
@@ -55,6 +55,8 @@
  */
 public class IntensityMap extends VisualizationWidget {
 
+  public static final String INTENSITY_MAP_API = "intensitymap";
+
   /**
    * Constructs an intensity map widget in the specified parent and style. 
    * A visualization widget by default will auto-resize to fill its parent.
@@ -80,5 +82,10 @@
   public IntensityMap( final Composite parent, final int style ) {
     super( parent, style );
   }
+  
+  @Override
+  public String getGoogleAPI() {
+    return INTENSITY_MAP_API;
+  }
 
 }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/MotionChart.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/MotionChart.java
index 637f57c..4419ec0 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/MotionChart.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/MotionChart.java
@@ -63,6 +63,7 @@
  */
 public class MotionChart extends VisualizationWidget {
 
+  public static final String MOTION_CHART_API = "motionchart";
   protected Set listeners;
   
   /**
@@ -91,6 +92,11 @@
     super( parent, style );
   }
   
+  @Override
+  public String getGoogleAPI() {
+    return MOTION_CHART_API;
+  }
+  
   /**
    * Listener interface for widget 'state' option changes. 
    */
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Table.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Table.java
index 7145478..7efc2bc 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Table.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/Table.java
@@ -56,6 +56,8 @@
  */
 public class Table extends VisualizationWidget {
 
+  public static final String TABLE_API = "table";
+
   /**
    * Constructs a table widget in the specified parent and style. 
    * A visualization widget by default will auto-resize to fill its parent.
@@ -82,4 +84,8 @@
     super( parent, style );
   }
 
+  @Override
+  public String getGoogleAPI() {
+    return TABLE_API;
+  }
 }
diff --git a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
index e54559c..3ea45c8 100644
--- a/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
+++ b/bundles/org.eclipse.rap.rwt.visualization.google/src/org/eclipse/rap/rwt/visualization/google/VisualizationWidget.java
@@ -26,6 +26,8 @@
  */
 public abstract class VisualizationWidget extends Composite {
   
+  public static final String CORE_CHART_API = "corechart";
+  
   private String widgetData = "";
   String widgetOptions = "";
   String widgetSize = "";
@@ -61,6 +63,14 @@
       }
     });
   }
+  
+  /**
+   * Gets the google api that backs this chart.
+   * @return a string identifier that is the google visualization api
+   */
+  public String getGoogleAPI () {
+    return CORE_CHART_API;
+  }
 
   /**
    * Returns the data that composes/defines the actual visualization.
