Waze map for Developers

Waze supports an API which enables developers to invoke the Waze client application through an external URL. The URL can be accessed from within another mobile application or a mobile web page.

The Waze application can then locate an address, mark an address on the map or start a navigation session to an address or destination.

iPhone API

Launching Waze iPhone client with parameters

URL scheme can be used to launch Waze with parameters from 3rd party app, email, SMS, web page link, etc.

The following are the available parameters:

search for address: waze://?q=<address search term>
center map to lat / lon: waze://?ll=<lat>,<lon>
set zoom (minimum is 6): waze://?z=<zoom>

Examples:

center map to Ayalon and set zoom to 10 waze://?ll=37.44469,-122.15971&z=10
search for address: waze://?q=San%20Jose%20California

The following code snippet example will navigate to lat/lon if Waze is installed, or else will launch the AppStore to install Waze.

- (void) navigateToLatitude:(double)latitude
                  longitude:(double)longitude
{
  if ([[UIApplication sharedApplication]
    canOpenURL:[NSURL URLWithString:@"waze://"]]) {

      // Waze is installed. Launch Waze and start navigation
      NSString *urlStr =
        [NSString stringWithFormat:@"waze://?ll=%f,%f&navigate=yes",
        latitude, longitude];

      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];

   } else {

      // Waze is not installed. Launch AppStore to install Waze app
      [[UIApplication sharedApplication] openURL:[NSURL
        URLWithString:@"http://itunes.apple.com/us/app/id323229106"]];
   }
}

Android API

The following code snippet example will launch Waze to look for the specified location, if Waze is installed. If Waze is not installed it will open Waze page on the Market application.

try
{
   String url = "waze://?q=Hawaii";
    Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( url ) );
   startActivity( intent );
}
catch ( ActivityNotFoundException ex  )
{
  Intent intent =
    new Intent( Intent.ACTION_VIEW, Uri.parse( "market://details?id=com.waze" ) );
  startActivity(intent);
}