Graph API Version

Finding App Link Data with the Index API

Data about App Link URLs is available through Facebook's Index API. Calls to the Index API are made through Facebook's Graph API.

Calls to the Index API endpoint must include a valid access token. Although any token type will work, you will generally build your app to use client access tokens.

You can access the index api by making a call to https://graph.facebook.com an ids query along with the fields=app_links parameter to find the data associated with App Link URLs:

GET graph.facebook.com?ids=http://fb.me/729250327126474&fields=app_links&access_token=YOUR_ACCESS_TOKEN

The results use the App Link Host objects format:

{
  "http://fb.me/729250327126474": {
    "app_links": {
      "android": [
        {
          "app_name": "scrumptious",
          "package": "com.myapp",
          "url": "scrumptious://ios/23"
        },
        {
          "app_name": "scrumptious",
          "class": "com.myapp.main",
          "package": "com.myapp",
          "url": "scrumptious-test://ios/23"
        }
      ],
      "ios": [
        {
          "app_name": "scrumptious",
          "app_store_id": "123",
          "url": "fancy://"
        }
      ],
      "web": {
        "url": "http://facebooksampleapp.com/"
      }
    },
    "id": "http://fb.me/729250327126474"
  }
}

Querying Multiple Items

You can also make calls to more than one URL at a time by listing the targets as a comma-separated list:

GET graph.facebook.com?ids=http://fb.me/729250327126474,http://fancy.com/things/590368473725534365/BBQ-Briefcase&fields=app_links&access_token=YOUR_ACCESS_TOKEN

This will return the data as a list of items:

{
  "http://fb.me/729250327126474": {
    "app_links": {
      "android": [
        {
          "app_name": "scrumptious",
          "package": "com.myapp",
          "url": "scrumptious://ios/23"
        },
        {
          "app_name": "scrumptious",
          "class": "com.myapp.main",
          "package": "com.myapp",
          "url": "scrumptious-test://ios/23"
        }
      ],
      "ios": [
        {
          "app_name": "scrumptious",
          "app_store_id": "123",
          "url": "fancy://"
        }
      ],
      "web": {
        "url": "http://facebooksampleapp.com/"
      }
    },
    "id": "http://fb.me/729250327126474"
  },
  "http://fancy.com/things/590368473725534365/BBQ-Briefcase": {
    "app_links": {
      "android": [
        {
          "app_name": "Fancy",
          "package": "com.thefancy.app",
          "url": "fancy://things/590368473725534365"
        }
      ],
      "ios": [
        {
          "app_name": "Fancy",
          "app_store_id": "407324335",
          "url": "fancy://things/590368473725534365"
        }
      ]
    },
    "id": "http://fancy.com/things/590368473725534365/BBQ-Briefcase"
  }
}

Filtering Results

You can filter the response to any of ios, iphone, ipad, android, windows, windows_phone, windows_universal and web.

This call will return only the ios data with the fields parameter:

GET graph.facebook.com?fields=app_links{ios}&ids=http://fb.me/729250327126474

Results:

{
  "http://fb.me/729250327126474": {
    "ios": [
      {
        "app_name": "scrumptious", 
        "app_store_id": "123", 
        "url": "fancy://"
      }
    ], 
    "id": "http://fb.me/729250327126474"
  }
}