appurl.org/go


The appurl.org/go service is the easiest way to link to an AppURL-enabled app. Whenever you have a URL starting with "http" or "https", all you have to do is insert "appurl.org/go/" at the beginning.

Example

Here's a link to the IMDb entry for the original Toy Story movie: http://appurl.org/go/www.imdb.com/title/tt0114709/

What happens when you click:

  • If you have one of IMDb's apps installed on your device, you'll launch the app and go directly to the right station.
  • If you don't have one of IMDb's apps installed on your device, you'll go to an interstitial web page that lists available IMDb apps you can download, as well as a link that goes to our station on IMDb's website.

The first option is an all-platform http-to-app linking solution. The second option makes appurl.org/go backward-compatible with any web-enabled device.

Forward compatibility

If you want to link to a website that doesn't have any associated apps, there's no harm in adding appurl.org/go/ in front of the URL.

For example, the White House evidently doesn't have any apps associated with its domain, since http://whitehouse.gov/appurl.json returns a 404 error. But there's no harm in adding appurl.org/go/ in front of whitehouse.gov.

Today, http://appurl.org/go/whitehouse.gov redirects directly to the White House's website. But as soon as whitehouse.gov starts hosting an appurl.json file, it will automatically start launching the White House's app on any device.

How it works

When an HTTP client requests a URL beginning with appurl.org/go/, we serve a web page with a JavaScript program that behaves as an AppURL client.

For the URL transformation step, the JavaScript program uses AppURL.org's API rather than directly requesting a website's appurl.json file.

For the app launching step, the JavaScript program tells your browser to open the custom-scheme URL that would be expected to launch the right app. We build and maintain platform-specific hacks to try to prevent user-visible error messages from popping up during app-launching attempts.

Customizing the interstitial page

If someone who doesn't your native app installed lands on an appurl.org/go URL, they'll see an interstitial web page with a list of available app editions for download and a link to the web version of your app.

If you want more control over what a user sees when they don't have your native app installed, you can embed our JavaScript redirect on your own web pages instead of using appurl.org/go.

For AppURL clients

As a JavaScript-based AppURL client, appurl.org/go is the highest possible level in the HTTP client stack.

We're hoping to see AppURL client implementations moving lower and lower down the HTTP client stack over time.

If a user visits an appurl.org/go URL with a lower-level AppURL client, it's clearly wasteful to request a web page from the appurl.org server, since any app-launching mechanisms are already implemented by the lower-level AppURL client.

Because of that, and because we encourage everyone to make liberal use of the appurl.org/go service, we recommend that all AppURL clients remove the "appurl.org/go/" prefix when opening URLs as a performance optimization.